[DRE-commits] [ruby-fog] 01/09: Imported Upstream version 1.24.0

Praveen Arimbrathodiyil praveen at moszumanska.debian.org
Tue Nov 18 09:36:06 UTC 2014


This is an automated email from the git hooks/post-receive script.

praveen pushed a commit to branch master
in repository ruby-fog.

commit fd95ef15ced65c0a4b0b5728da638c89c73282bd
Author: Praveen Arimbrathodiyil <praveen at debian.org>
Date:   Mon Nov 17 11:32:12 2014 +0530

    Imported Upstream version 1.24.0
---
 .rubocop.yml                                       |  20 +
 .rubocop_todo.yml                                  | 606 ++++++++++++++
 .travis.yml                                        |   1 -
 CHANGELOG.md                                       | 651 +++++++++++++++
 CONTRIBUTORS.md                                    |  70 ++
 Gemfile                                            |   1 -
 README.md                                          |   1 -
 Rakefile                                           |  17 +-
 benchs/parse_vs_push.rb                            |   2 -
 checksums.yaml.gz                                  | Bin 423 -> 0 bytes
 fog.gemspec                                        |  16 +-
 gemfiles/Gemfile-edge                              |   3 -
 gemfiles/Gemfile-ruby-1.8.7                        |   1 +
 lib/fog.rb                                         |   3 +-
 lib/fog/atmos/core.rb                              |   2 -
 lib/fog/atmos/models/storage/directories.rb        |   4 -
 lib/fog/atmos/models/storage/directory.rb          |   5 -
 lib/fog/atmos/models/storage/file.rb               |   4 -
 lib/fog/atmos/models/storage/files.rb              |   8 +-
 lib/fog/atmos/requests/storage/delete_namespace.rb |   2 -
 lib/fog/atmos/requests/storage/get_namespace.rb    |   9 +-
 lib/fog/atmos/requests/storage/head_namespace.rb   |   2 -
 lib/fog/atmos/requests/storage/post_namespace.rb   |   2 -
 lib/fog/atmos/requests/storage/put_namespace.rb    |   2 -
 lib/fog/atmos/storage.rb                           |   6 +-
 lib/fog/aws/auto_scaling.rb                        |   3 -
 lib/fog/aws/beanstalk.rb                           |  54 +-
 lib/fog/aws/cdn.rb                                 |  16 +-
 lib/fog/aws/cloud_formation.rb                     |  50 +-
 lib/fog/aws/cloud_watch.rb                         |   2 -
 lib/fog/aws/compute.rb                             | 104 ++-
 lib/fog/aws/core.rb                                |  11 +-
 lib/fog/aws/credential_fetcher.rb                  |   1 -
 lib/fog/aws/data_pipeline.rb                       |  18 +-
 lib/fog/aws/dns.rb                                 |  23 +-
 lib/fog/aws/dynamodb.rb                            |  15 +-
 lib/fog/aws/elasticache.rb                         |  58 +-
 lib/fog/aws/elb.rb                                 |   4 +-
 lib/fog/aws/emr.rb                                 |  34 +-
 lib/fog/aws/glacier.rb                             |  27 +-
 lib/fog/aws/iam.rb                                 |   5 +-
 lib/fog/aws/models/auto_scaling/activities.rb      |   1 -
 lib/fog/aws/models/auto_scaling/activity.rb        |   2 -
 lib/fog/aws/models/auto_scaling/configuration.rb   |   5 +-
 lib/fog/aws/models/auto_scaling/configurations.rb  |   2 -
 lib/fog/aws/models/auto_scaling/groups.rb          |   1 -
 lib/fog/aws/models/auto_scaling/instance.rb        |   4 +-
 lib/fog/aws/models/auto_scaling/instances.rb       |   2 -
 lib/fog/aws/models/beanstalk/application.rb        |   3 -
 lib/fog/aws/models/beanstalk/applications.rb       |   2 -
 lib/fog/aws/models/beanstalk/environment.rb        |   4 -
 lib/fog/aws/models/beanstalk/environments.rb       |   2 -
 lib/fog/aws/models/beanstalk/event.rb              |   4 +-
 lib/fog/aws/models/beanstalk/events.rb             |   2 -
 lib/fog/aws/models/beanstalk/template.rb           |   2 -
 lib/fog/aws/models/beanstalk/templates.rb          |   4 +-
 lib/fog/aws/models/beanstalk/version.rb            |   2 -
 lib/fog/aws/models/beanstalk/versions.rb           |   2 -
 lib/fog/aws/models/cdn/distribution.rb             |   3 -
 lib/fog/aws/models/cdn/distribution_helper.rb      |   6 +-
 lib/fog/aws/models/cdn/distributions.rb            |   3 -
 lib/fog/aws/models/cdn/distributions_helper.rb     |   7 +-
 lib/fog/aws/models/cdn/invalidation.rb             |   4 -
 lib/fog/aws/models/cdn/invalidations.rb            |   4 -
 lib/fog/aws/models/cdn/streaming_distribution.rb   |   3 -
 lib/fog/aws/models/cdn/streaming_distributions.rb  |   3 -
 lib/fog/aws/models/cloud_watch/alarm_data.rb       |   3 +-
 lib/fog/aws/models/cloud_watch/alarm_datum.rb      |   1 -
 lib/fog/aws/models/cloud_watch/alarm_histories.rb  |   1 -
 lib/fog/aws/models/cloud_watch/alarm_history.rb    |   1 -
 lib/fog/aws/models/cloud_watch/alarms.rb           |   2 -
 lib/fog/aws/models/cloud_watch/metric.rb           |   3 +-
 lib/fog/aws/models/cloud_watch/metric_statistic.rb |   1 -
 .../aws/models/cloud_watch/metric_statistics.rb    |   3 +-
 lib/fog/aws/models/cloud_watch/metrics.rb          |   6 +-
 lib/fog/aws/models/compute/address.rb              |   4 -
 lib/fog/aws/models/compute/addresses.rb            |   4 -
 lib/fog/aws/models/compute/dhcp_option.rb          |   2 -
 lib/fog/aws/models/compute/dhcp_options.rb         |   4 -
 lib/fog/aws/models/compute/flavor.rb               |   4 -
 lib/fog/aws/models/compute/flavors.rb              |  86 +-
 lib/fog/aws/models/compute/image.rb                |   7 +-
 lib/fog/aws/models/compute/images.rb               |   3 -
 lib/fog/aws/models/compute/internet_gateway.rb     |   3 -
 lib/fog/aws/models/compute/internet_gateways.rb    |   4 -
 lib/fog/aws/models/compute/key_pair.rb             |   8 +-
 lib/fog/aws/models/compute/key_pairs.rb            |   4 -
 lib/fog/aws/models/compute/network_acl.rb          |  16 +-
 lib/fog/aws/models/compute/network_acls.rb         |   2 -
 lib/fog/aws/models/compute/network_interface.rb    |   5 +-
 lib/fog/aws/models/compute/network_interfaces.rb   |   3 -
 lib/fog/aws/models/compute/route_table.rb          |   7 +-
 lib/fog/aws/models/compute/route_tables.rb         |   4 -
 lib/fog/aws/models/compute/security_group.rb       |   4 -
 lib/fog/aws/models/compute/security_groups.rb      |   3 -
 lib/fog/aws/models/compute/server.rb               |  43 +-
 lib/fog/aws/models/compute/servers.rb              | 117 ++-
 lib/fog/aws/models/compute/snapshot.rb             |   5 +-
 lib/fog/aws/models/compute/snapshots.rb            |   4 -
 lib/fog/aws/models/compute/spot_request.rb         |   3 -
 lib/fog/aws/models/compute/spot_requests.rb        |  15 +-
 lib/fog/aws/models/compute/subnet.rb               |   4 +-
 lib/fog/aws/models/compute/subnets.rb              |   4 -
 lib/fog/aws/models/compute/tag.rb                  |   3 -
 lib/fog/aws/models/compute/tags.rb                 |   3 -
 lib/fog/aws/models/compute/volume.rb               |  17 +-
 lib/fog/aws/models/compute/volumes.rb              |   4 -
 lib/fog/aws/models/compute/vpc.rb                  |  15 +-
 lib/fog/aws/models/compute/vpcs.rb                 |   4 -
 lib/fog/aws/models/data_pipeline/pipeline.rb       |   8 +-
 lib/fog/aws/models/data_pipeline/pipelines.rb      |   3 -
 lib/fog/aws/models/dns/record.rb                   |  35 +-
 lib/fog/aws/models/dns/records.rb                  |   8 +-
 lib/fog/aws/models/dns/zone.rb                     |   4 -
 lib/fog/aws/models/dns/zones.rb                    |   4 -
 lib/fog/aws/models/elasticache/cluster.rb          |  27 +-
 lib/fog/aws/models/elasticache/clusters.rb         |   2 -
 lib/fog/aws/models/elasticache/parameter_group.rb  |   4 -
 lib/fog/aws/models/elasticache/parameter_groups.rb |   2 -
 lib/fog/aws/models/elasticache/security_group.rb   |   4 -
 lib/fog/aws/models/elasticache/security_groups.rb  |   2 -
 lib/fog/aws/models/elasticache/subnet_group.rb     |   3 -
 lib/fog/aws/models/elasticache/subnet_groups.rb    |   3 -
 .../aws/models/elb/backend_server_descriptions.rb  |   4 +-
 lib/fog/aws/models/elb/listener.rb                 |   3 -
 lib/fog/aws/models/elb/listeners.rb                |   4 +-
 lib/fog/aws/models/elb/load_balancer.rb            |  20 +-
 lib/fog/aws/models/elb/load_balancers.rb           |   1 -
 lib/fog/aws/models/elb/policies.rb                 |  13 +-
 lib/fog/aws/models/elb/policy.rb                   |   3 -
 lib/fog/aws/models/glacier/archive.rb              |   4 -
 lib/fog/aws/models/glacier/archives.rb             |   4 -
 lib/fog/aws/models/glacier/job.rb                  |   4 -
 lib/fog/aws/models/glacier/jobs.rb                 |   5 -
 lib/fog/aws/models/glacier/vault.rb                |   3 -
 lib/fog/aws/models/glacier/vaults.rb               |   4 -
 lib/fog/aws/models/iam/access_key.rb               |   3 -
 lib/fog/aws/models/iam/access_keys.rb              |   3 -
 lib/fog/aws/models/iam/policies.rb                 |   4 -
 lib/fog/aws/models/iam/policy.rb                   |   3 -
 lib/fog/aws/models/iam/role.rb                     |  12 +-
 lib/fog/aws/models/iam/roles.rb                    |   5 +-
 lib/fog/aws/models/iam/user.rb                     |   3 -
 lib/fog/aws/models/iam/users.rb                    |   4 +-
 lib/fog/aws/models/rds/instance_option.rb          |   3 -
 lib/fog/aws/models/rds/instance_options.rb         |   2 -
 lib/fog/aws/models/rds/log_file.rb                 |   4 -
 lib/fog/aws/models/rds/log_files.rb                |   2 -
 lib/fog/aws/models/rds/parameter.rb                |   3 -
 lib/fog/aws/models/rds/parameter_group.rb          |   4 +-
 lib/fog/aws/models/rds/parameter_groups.rb         |   3 -
 lib/fog/aws/models/rds/parameters.rb               |   1 -
 lib/fog/aws/models/rds/security_group.rb           |   3 -
 lib/fog/aws/models/rds/security_groups.rb          |   2 -
 lib/fog/aws/models/rds/server.rb                   |   7 +-
 lib/fog/aws/models/rds/servers.rb                  |   3 -
 lib/fog/aws/models/rds/snapshot.rb                 |   3 -
 lib/fog/aws/models/rds/snapshots.rb                |   2 -
 lib/fog/aws/models/rds/subnet_group.rb             |   3 -
 lib/fog/aws/models/rds/subnet_groups.rb            |   3 -
 lib/fog/aws/models/storage/directories.rb          |   4 -
 lib/fog/aws/models/storage/directory.rb            |   5 +-
 lib/fog/aws/models/storage/file.rb                 |  89 +--
 lib/fog/aws/models/storage/files.rb                |   5 +-
 lib/fog/aws/models/storage/version.rb              |   3 -
 lib/fog/aws/models/storage/versions.rb             |   4 -
 lib/fog/aws/parsers/auto_scaling/basic.rb          |   4 -
 .../auto_scaling/describe_adjustment_types.rb      |   3 -
 .../auto_scaling/describe_auto_scaling_groups.rb   |   3 -
 .../describe_auto_scaling_instances.rb             |   3 -
 .../describe_auto_scaling_notification_types.rb    |   3 -
 .../auto_scaling/describe_launch_configurations.rb |   3 -
 .../describe_metric_collection_types.rb            |   4 +-
 .../describe_notification_configurations.rb        |   3 -
 .../aws/parsers/auto_scaling/describe_policies.rb  |   3 -
 .../auto_scaling/describe_scaling_activities.rb    |   3 -
 .../auto_scaling/describe_scaling_process_types.rb |   3 -
 .../auto_scaling/describe_scheduled_actions.rb     |   3 -
 lib/fog/aws/parsers/auto_scaling/describe_tags.rb  |   4 -
 .../describe_termination_policy_types.rb           |   4 -
 .../auto_scaling/put_notification_configuration.rb |   5 +-
 .../aws/parsers/auto_scaling/put_scaling_policy.rb |   3 -
 .../terminate_instance_in_auto_scaling_group.rb    |   3 -
 .../parsers/beanstalk/check_dns_availability.rb    |   5 +-
 .../aws/parsers/beanstalk/create_application.rb    |   3 -
 .../beanstalk/create_application_version.rb        |   3 -
 .../beanstalk/create_configuration_template.rb     |   3 -
 .../aws/parsers/beanstalk/create_environment.rb    |   3 -
 .../parsers/beanstalk/create_storage_location.rb   |   3 -
 .../beanstalk/describe_application_versions.rb     |   3 -
 .../aws/parsers/beanstalk/describe_applications.rb |   3 -
 .../beanstalk/describe_configuration_options.rb    |   3 -
 .../beanstalk/describe_configuration_settings.rb   |   3 -
 .../beanstalk/describe_environment_resources.rb    |   3 -
 .../aws/parsers/beanstalk/describe_environments.rb |   3 -
 lib/fog/aws/parsers/beanstalk/describe_events.rb   |   3 -
 lib/fog/aws/parsers/beanstalk/empty.rb             |   7 -
 .../beanstalk/list_available_solution_stacks.rb    |   3 -
 lib/fog/aws/parsers/beanstalk/parser.rb            |  15 +-
 .../parsers/beanstalk/retrieve_environment_info.rb |   3 -
 .../aws/parsers/beanstalk/terminate_environment.rb |   3 -
 .../aws/parsers/beanstalk/update_application.rb    |   3 -
 .../beanstalk/update_application_version.rb        |   3 -
 .../beanstalk/update_configuration_template.rb     |   3 -
 .../aws/parsers/beanstalk/update_environment.rb    |   3 -
 .../beanstalk/validate_configuration_settings.rb   |   3 -
 lib/fog/aws/parsers/cdn/distribution.rb            |   4 -
 lib/fog/aws/parsers/cdn/get_distribution_list.rb   |   4 -
 lib/fog/aws/parsers/cdn/get_invalidation.rb        |   4 -
 lib/fog/aws/parsers/cdn/get_invalidation_list.rb   |   4 -
 .../parsers/cdn/get_streaming_distribution_list.rb |   4 -
 lib/fog/aws/parsers/cdn/post_invalidation.rb       |   4 -
 lib/fog/aws/parsers/cdn/streaming_distribution.rb  |   5 +-
 lib/fog/aws/parsers/cloud_formation/basic.rb       |   2 -
 .../aws/parsers/cloud_formation/create_stack.rb    |   3 -
 .../cloud_formation/describe_stack_events.rb       |   3 -
 .../cloud_formation/describe_stack_resources.rb    |   3 -
 .../aws/parsers/cloud_formation/describe_stacks.rb |  11 +-
 .../aws/parsers/cloud_formation/get_template.rb    |   3 -
 .../cloud_formation/list_stack_resources.rb        |   2 -
 lib/fog/aws/parsers/cloud_formation/list_stacks.rb |   2 -
 .../aws/parsers/cloud_formation/update_stack.rb    |   3 -
 .../parsers/cloud_formation/validate_template.rb   |   3 -
 lib/fog/aws/parsers/cloud_watch/delete_alarms.rb   |   2 -
 .../parsers/cloud_watch/describe_alarm_history.rb  |   4 +-
 lib/fog/aws/parsers/cloud_watch/describe_alarms.rb |   6 +-
 .../cloud_watch/describe_alarms_for_metric.rb      |   8 +-
 .../parsers/cloud_watch/disable_alarm_actions.rb   |   4 +-
 .../parsers/cloud_watch/enable_alarm_actions.rb    |   4 +-
 .../parsers/cloud_watch/get_metric_statistics.rb   |   3 -
 lib/fog/aws/parsers/cloud_watch/list_metrics.rb    |   2 -
 .../aws/parsers/cloud_watch/put_metric_alarm.rb    |   2 -
 lib/fog/aws/parsers/cloud_watch/put_metric_data.rb |   2 -
 lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb |   4 +-
 lib/fog/aws/parsers/compute/allocate_address.rb    |   3 -
 .../parsers/compute/assign_private_ip_addresses.rb |   3 -
 lib/fog/aws/parsers/compute/associate_address.rb   |   3 -
 .../aws/parsers/compute/associate_route_table.rb   |   4 -
 .../parsers/compute/attach_network_interface.rb    |   2 -
 lib/fog/aws/parsers/compute/attach_volume.rb       |   4 -
 lib/fog/aws/parsers/compute/basic.rb               |   3 -
 .../compute/cancel_spot_instance_requests.rb       |   4 -
 lib/fog/aws/parsers/compute/copy_image.rb          |   4 -
 lib/fog/aws/parsers/compute/copy_snapshot.rb       |   4 -
 lib/fog/aws/parsers/compute/create_dhcp_options.rb |   8 +-
 lib/fog/aws/parsers/compute/create_image.rb        |   4 -
 .../aws/parsers/compute/create_internet_gateway.rb |   4 -
 lib/fog/aws/parsers/compute/create_key_pair.rb     |   4 -
 lib/fog/aws/parsers/compute/create_route_table.rb  |   4 -
 .../aws/parsers/compute/create_security_group.rb   |   2 -
 lib/fog/aws/parsers/compute/create_snapshot.rb     |   4 -
 lib/fog/aws/parsers/compute/create_subnet.rb       |   4 -
 lib/fog/aws/parsers/compute/create_volume.rb       |   6 +-
 lib/fog/aws/parsers/compute/create_vpc.rb          |   4 -
 lib/fog/aws/parsers/compute/deregister_image.rb    |   4 -
 .../parsers/compute/describe_account_attributes.rb |   1 -
 lib/fog/aws/parsers/compute/describe_addresses.rb  |   4 -
 .../parsers/compute/describe_availability_zones.rb |   3 -
 .../aws/parsers/compute/describe_dhcp_options.rb   |   8 +-
 lib/fog/aws/parsers/compute/describe_images.rb     |   2 -
 .../parsers/compute/describe_instance_status.rb    |   1 -
 lib/fog/aws/parsers/compute/describe_instances.rb  |   6 +-
 .../parsers/compute/describe_internet_gateways.rb  |   7 +-
 lib/fog/aws/parsers/compute/describe_key_pairs.rb  |   4 -
 .../describe_network_interface_attribute.rb        |   2 -
 .../parsers/compute/describe_network_interfaces.rb |   1 -
 .../parsers/compute/describe_placement_groups.rb   |   4 -
 lib/fog/aws/parsers/compute/describe_regions.rb    |   4 -
 .../parsers/compute/describe_reserved_instances.rb |   5 -
 .../describe_reserved_instances_offerings.rb       |   4 -
 .../aws/parsers/compute/describe_route_tables.rb   |   4 -
 .../parsers/compute/describe_security_groups.rb    |   4 -
 lib/fog/aws/parsers/compute/describe_snapshots.rb  |   6 +-
 .../parsers/compute/describe_spot_price_history.rb |   4 -
 lib/fog/aws/parsers/compute/describe_subnets.rb    |   4 +-
 lib/fog/aws/parsers/compute/describe_tags.rb       |   4 -
 lib/fog/aws/parsers/compute/describe_volumes.rb    |   4 +-
 .../aws/parsers/compute/describe_vpc_attribute.rb  |  48 ++
 lib/fog/aws/parsers/compute/describe_vpcs.rb       |   2 -
 lib/fog/aws/parsers/compute/detach_volume.rb       |   4 -
 lib/fog/aws/parsers/compute/get_console_output.rb  |   4 -
 lib/fog/aws/parsers/compute/get_password_data.rb   |   4 -
 lib/fog/aws/parsers/compute/import_key_pair.rb     |   4 -
 .../aws/parsers/compute/modify_subnet_attribute.rb |  24 +
 .../parsers/compute/monitor_unmonitor_instances.rb |   4 -
 lib/fog/aws/parsers/compute/network_acl_parser.rb  |   4 +-
 .../parsers/compute/network_interface_parser.rb    |   9 +-
 .../purchase_reserved_instances_offering.rb        |   4 -
 lib/fog/aws/parsers/compute/register_image.rb      |   4 -
 lib/fog/aws/parsers/compute/run_instances.rb       |   4 -
 .../parsers/compute/spot_datafeed_subscription.rb  |   4 -
 .../aws/parsers/compute/spot_instance_requests.rb  |  10 +-
 .../aws/parsers/compute/start_stop_instances.rb    |   4 -
 lib/fog/aws/parsers/compute/terminate_instances.rb |   4 -
 .../aws/parsers/dns/change_resource_record_sets.rb |   4 -
 lib/fog/aws/parsers/dns/create_health_check.rb     |   0
 lib/fog/aws/parsers/dns/create_hosted_zone.rb      |   4 -
 lib/fog/aws/parsers/dns/delete_hosted_zone.rb      |   4 -
 lib/fog/aws/parsers/dns/get_change.rb              |   4 -
 lib/fog/aws/parsers/dns/get_hosted_zone.rb         |   4 -
 lib/fog/aws/parsers/dns/health_check.rb            |  33 +
 lib/fog/aws/parsers/dns/list_health_checks.rb      |  41 +
 lib/fog/aws/parsers/dns/list_hosted_zones.rb       |   4 -
 .../aws/parsers/dns/list_resource_record_sets.rb   |  14 +-
 .../authorize_cache_security_group_ingress.rb      |   5 -
 lib/fog/aws/parsers/elasticache/base.rb            |   4 -
 .../parsers/elasticache/cache_cluster_parser.rb    |   2 -
 .../elasticache/create_cache_subnet_group.rb       |   6 -
 .../parsers/elasticache/describe_cache_clusters.rb |   1 -
 .../elasticache/describe_cache_parameters.rb       |   1 -
 .../elasticache/describe_cache_subnet_groups.rb    |   4 -
 .../describe_engine_default_parameters.rb          |   1 -
 .../elasticache/describe_parameter_groups.rb       |   1 -
 .../elasticache/describe_reserved_cache_nodes.rb   |   5 -
 .../elasticache/describe_security_groups.rb        |   1 -
 .../parsers/elasticache/engine_defaults_parser.rb  |   1 -
 lib/fog/aws/parsers/elasticache/event_list.rb      |   2 -
 .../parsers/elasticache/modify_parameter_group.rb  |   1 -
 .../parsers/elasticache/parameter_group_parser.rb  |   1 -
 .../parsers/elasticache/reset_parameter_group.rb   |   1 -
 .../parsers/elasticache/security_group_parser.rb   |   2 -
 .../parsers/elasticache/single_cache_cluster.rb    |   1 -
 .../parsers/elasticache/single_parameter_group.rb  |   1 -
 .../parsers/elasticache/single_security_group.rb   |   1 -
 .../aws/parsers/elasticache/subnet_group_parser.rb |   3 -
 .../elb/apply_security_groups_to_load_balancer.rb  |   4 -
 .../parsers/elb/attach_load_balancer_to_subnets.rb |   4 -
 lib/fog/aws/parsers/elb/configure_health_check.rb  |   4 -
 lib/fog/aws/parsers/elb/create_load_balancer.rb    |   4 -
 lib/fog/aws/parsers/elb/delete_load_balancer.rb    |   4 -
 .../elb/deregister_instances_from_load_balancer.rb |   4 -
 .../aws/parsers/elb/describe_instance_health.rb    |   4 -
 .../elb/describe_load_balancer_attributes.rb       |  15 +-
 .../parsers/elb/describe_load_balancer_policies.rb |   4 -
 .../elb/describe_load_balancer_policy_types.rb     |   4 -
 lib/fog/aws/parsers/elb/describe_load_balancers.rb |   4 -
 .../elb/detach_load_balancer_from_subnets.rb       |   4 -
 ...disable_availability_zones_for_load_balancer.rb |   4 -
 lib/fog/aws/parsers/elb/empty.rb                   |   4 -
 .../enable_availability_zones_for_load_balancer.rb |   4 -
 .../elb/register_instances_with_load_balancer.rb   |   4 -
 lib/fog/aws/parsers/emr/add_instance_groups.rb     |   2 -
 lib/fog/aws/parsers/emr/add_job_flow_steps.rb      |   1 -
 lib/fog/aws/parsers/emr/describe_job_flows.rb      |   3 -
 lib/fog/aws/parsers/emr/modify_instance_groups.rb  |   1 -
 lib/fog/aws/parsers/emr/run_job_flow.rb            |   1 -
 .../aws/parsers/emr/set_termination_protection.rb  |   1 -
 lib/fog/aws/parsers/emr/terminate_job_flows.rb     |   1 -
 lib/fog/aws/parsers/iam/base_instance_profile.rb   |   4 -
 lib/fog/aws/parsers/iam/basic.rb                   |   3 -
 lib/fog/aws/parsers/iam/create_access_key.rb       |   4 -
 lib/fog/aws/parsers/iam/create_group.rb            |   4 -
 lib/fog/aws/parsers/iam/create_user.rb             |   4 -
 .../aws/parsers/iam/get_account_password_policy.rb |  26 +
 lib/fog/aws/parsers/iam/get_account_summary.rb     |   4 -
 lib/fog/aws/parsers/iam/get_group.rb               |   5 +-
 lib/fog/aws/parsers/iam/get_group_policy.rb        |   3 -
 lib/fog/aws/parsers/iam/get_role_policy.rb         |   4 -
 lib/fog/aws/parsers/iam/get_user.rb                |   3 -
 lib/fog/aws/parsers/iam/get_user_policy.rb         |   3 -
 lib/fog/aws/parsers/iam/instance_profile.rb        |   6 -
 lib/fog/aws/parsers/iam/list_access_keys.rb        |   4 -
 lib/fog/aws/parsers/iam/list_account_aliases.rb    |   4 -
 lib/fog/aws/parsers/iam/list_groups.rb             |   4 -
 lib/fog/aws/parsers/iam/list_groups_for_user.rb    |   4 -
 lib/fog/aws/parsers/iam/list_instance_profiles.rb  |   5 -
 lib/fog/aws/parsers/iam/list_mfa_devices.rb        |   4 -
 lib/fog/aws/parsers/iam/list_policies.rb           |   4 -
 lib/fog/aws/parsers/iam/list_roles.rb              |   2 -
 .../aws/parsers/iam/list_server_certificates.rb    |   4 -
 .../aws/parsers/iam/list_signing_certificates.rb   |   4 -
 lib/fog/aws/parsers/iam/list_users.rb              |   4 -
 lib/fog/aws/parsers/iam/login_profile.rb           |   3 -
 lib/fog/aws/parsers/iam/role_parser.rb             |   4 -
 lib/fog/aws/parsers/iam/single_role.rb             |   2 -
 lib/fog/aws/parsers/iam/update_group.rb            |   3 -
 lib/fog/aws/parsers/iam/update_user.rb             |   3 -
 .../aws/parsers/iam/upload_server_certificate.rb   |   4 -
 .../aws/parsers/iam/upload_signing_certificate.rb  |   4 -
 .../rds/authorize_db_security_group_ingress.rb     |   6 -
 lib/fog/aws/parsers/rds/base.rb                    |   4 -
 lib/fog/aws/parsers/rds/create_db_instance.rb      |   2 -
 .../parsers/rds/create_db_instance_read_replica.rb |   2 -
 .../aws/parsers/rds/create_db_parameter_group.rb   |   2 -
 .../aws/parsers/rds/create_db_security_group.rb    |   6 -
 lib/fog/aws/parsers/rds/create_db_snapshot.rb      |   3 -
 lib/fog/aws/parsers/rds/create_db_subnet_group.rb  |   6 -
 .../aws/parsers/rds/db_engine_version_parser.rb    |   3 -
 lib/fog/aws/parsers/rds/db_parser.rb               |  23 +-
 lib/fog/aws/parsers/rds/delete_db_instance.rb      |   2 -
 .../aws/parsers/rds/delete_db_parameter_group.rb   |   2 -
 .../aws/parsers/rds/delete_db_security_group.rb    |   4 -
 lib/fog/aws/parsers/rds/delete_db_snapshot.rb      |   2 -
 lib/fog/aws/parsers/rds/delete_db_subnet_group.rb  |   6 -
 .../aws/parsers/rds/describe_db_engine_versions.rb |   5 -
 lib/fog/aws/parsers/rds/describe_db_instances.rb   |   2 -
 lib/fog/aws/parsers/rds/describe_db_log_files.rb   |   2 -
 .../parsers/rds/describe_db_parameter_groups.rb    |   5 -
 lib/fog/aws/parsers/rds/describe_db_parameters.rb  |   2 -
 .../parsers/rds/describe_db_reserved_instances.rb  |   5 -
 .../aws/parsers/rds/describe_db_security_groups.rb |   5 -
 lib/fog/aws/parsers/rds/describe_db_snapshots.rb   |   5 -
 .../aws/parsers/rds/describe_db_subnet_groups.rb   |   4 -
 .../rds/describe_orderable_db_instance_options.rb  |   2 -
 .../aws/parsers/rds/download_db_logfile_portion.rb |   4 -
 lib/fog/aws/parsers/rds/event_list.rb              |   2 -
 lib/fog/aws/parsers/rds/modify_db_instance.rb      |   2 -
 .../aws/parsers/rds/modify_db_parameter_group.rb   |   2 -
 lib/fog/aws/parsers/rds/promote_read_replica.rb    |  32 +
 lib/fog/aws/parsers/rds/reboot_db_instance.rb      |   2 -
 .../rds/restore_db_instance_from_db_snapshot.rb    |   2 -
 .../rds/restore_db_instance_to_point_in_time.rb    |   3 -
 .../rds/revoke_db_security_group_ingress.rb        |   7 -
 lib/fog/aws/parsers/rds/security_group_parser.rb   |   3 -
 lib/fog/aws/parsers/rds/snapshot_parser.rb         |   3 -
 lib/fog/aws/parsers/rds/subnet_group_parser.rb     |   3 -
 lib/fog/aws/parsers/rds/tag_list_parser.rb         |   2 -
 lib/fog/aws/parsers/redshift/cluster.rb            |   1 -
 lib/fog/aws/parsers/redshift/cluster_parser.rb     |   1 -
 .../redshift/cluster_security_group_parser.rb      |   1 -
 lib/fog/aws/parsers/redshift/cluster_snapshot.rb   |   1 -
 .../parsers/redshift/cluster_snapshot_parser.rb    |   1 -
 .../redshift/cluster_subnet_group_parser.rb        |   1 -
 .../redshift/create_cluster_parameter_group.rb     |   1 -
 .../redshift/create_cluster_security_group.rb      |   1 -
 .../redshift/describe_cluster_parameter_groups.rb  |   1 -
 .../redshift/describe_cluster_parameters.rb        |   1 -
 .../redshift/describe_cluster_security_groups.rb   |   1 -
 .../parsers/redshift/describe_cluster_snapshots.rb |   1 -
 .../redshift/describe_cluster_subnet_groups.rb     |   3 -
 .../parsers/redshift/describe_cluster_versions.rb  |   3 -
 lib/fog/aws/parsers/redshift/describe_clusters.rb  |   1 -
 .../describe_default_cluster_parameters.rb         |   1 -
 lib/fog/aws/parsers/redshift/describe_events.rb    |   1 -
 .../redshift/describe_orderable_cluster_options.rb |   1 -
 .../redshift/describe_reserved_node_offerings.rb   |   1 -
 .../parsers/redshift/describe_reserved_nodes.rb    |   1 -
 lib/fog/aws/parsers/redshift/describe_resize.rb    |   2 -
 .../redshift/purchase_reserved_node_offering.rb    |   2 -
 .../revoke_cluster_security_group_ingress.rb       |   1 -
 .../update_cluster_parameter_group_parser.rb       |   1 -
 .../parsers/ses/delete_verified_email_address.rb   |   4 -
 lib/fog/aws/parsers/ses/get_send_quota.rb          |   4 -
 lib/fog/aws/parsers/ses/get_send_statistics.rb     |   3 -
 .../parsers/ses/list_verified_email_addresses.rb   |   3 -
 lib/fog/aws/parsers/ses/send_email.rb              |   4 -
 lib/fog/aws/parsers/ses/send_raw_email.rb          |   4 -
 lib/fog/aws/parsers/ses/verify_domain_identity.rb  |   4 -
 lib/fog/aws/parsers/ses/verify_email_address.rb    |   4 -
 lib/fog/aws/parsers/simpledb/basic.rb              |   4 -
 lib/fog/aws/parsers/simpledb/domain_metadata.rb    |   4 -
 lib/fog/aws/parsers/simpledb/get_attributes.rb     |   4 -
 lib/fog/aws/parsers/simpledb/list_domains.rb       |   4 -
 lib/fog/aws/parsers/simpledb/select.rb             |   4 -
 lib/fog/aws/parsers/sns/add_permission.rb          |   4 -
 lib/fog/aws/parsers/sns/confirm_subscription.rb    |   4 -
 lib/fog/aws/parsers/sns/create_topic.rb            |   4 -
 lib/fog/aws/parsers/sns/delete_topic.rb            |   4 -
 lib/fog/aws/parsers/sns/get_topic_attributes.rb    |   3 -
 lib/fog/aws/parsers/sns/list_subscriptions.rb      |   3 -
 lib/fog/aws/parsers/sns/list_topics.rb             |   4 -
 lib/fog/aws/parsers/sns/publish.rb                 |   4 -
 lib/fog/aws/parsers/sns/remove_permission.rb       |   4 -
 lib/fog/aws/parsers/sns/set_topic_attributes.rb    |   4 -
 lib/fog/aws/parsers/sns/subscribe.rb               |   4 -
 lib/fog/aws/parsers/sns/unsubscribe.rb             |   4 -
 lib/fog/aws/parsers/sqs/basic.rb                   |   3 -
 lib/fog/aws/parsers/sqs/create_queue.rb            |   4 -
 lib/fog/aws/parsers/sqs/get_queue_attributes.rb    |   4 -
 lib/fog/aws/parsers/sqs/list_queues.rb             |   3 -
 lib/fog/aws/parsers/sqs/receive_message.rb         |   4 -
 lib/fog/aws/parsers/sqs/send_message.rb            |   4 -
 lib/fog/aws/parsers/storage/access_control_list.rb |   4 -
 .../parsers/storage/complete_multipart_upload.rb   |   4 -
 lib/fog/aws/parsers/storage/copy_object.rb         |   4 -
 lib/fog/aws/parsers/storage/cors_configuration.rb  |   3 -
 .../aws/parsers/storage/delete_multiple_objects.rb |   5 -
 lib/fog/aws/parsers/storage/get_bucket.rb          |   4 -
 .../aws/parsers/storage/get_bucket_lifecycle.rb    |   2 -
 lib/fog/aws/parsers/storage/get_bucket_location.rb |   4 -
 lib/fog/aws/parsers/storage/get_bucket_logging.rb  |   4 -
 .../parsers/storage/get_bucket_object_versions.rb  |   4 -
 lib/fog/aws/parsers/storage/get_bucket_tagging.rb  |   4 -
 .../aws/parsers/storage/get_bucket_versioning.rb   |   4 -
 lib/fog/aws/parsers/storage/get_bucket_website.rb  |   4 -
 lib/fog/aws/parsers/storage/get_request_payment.rb |   4 -
 lib/fog/aws/parsers/storage/get_service.rb         |   4 -
 .../parsers/storage/initiate_multipart_upload.rb   |   4 -
 .../aws/parsers/storage/list_multipart_uploads.rb  |   4 -
 lib/fog/aws/parsers/storage/list_parts.rb          |   4 -
 lib/fog/aws/parsers/sts/assume_role.rb             |   4 -
 lib/fog/aws/parsers/sts/get_session_token.rb       |   3 -
 lib/fog/aws/rds.rb                                 |  75 +-
 lib/fog/aws/redshift.rb                            |  25 +-
 lib/fog/aws/region_methods.rb                      |   6 +-
 .../auto_scaling/create_auto_scaling_group.rb      |  10 +-
 .../auto_scaling/create_launch_configuration.rb    |  11 +-
 .../requests/auto_scaling/create_or_update_tags.rb |   6 -
 .../auto_scaling/delete_auto_scaling_group.rb      |   5 -
 .../auto_scaling/delete_launch_configuration.rb    |   6 -
 .../delete_notification_configuration.rb           |   9 +-
 lib/fog/aws/requests/auto_scaling/delete_policy.rb |   6 -
 .../auto_scaling/delete_scheduled_action.rb        |   6 -
 lib/fog/aws/requests/auto_scaling/delete_tags.rb   |   6 -
 .../auto_scaling/describe_adjustment_types.rb      |   5 -
 .../auto_scaling/describe_auto_scaling_groups.rb   |   6 -
 .../describe_auto_scaling_instances.rb             |   6 -
 .../describe_auto_scaling_notification_types.rb    |   5 -
 .../auto_scaling/describe_launch_configurations.rb |   6 -
 .../describe_metric_collection_types.rb            |   5 -
 .../describe_notification_configurations.rb        |   6 -
 .../aws/requests/auto_scaling/describe_policies.rb |   6 -
 .../auto_scaling/describe_scaling_activities.rb    |   6 -
 .../auto_scaling/describe_scaling_process_types.rb |   6 -
 .../auto_scaling/describe_scheduled_actions.rb     |   6 -
 lib/fog/aws/requests/auto_scaling/describe_tags.rb |   6 -
 .../describe_termination_policy_types.rb           |   6 -
 .../auto_scaling/disable_metrics_collection.rb     |   8 +-
 .../auto_scaling/enable_metrics_collection.rb      |   8 +-
 .../aws/requests/auto_scaling/execute_policy.rb    |   6 -
 .../auto_scaling/put_notification_configuration.rb |   8 +-
 .../requests/auto_scaling/put_scaling_policy.rb    |   8 +-
 .../put_scheduled_update_group_action.rb           |   6 -
 .../aws/requests/auto_scaling/resume_processes.rb  |   8 +-
 .../requests/auto_scaling/set_desired_capacity.rb  |   8 +-
 .../requests/auto_scaling/set_instance_health.rb   |   6 -
 .../aws/requests/auto_scaling/suspend_processes.rb |   8 +-
 .../terminate_instance_in_auto_scaling_group.rb    |   6 -
 .../auto_scaling/update_auto_scaling_group.rb      |   7 +-
 .../requests/beanstalk/check_dns_availability.rb   |   1 -
 .../aws/requests/beanstalk/create_application.rb   |   1 -
 .../beanstalk/create_application_version.rb        |   1 -
 .../beanstalk/create_configuration_template.rb     |   1 -
 .../aws/requests/beanstalk/create_environment.rb   |   1 -
 .../requests/beanstalk/create_storage_location.rb  |   1 -
 .../aws/requests/beanstalk/delete_application.rb   |   1 -
 .../beanstalk/delete_application_version.rb        |   1 -
 .../beanstalk/delete_configuration_template.rb     |   1 -
 .../beanstalk/delete_environment_configuration.rb  |   1 -
 .../beanstalk/describe_application_versions.rb     |   1 -
 .../requests/beanstalk/describe_applications.rb    |   1 -
 .../beanstalk/describe_configuration_options.rb    |   1 -
 .../beanstalk/describe_configuration_settings.rb   |   1 -
 .../beanstalk/describe_environment_resources.rb    |   1 -
 .../requests/beanstalk/describe_environments.rb    |   1 -
 lib/fog/aws/requests/beanstalk/describe_events.rb  |   1 -
 .../beanstalk/list_available_solution_stacks.rb    |   1 -
 .../aws/requests/beanstalk/rebuild_environment.rb  |   1 -
 .../requests/beanstalk/request_environment_info.rb |   1 -
 .../aws/requests/beanstalk/restart_app_server.rb   |   1 -
 .../beanstalk/retrieve_environment_info.rb         |   1 -
 .../requests/beanstalk/swap_environment_cnames.rb  |   1 -
 .../requests/beanstalk/terminate_environment.rb    |   1 -
 .../aws/requests/beanstalk/update_application.rb   |   1 -
 .../beanstalk/update_application_version.rb        |   1 -
 .../beanstalk/update_configuration_template.rb     |   1 -
 .../aws/requests/beanstalk/update_environment.rb   |   1 -
 .../beanstalk/validate_configuration_settings.rb   |   1 -
 lib/fog/aws/requests/cdn/delete_distribution.rb    |   5 -
 .../requests/cdn/delete_streaming_distribution.rb  |   5 -
 lib/fog/aws/requests/cdn/get_distribution.rb       |   4 -
 lib/fog/aws/requests/cdn/get_distribution_list.rb  |   3 -
 lib/fog/aws/requests/cdn/get_invalidation.rb       |   4 -
 lib/fog/aws/requests/cdn/get_invalidation_list.rb  |   5 -
 .../aws/requests/cdn/get_streaming_distribution.rb |   4 -
 .../cdn/get_streaming_distribution_list.rb         |   4 -
 lib/fog/aws/requests/cdn/post_distribution.rb      |   3 -
 lib/fog/aws/requests/cdn/post_invalidation.rb      |   5 -
 .../requests/cdn/post_streaming_distribution.rb    |   5 -
 .../aws/requests/cdn/put_distribution_config.rb    |   4 -
 .../cdn/put_streaming_distribution_config.rb       |   4 -
 .../aws/requests/cloud_formation/create_stack.rb   |   2 -
 .../aws/requests/cloud_formation/delete_stack.rb   |   2 -
 .../cloud_formation/describe_stack_events.rb       |   2 -
 .../cloud_formation/describe_stack_resources.rb    |   2 -
 .../requests/cloud_formation/describe_stacks.rb    |   2 -
 .../aws/requests/cloud_formation/get_template.rb   |   2 -
 .../cloud_formation/list_stack_resources.rb        |   2 -
 .../aws/requests/cloud_formation/list_stacks.rb    |   2 -
 .../aws/requests/cloud_formation/update_stack.rb   |   2 -
 .../requests/cloud_formation/validate_template.rb  |   2 -
 lib/fog/aws/requests/cloud_watch/delete_alarms.rb  |   3 +-
 .../requests/cloud_watch/describe_alarm_history.rb |   1 -
 .../aws/requests/cloud_watch/describe_alarms.rb    |   1 -
 .../cloud_watch/describe_alarms_for_metric.rb      |   5 +-
 .../requests/cloud_watch/disable_alarm_actions.rb  |   1 -
 .../requests/cloud_watch/enable_alarm_actions.rb   |   1 -
 .../requests/cloud_watch/get_metric_statistics.rb  |   8 +-
 lib/fog/aws/requests/cloud_watch/list_metrics.rb   |   7 +-
 .../aws/requests/cloud_watch/put_metric_alarm.rb   |   6 +-
 .../aws/requests/cloud_watch/put_metric_data.rb    |   9 +-
 .../aws/requests/cloud_watch/set_alarm_state.rb    |   1 -
 lib/fog/aws/requests/compute/allocate_address.rb   |   4 -
 .../compute/assign_private_ip_addresses.rb         |   5 -
 lib/fog/aws/requests/compute/associate_address.rb  |   7 +-
 .../aws/requests/compute/associate_dhcp_options.rb |   4 -
 .../aws/requests/compute/associate_route_table.rb  |   5 -
 .../requests/compute/attach_internet_gateway.rb    |   4 -
 .../requests/compute/attach_network_interface.rb   |  12 +-
 lib/fog/aws/requests/compute/attach_volume.rb      |   4 -
 .../compute/authorize_security_group_ingress.rb    |  19 +-
 .../compute/cancel_spot_instance_requests.rb       |   2 -
 lib/fog/aws/requests/compute/copy_image.rb         |   4 -
 lib/fog/aws/requests/compute/copy_snapshot.rb      |   4 -
 .../aws/requests/compute/create_dhcp_options.rb    |   2 -
 lib/fog/aws/requests/compute/create_image.rb       |   5 +-
 .../requests/compute/create_internet_gateway.rb    |   1 -
 lib/fog/aws/requests/compute/create_key_pair.rb    |   4 -
 lib/fog/aws/requests/compute/create_network_acl.rb |   4 +-
 .../requests/compute/create_network_acl_entry.rb   |   2 +-
 .../requests/compute/create_network_interface.rb   |  90 ++-
 .../aws/requests/compute/create_placement_group.rb |   3 -
 lib/fog/aws/requests/compute/create_route.rb       |   2 -
 lib/fog/aws/requests/compute/create_route_table.rb |   1 -
 .../aws/requests/compute/create_security_group.rb  |   4 -
 lib/fog/aws/requests/compute/create_snapshot.rb    |   6 +-
 .../compute/create_spot_datafeed_subscription.rb   |   2 -
 lib/fog/aws/requests/compute/create_subnet.rb      |  20 +-
 lib/fog/aws/requests/compute/create_tags.rb        |  26 +-
 lib/fog/aws/requests/compute/create_volume.rb      |  13 +-
 lib/fog/aws/requests/compute/create_vpc.rb         |  15 +-
 .../aws/requests/compute/delete_dhcp_options.rb    |   1 -
 .../requests/compute/delete_internet_gateway.rb    |   1 -
 lib/fog/aws/requests/compute/delete_key_pair.rb    |   4 -
 .../requests/compute/delete_network_acl_entry.rb   |   2 +-
 .../requests/compute/delete_network_interface.rb   |   1 -
 .../aws/requests/compute/delete_placement_group.rb |   2 -
 lib/fog/aws/requests/compute/delete_route.rb       |   3 -
 lib/fog/aws/requests/compute/delete_route_table.rb |   2 -
 .../aws/requests/compute/delete_security_group.rb  |   2 -
 lib/fog/aws/requests/compute/delete_snapshot.rb    |   4 -
 .../compute/delete_spot_datafeed_subscription.rb   |   2 -
 lib/fog/aws/requests/compute/delete_subnet.rb      |   1 -
 lib/fog/aws/requests/compute/delete_tags.rb        |  23 +-
 lib/fog/aws/requests/compute/delete_volume.rb      |   4 -
 lib/fog/aws/requests/compute/delete_vpc.rb         |   1 -
 lib/fog/aws/requests/compute/deregister_image.rb   |   4 -
 .../compute/describe_account_attributes.rb         |   1 -
 lib/fog/aws/requests/compute/describe_addresses.rb |   4 -
 .../compute/describe_availability_zones.rb         |   4 -
 .../aws/requests/compute/describe_dhcp_options.rb  |   1 -
 lib/fog/aws/requests/compute/describe_images.rb    |   4 -
 .../requests/compute/describe_instance_status.rb   |   2 -
 lib/fog/aws/requests/compute/describe_instances.rb |  49 +-
 .../requests/compute/describe_internet_gateways.rb |   1 -
 lib/fog/aws/requests/compute/describe_key_pairs.rb |   4 -
 .../aws/requests/compute/describe_network_acls.rb  |  15 +-
 .../describe_network_interface_attribute.rb        |   1 -
 .../compute/describe_network_interfaces.rb         |   4 -
 .../requests/compute/describe_placement_groups.rb  |   2 -
 lib/fog/aws/requests/compute/describe_regions.rb   |   4 -
 .../compute/describe_reserved_instances.rb         |   2 -
 .../describe_reserved_instances_offerings.rb       |   1 -
 .../aws/requests/compute/describe_route_tables.rb  |   1 -
 .../requests/compute/describe_security_groups.rb   |  12 +-
 lib/fog/aws/requests/compute/describe_snapshots.rb |   8 +-
 .../compute/describe_spot_datafeed_subscription.rb |   2 -
 .../compute/describe_spot_instance_requests.rb     |   2 -
 .../compute/describe_spot_price_history.rb         |   2 -
 lib/fog/aws/requests/compute/describe_subnets.rb   |   1 -
 lib/fog/aws/requests/compute/describe_tags.rb      |   5 +-
 .../aws/requests/compute/describe_volume_status.rb |   2 -
 lib/fog/aws/requests/compute/describe_volumes.rb   |   8 +-
 .../aws/requests/compute/describe_vpc_attribute.rb |  55 ++
 lib/fog/aws/requests/compute/describe_vpcs.rb      |   7 +-
 .../requests/compute/detach_internet_gateway.rb    |   4 -
 .../requests/compute/detach_network_interface.rb   |   1 -
 lib/fog/aws/requests/compute/detach_volume.rb      |   4 -
 .../aws/requests/compute/disassociate_address.rb   |   4 -
 .../requests/compute/disassociate_route_table.rb   |   3 -
 lib/fog/aws/requests/compute/get_console_output.rb |   4 -
 lib/fog/aws/requests/compute/get_password_data.rb  |   4 -
 lib/fog/aws/requests/compute/import_key_pair.rb    |   4 -
 .../aws/requests/compute/modify_image_attribute.rb |   4 -
 .../requests/compute/modify_instance_attribute.rb  |   2 -
 .../compute/modify_network_interface_attribute.rb  |   1 -
 .../requests/compute/modify_snapshot_attribute.rb  |   2 -
 .../requests/compute/modify_subnet_attribute.rb    |  58 ++
 .../requests/compute/modify_volume_attribute.rb    |   3 -
 .../aws/requests/compute/modify_vpc_attribute.rb   |  17 +-
 lib/fog/aws/requests/compute/monitor_instances.rb  |   8 +-
 .../purchase_reserved_instances_offering.rb        |   2 -
 lib/fog/aws/requests/compute/reboot_instances.rb   |   4 -
 lib/fog/aws/requests/compute/register_image.rb     |   4 +-
 lib/fog/aws/requests/compute/release_address.rb    |   6 +-
 .../compute/replace_network_acl_association.rb     |   6 +-
 .../requests/compute/replace_network_acl_entry.rb  |   2 +-
 lib/fog/aws/requests/compute/replace_route.rb      |   4 -
 .../aws/requests/compute/request_spot_instances.rb |   2 -
 .../compute/reset_network_interface_attribute.rb   |   1 -
 .../compute/revoke_security_group_ingress.rb       |   4 -
 lib/fog/aws/requests/compute/run_instances.rb      |  33 +-
 lib/fog/aws/requests/compute/start_instances.rb    |   6 +-
 lib/fog/aws/requests/compute/stop_instances.rb     |   6 +-
 .../aws/requests/compute/terminate_instances.rb    |   4 -
 .../aws/requests/compute/unmonitor_instances.rb    |   9 +-
 .../requests/data_pipeline/activate_pipeline.rb    |   4 -
 .../aws/requests/data_pipeline/create_pipeline.rb  |  10 +-
 .../aws/requests/data_pipeline/delete_pipeline.rb  |   4 -
 .../aws/requests/data_pipeline/describe_objects.rb |   4 -
 .../requests/data_pipeline/describe_pipelines.rb   |   4 -
 .../data_pipeline/get_pipeline_definition.rb       |   4 -
 .../aws/requests/data_pipeline/list_pipelines.rb   |   4 -
 .../data_pipeline/put_pipeline_definition.rb       |   6 +-
 .../aws/requests/data_pipeline/query_objects.rb    |   5 -
 .../requests/dns/change_resource_record_sets.rb    |  33 +-
 lib/fog/aws/requests/dns/create_health_check.rb    |  64 ++
 lib/fog/aws/requests/dns/create_hosted_zone.rb     |   7 +-
 lib/fog/aws/requests/dns/delete_health_check.rb    |  24 +
 lib/fog/aws/requests/dns/delete_hosted_zone.rb     |   6 -
 lib/fog/aws/requests/dns/get_change.rb             |   5 -
 lib/fog/aws/requests/dns/get_health_check.rb       |  41 +
 lib/fog/aws/requests/dns/get_hosted_zone.rb        |   4 -
 lib/fog/aws/requests/dns/list_health_checks.rb     |  36 +
 lib/fog/aws/requests/dns/list_hosted_zones.rb      |   8 +-
 .../aws/requests/dns/list_resource_record_sets.rb  |   6 -
 lib/fog/aws/requests/dynamodb/batch_get_item.rb    |   2 -
 lib/fog/aws/requests/dynamodb/batch_write_item.rb  |   2 -
 lib/fog/aws/requests/dynamodb/create_table.rb      |   2 -
 lib/fog/aws/requests/dynamodb/delete_item.rb       |   2 -
 lib/fog/aws/requests/dynamodb/delete_table.rb      |   2 -
 lib/fog/aws/requests/dynamodb/describe_table.rb    |   2 -
 lib/fog/aws/requests/dynamodb/get_item.rb          |   2 -
 lib/fog/aws/requests/dynamodb/list_tables.rb       |   2 -
 lib/fog/aws/requests/dynamodb/put_item.rb          |   2 -
 lib/fog/aws/requests/dynamodb/query.rb             |   2 -
 lib/fog/aws/requests/dynamodb/scan.rb              |   2 -
 lib/fog/aws/requests/dynamodb/update_item.rb       |   2 -
 lib/fog/aws/requests/dynamodb/update_table.rb      |   2 -
 .../authorize_cache_security_group_ingress.rb      |   6 +-
 .../requests/elasticache/create_cache_cluster.rb   |   4 -
 .../elasticache/create_cache_parameter_group.rb    |   1 -
 .../elasticache/create_cache_security_group.rb     |   3 -
 .../elasticache/create_cache_subnet_group.rb       |   6 -
 .../requests/elasticache/delete_cache_cluster.rb   |   3 -
 .../elasticache/delete_cache_parameter_group.rb    |   1 -
 .../elasticache/delete_cache_security_group.rb     |   1 -
 .../elasticache/delete_cache_subnet_group.rb       |   1 -
 .../elasticache/describe_cache_clusters.rb         |   3 -
 .../elasticache/describe_cache_parameter_groups.rb |   3 -
 .../elasticache/describe_cache_parameters.rb       |   2 -
 .../elasticache/describe_cache_security_groups.rb  |   4 -
 .../elasticache/describe_cache_subnet_groups.rb    |   4 -
 .../describe_engine_default_parameters.rb          |   2 -
 .../aws/requests/elasticache/describe_events.rb    |   2 -
 .../elasticache/describe_reserved_cache_nodes.rb   |   4 -
 .../requests/elasticache/modify_cache_cluster.rb   |   7 +-
 .../elasticache/modify_cache_parameter_group.rb    |   4 +-
 .../requests/elasticache/reboot_cache_cluster.rb   |   5 +-
 .../elasticache/reset_cache_parameter_group.rb     |   4 +-
 .../revoke_cache_security_group_ingress.rb         |   2 -
 .../elb/apply_security_groups_to_load_balancer.rb  |   7 +-
 .../elb/attach_load_balancer_to_subnets.rb         |   7 +-
 lib/fog/aws/requests/elb/configure_health_check.rb |   2 -
 .../elb/create_app_cookie_stickiness_policy.rb     |   2 -
 .../elb/create_lb_cookie_stickiness_policy.rb      |   2 -
 lib/fog/aws/requests/elb/create_load_balancer.rb   |  89 ++-
 .../requests/elb/create_load_balancer_listeners.rb |   2 -
 .../requests/elb/create_load_balancer_policy.rb    |   2 -
 lib/fog/aws/requests/elb/delete_load_balancer.rb   |   2 -
 .../requests/elb/delete_load_balancer_listeners.rb |   2 -
 .../requests/elb/delete_load_balancer_policy.rb    |   2 -
 .../elb/deregister_instances_from_load_balancer.rb |   6 +-
 .../aws/requests/elb/describe_instance_health.rb   |   4 +-
 .../elb/describe_load_balancer_attributes.rb       |   5 +-
 .../elb/describe_load_balancer_policies.rb         |   2 -
 .../elb/describe_load_balancer_policy_types.rb     |   2 -
 .../aws/requests/elb/describe_load_balancers.rb    |   8 +-
 .../elb/detach_load_balancer_from_subnets.rb       |   7 +-
 ...disable_availability_zones_for_load_balancer.rb |   6 +-
 .../enable_availability_zones_for_load_balancer.rb |   7 +-
 .../elb/modify_load_balancer_attributes.rb         |  12 +-
 .../elb/register_instances_with_load_balancer.rb   |   6 +-
 .../set_load_balancer_listener_ssl_certificate.rb  |   2 -
 ...et_load_balancer_policies_for_backend_server.rb |   1 -
 .../elb/set_load_balancer_policies_of_listener.rb  |   2 -
 lib/fog/aws/requests/emr/add_instance_groups.rb    |   4 -
 lib/fog/aws/requests/emr/add_job_flow_steps.rb     |   4 -
 lib/fog/aws/requests/emr/describe_job_flows.rb     |   4 -
 lib/fog/aws/requests/emr/modify_instance_groups.rb |   4 -
 lib/fog/aws/requests/emr/run_job_flow.rb           |   4 -
 .../aws/requests/emr/set_termination_protection.rb |   4 -
 lib/fog/aws/requests/emr/terminate_job_flows.rb    |   4 -
 .../aws/requests/glacier/abort_multipart_upload.rb |   2 -
 .../requests/glacier/complete_multipart_upload.rb  |   2 -
 lib/fog/aws/requests/glacier/create_archive.rb     |   2 -
 lib/fog/aws/requests/glacier/create_vault.rb       |   2 -
 lib/fog/aws/requests/glacier/delete_archive.rb     |   2 -
 lib/fog/aws/requests/glacier/delete_vault.rb       |   2 -
 .../delete_vault_notification_configuration.rb     |   2 -
 lib/fog/aws/requests/glacier/describe_job.rb       |   2 -
 lib/fog/aws/requests/glacier/describe_vault.rb     |   2 -
 lib/fog/aws/requests/glacier/get_job_output.rb     |   2 -
 .../get_vault_notification_configuration.rb        |   2 -
 lib/fog/aws/requests/glacier/initiate_job.rb       |   2 -
 .../requests/glacier/initiate_multipart_upload.rb  |   2 -
 lib/fog/aws/requests/glacier/list_jobs.rb          |   3 -
 .../aws/requests/glacier/list_multipart_uploads.rb |   3 -
 lib/fog/aws/requests/glacier/list_parts.rb         |   2 -
 lib/fog/aws/requests/glacier/list_vaults.rb        |   2 -
 .../set_vault_notification_configuration.rb        |   2 -
 lib/fog/aws/requests/glacier/upload_part.rb        |   2 -
 .../requests/iam/add_role_to_instance_profile.rb   |   3 -
 lib/fog/aws/requests/iam/add_user_to_group.rb      |   8 +-
 lib/fog/aws/requests/iam/create_access_key.rb      |   4 +-
 lib/fog/aws/requests/iam/create_account_alias.rb   |   2 -
 lib/fog/aws/requests/iam/create_group.rb           |   6 +-
 .../aws/requests/iam/create_instance_profile.rb    |   1 -
 lib/fog/aws/requests/iam/create_login_profile.rb   |   2 -
 lib/fog/aws/requests/iam/create_role.rb            |   1 -
 lib/fog/aws/requests/iam/create_user.rb            |   4 +-
 lib/fog/aws/requests/iam/delete_access_key.rb      |   6 +-
 lib/fog/aws/requests/iam/delete_account_alias.rb   |   2 -
 .../requests/iam/delete_account_password_policy.rb |  36 +
 lib/fog/aws/requests/iam/delete_group.rb           |   5 +-
 lib/fog/aws/requests/iam/delete_group_policy.rb    |   2 -
 .../aws/requests/iam/delete_instance_profile.rb    |   2 -
 lib/fog/aws/requests/iam/delete_login_profile.rb   |   2 -
 lib/fog/aws/requests/iam/delete_role.rb            |   2 -
 lib/fog/aws/requests/iam/delete_role_policy.rb     |   3 -
 .../aws/requests/iam/delete_server_certificate.rb  |   2 -
 .../aws/requests/iam/delete_signing_certificate.rb |   2 -
 lib/fog/aws/requests/iam/delete_user.rb            |   7 +-
 lib/fog/aws/requests/iam/delete_user_policy.rb     |   6 +-
 .../requests/iam/get_account_password_policy.rb    |  36 +
 lib/fog/aws/requests/iam/get_account_summary.rb    |   5 -
 lib/fog/aws/requests/iam/get_group.rb              |   2 -
 lib/fog/aws/requests/iam/get_group_policy.rb       |   2 -
 lib/fog/aws/requests/iam/get_instance_profile.rb   |   2 -
 lib/fog/aws/requests/iam/get_login_profile.rb      |   2 -
 lib/fog/aws/requests/iam/get_role.rb               |   2 -
 lib/fog/aws/requests/iam/get_role_policy.rb        |   2 -
 lib/fog/aws/requests/iam/get_server_certificate.rb |   3 -
 lib/fog/aws/requests/iam/get_user.rb               |   2 -
 lib/fog/aws/requests/iam/get_user_policy.rb        |   2 -
 lib/fog/aws/requests/iam/list_access_keys.rb       |   5 +-
 lib/fog/aws/requests/iam/list_account_aliases.rb   |   2 -
 lib/fog/aws/requests/iam/list_group_policies.rb    |   2 -
 lib/fog/aws/requests/iam/list_groups.rb            |   3 -
 lib/fog/aws/requests/iam/list_groups_for_user.rb   |   4 +-
 lib/fog/aws/requests/iam/list_instance_profiles.rb |   2 -
 .../iam/list_instance_profiles_for_role.rb         |   2 -
 lib/fog/aws/requests/iam/list_role_policies.rb     |   2 -
 lib/fog/aws/requests/iam/list_roles.rb             |   2 -
 .../aws/requests/iam/list_server_certificates.rb   |   2 -
 .../aws/requests/iam/list_signing_certificates.rb  |   2 -
 lib/fog/aws/requests/iam/list_user_policies.rb     |   6 +-
 lib/fog/aws/requests/iam/list_users.rb             |   2 -
 lib/fog/aws/requests/iam/put_group_policy.rb       |   4 +-
 lib/fog/aws/requests/iam/put_role_policy.rb        |   2 -
 lib/fog/aws/requests/iam/put_user_policy.rb        |   5 +-
 .../iam/remove_role_from_instance_profile.rb       |   3 -
 lib/fog/aws/requests/iam/remove_user_from_group.rb |   7 +-
 lib/fog/aws/requests/iam/update_access_key.rb      |   7 +-
 .../requests/iam/update_account_password_policy.rb |  56 ++
 lib/fog/aws/requests/iam/update_group.rb           |   2 -
 lib/fog/aws/requests/iam/update_login_profile.rb   |   2 -
 .../aws/requests/iam/update_server_certificate.rb  |   1 -
 .../aws/requests/iam/update_signing_certificate.rb |   1 -
 lib/fog/aws/requests/iam/update_user.rb            |   2 -
 .../aws/requests/iam/upload_server_certificate.rb  |   2 -
 .../aws/requests/iam/upload_signing_certificate.rb |   2 -
 lib/fog/aws/requests/rds/add_tags_to_resource.rb   |   4 -
 .../rds/authorize_db_security_group_ingress.rb     |  11 +-
 lib/fog/aws/requests/rds/create_db_instance.rb     |   8 +-
 .../rds/create_db_instance_read_replica.rb         |   6 -
 .../aws/requests/rds/create_db_parameter_group.rb  |   6 -
 .../aws/requests/rds/create_db_security_group.rb   |   6 -
 lib/fog/aws/requests/rds/create_db_snapshot.rb     |   4 -
 lib/fog/aws/requests/rds/create_db_subnet_group.rb |   5 -
 lib/fog/aws/requests/rds/delete_db_instance.rb     |   4 -
 .../aws/requests/rds/delete_db_parameter_group.rb  |   5 -
 .../aws/requests/rds/delete_db_security_group.rb   |   6 -
 lib/fog/aws/requests/rds/delete_db_snapshot.rb     |   5 -
 lib/fog/aws/requests/rds/delete_db_subnet_group.rb |   4 -
 .../requests/rds/describe_db_engine_versions.rb    |   4 -
 lib/fog/aws/requests/rds/describe_db_instances.rb  |   5 -
 lib/fog/aws/requests/rds/describe_db_log_files.rb  |   3 -
 .../requests/rds/describe_db_parameter_groups.rb   |   5 -
 lib/fog/aws/requests/rds/describe_db_parameters.rb |   3 -
 .../requests/rds/describe_db_reserved_instances.rb |   4 -
 .../requests/rds/describe_db_security_groups.rb    |   5 -
 lib/fog/aws/requests/rds/describe_db_snapshots.rb  |   5 -
 .../aws/requests/rds/describe_db_subnet_groups.rb  |   4 -
 lib/fog/aws/requests/rds/describe_events.rb        |   2 -
 .../rds/describe_orderable_db_instance_options.rb  |   4 -
 .../requests/rds/download_db_logfile_portion.rb    |   5 -
 lib/fog/aws/requests/rds/list_tags_for_resource.rb |   4 -
 lib/fog/aws/requests/rds/modify_db_instance.rb     |   5 -
 .../aws/requests/rds/modify_db_parameter_group.rb  |   5 -
 lib/fog/aws/requests/rds/promote_read_replica.rb   |  59 ++
 lib/fog/aws/requests/rds/reboot_db_instance.rb     |   4 -
 .../aws/requests/rds/remove_tags_from_resource.rb  |   4 -
 .../rds/restore_db_instance_from_db_snapshot.rb    |   5 -
 .../rds/restore_db_instance_to_point_in_time.rb    |   6 -
 .../rds/revoke_db_security_group_ingress.rb        |   7 -
 .../authorize_cluster_security_group_ingress.rb    |   2 -
 .../requests/redshift/authorize_snapshot_access.rb |   1 -
 .../aws/requests/redshift/copy_cluster_snapshot.rb |   2 -
 lib/fog/aws/requests/redshift/create_cluster.rb    |   3 -
 .../redshift/create_cluster_parameter_group.rb     |   1 -
 .../redshift/create_cluster_security_group.rb      |   1 -
 .../requests/redshift/create_cluster_snapshot.rb   |   1 -
 .../redshift/create_cluster_subnet_group.rb        |   1 -
 lib/fog/aws/requests/redshift/delete_cluster.rb    |   1 -
 .../redshift/delete_cluster_parameter_group.rb     |   1 -
 .../redshift/delete_cluster_security_group.rb      |   1 -
 .../requests/redshift/delete_cluster_snapshot.rb   |   1 -
 .../redshift/delete_cluster_subnet_group.rb        |   2 -
 .../redshift/describe_cluster_parameter_groups.rb  |   1 -
 .../redshift/describe_cluster_parameters.rb        |   1 -
 .../redshift/describe_cluster_security_groups.rb   |   1 -
 .../redshift/describe_cluster_snapshots.rb         |   1 -
 .../redshift/describe_cluster_subnet_groups.rb     |   1 -
 .../requests/redshift/describe_cluster_versions.rb |   1 -
 .../describe_default_cluster_parameters.rb         |   1 -
 lib/fog/aws/requests/redshift/describe_events.rb   |   1 -
 .../redshift/describe_orderable_cluster_options.rb |   1 -
 .../redshift/describe_reserved_node_offerings.rb   |   1 -
 .../requests/redshift/describe_reserved_nodes.rb   |   1 -
 lib/fog/aws/requests/redshift/describe_resize.rb   |   1 -
 lib/fog/aws/requests/redshift/modify_cluster.rb    |   2 -
 .../redshift/modify_cluster_subnet_group.rb        |   1 -
 .../redshift/purchase_reserved_node_offering.rb    |   2 -
 lib/fog/aws/requests/redshift/reboot_cluster.rb    |   1 -
 .../redshift/reset_cluster_parameter_group.rb      |   2 -
 .../redshift/restore_from_cluster_snapshot.rb      |   1 -
 .../revoke_cluster_security_group_ingress.rb       |   2 -
 .../requests/redshift/revoke_snapshot_access.rb    |   1 -
 .../requests/ses/delete_verified_email_address.rb  |   2 -
 lib/fog/aws/requests/ses/get_send_quota.rb         |   2 -
 lib/fog/aws/requests/ses/get_send_statistics.rb    |   2 -
 .../requests/ses/list_verified_email_addresses.rb  |   2 -
 lib/fog/aws/requests/ses/send_email.rb             |   6 +-
 lib/fog/aws/requests/ses/send_raw_email.rb         |   6 +-
 lib/fog/aws/requests/ses/verify_domain_identity.rb |   2 -
 lib/fog/aws/requests/ses/verify_email_address.rb   |   2 -
 .../aws/requests/simpledb/batch_put_attributes.rb  |   4 -
 lib/fog/aws/requests/simpledb/create_domain.rb     |   4 -
 lib/fog/aws/requests/simpledb/delete_attributes.rb |   4 -
 lib/fog/aws/requests/simpledb/delete_domain.rb     |   4 -
 lib/fog/aws/requests/simpledb/domain_metadata.rb   |   4 -
 lib/fog/aws/requests/simpledb/get_attributes.rb    |   6 +-
 lib/fog/aws/requests/simpledb/list_domains.rb      |   4 -
 lib/fog/aws/requests/simpledb/put_attributes.rb    |   4 -
 lib/fog/aws/requests/simpledb/select.rb            |   2 -
 lib/fog/aws/requests/sns/add_permission.rb         |   4 -
 lib/fog/aws/requests/sns/confirm_subscription.rb   |   3 -
 lib/fog/aws/requests/sns/create_topic.rb           |   3 -
 lib/fog/aws/requests/sns/delete_topic.rb           |   3 -
 lib/fog/aws/requests/sns/get_topic_attributes.rb   |   3 -
 lib/fog/aws/requests/sns/list_subscriptions.rb     |   3 -
 .../requests/sns/list_subscriptions_by_topic.rb    |   3 -
 lib/fog/aws/requests/sns/list_topics.rb            |   3 -
 lib/fog/aws/requests/sns/publish.rb                |   3 -
 lib/fog/aws/requests/sns/remove_permission.rb      |   4 -
 lib/fog/aws/requests/sns/set_topic_attributes.rb   |   3 -
 lib/fog/aws/requests/sns/subscribe.rb              |   3 -
 lib/fog/aws/requests/sns/unsubscribe.rb            |   3 -
 .../aws/requests/sqs/change_message_visibility.rb  |   7 +-
 lib/fog/aws/requests/sqs/create_queue.rb           |   3 -
 lib/fog/aws/requests/sqs/delete_message.rb         |   6 +-
 lib/fog/aws/requests/sqs/delete_queue.rb           |   5 -
 lib/fog/aws/requests/sqs/get_queue_attributes.rb   |   4 -
 lib/fog/aws/requests/sqs/list_queues.rb            |   1 -
 lib/fog/aws/requests/sqs/receive_message.rb        |   4 -
 lib/fog/aws/requests/sqs/send_message.rb           |   4 -
 lib/fog/aws/requests/sqs/set_queue_attributes.rb   |   2 -
 .../aws/requests/storage/abort_multipart_upload.rb |   1 -
 lib/fog/aws/requests/storage/acl_utils.rb          |   8 +-
 .../requests/storage/complete_multipart_upload.rb  |   2 -
 lib/fog/aws/requests/storage/copy_object.rb        |   4 -
 lib/fog/aws/requests/storage/cors_utils.rb         |   2 -
 lib/fog/aws/requests/storage/delete_bucket.rb      |   5 -
 lib/fog/aws/requests/storage/delete_bucket_cors.rb |   3 -
 .../requests/storage/delete_bucket_lifecycle.rb    |   1 -
 .../aws/requests/storage/delete_bucket_policy.rb   |   3 -
 .../aws/requests/storage/delete_bucket_tagging.rb  |   5 -
 .../aws/requests/storage/delete_bucket_website.rb  |   3 -
 .../requests/storage/delete_multiple_objects.rb    |   5 -
 lib/fog/aws/requests/storage/delete_object.rb      |   4 -
 lib/fog/aws/requests/storage/get_bucket.rb         |   8 +-
 lib/fog/aws/requests/storage/get_bucket_acl.rb     |   4 -
 lib/fog/aws/requests/storage/get_bucket_cors.rb    |   4 -
 .../aws/requests/storage/get_bucket_lifecycle.rb   |   3 -
 .../aws/requests/storage/get_bucket_location.rb    |   4 -
 lib/fog/aws/requests/storage/get_bucket_logging.rb |   2 -
 .../requests/storage/get_bucket_object_versions.rb |   6 +-
 lib/fog/aws/requests/storage/get_bucket_policy.rb  |   3 -
 lib/fog/aws/requests/storage/get_bucket_tagging.rb |   4 -
 .../aws/requests/storage/get_bucket_versioning.rb  |   1 -
 lib/fog/aws/requests/storage/get_bucket_website.rb |   2 -
 lib/fog/aws/requests/storage/get_object.rb         |   5 +-
 lib/fog/aws/requests/storage/get_object_acl.rb     |   4 -
 .../aws/requests/storage/get_object_http_url.rb    |   7 -
 .../aws/requests/storage/get_object_https_url.rb   |   7 -
 lib/fog/aws/requests/storage/get_object_torrent.rb |   2 -
 lib/fog/aws/requests/storage/get_object_url.rb     |   6 -
 .../aws/requests/storage/get_request_payment.rb    |   4 -
 lib/fog/aws/requests/storage/get_service.rb        |   4 -
 lib/fog/aws/requests/storage/head_bucket.rb        |  38 +
 lib/fog/aws/requests/storage/head_object.rb        |   4 -
 .../requests/storage/initiate_multipart_upload.rb  |   2 -
 .../aws/requests/storage/list_multipart_uploads.rb |   2 -
 lib/fog/aws/requests/storage/list_parts.rb         |   2 -
 .../requests/storage/post_object_hidden_fields.rb  |   2 -
 .../aws/requests/storage/post_object_restore.rb    |   4 -
 lib/fog/aws/requests/storage/put_bucket.rb         |   4 -
 lib/fog/aws/requests/storage/put_bucket_acl.rb     |   2 -
 lib/fog/aws/requests/storage/put_bucket_cors.rb    |   2 -
 .../aws/requests/storage/put_bucket_lifecycle.rb   |   1 -
 lib/fog/aws/requests/storage/put_bucket_logging.rb |   2 -
 lib/fog/aws/requests/storage/put_bucket_policy.rb  |   3 -
 lib/fog/aws/requests/storage/put_bucket_tagging.rb |   5 -
 .../aws/requests/storage/put_bucket_versioning.rb  |   1 -
 lib/fog/aws/requests/storage/put_bucket_website.rb |   5 -
 lib/fog/aws/requests/storage/put_object.rb         |   4 -
 lib/fog/aws/requests/storage/put_object_acl.rb     |   2 -
 lib/fog/aws/requests/storage/put_object_url.rb     |   5 -
 .../aws/requests/storage/put_request_payment.rb    |   4 -
 lib/fog/aws/requests/storage/sync_clock.rb         |   4 -
 lib/fog/aws/requests/storage/upload_part.rb        |   2 -
 lib/fog/aws/requests/sts/assume_role.rb            |   2 -
 lib/fog/aws/requests/sts/get_federation_token.rb   |   1 -
 lib/fog/aws/requests/sts/get_session_token.rb      |   1 -
 lib/fog/aws/ses.rb                                 |  58 +-
 lib/fog/aws/signaturev4.rb                         |   4 +-
 lib/fog/aws/simpledb.rb                            |  20 +-
 lib/fog/aws/sns.rb                                 |  21 +-
 lib/fog/aws/sqs.rb                                 |  25 +-
 lib/fog/aws/storage.rb                             |  31 +-
 lib/fog/aws/sts.rb                                 |  48 +-
 lib/fog/bare_metal_cloud/compute.rb                |   5 -
 lib/fog/bare_metal_cloud/core.rb                   |   2 -
 .../requests/compute/add_server.rb                 |   2 -
 .../compute/add_server_by_configuration.rb         |   2 -
 .../requests/compute/cancel_server.rb              |   2 -
 .../requests/compute/get_server.rb                 |   2 -
 .../requests/compute/list_configurations.rb        |   2 -
 .../requests/compute/list_images.rb                |   2 -
 .../requests/compute/list_plans.rb                 |   2 -
 .../requests/compute/list_servers.rb               |   2 -
 .../requests/compute/reboot_server.rb              |   2 -
 lib/fog/bin.rb                                     |   7 +-
 lib/fog/bin/atmos.rb                               |   2 -
 lib/fog/bin/aws.rb                                 |   2 -
 lib/fog/bin/bare_metal_cloud.rb                    |   2 -
 lib/fog/bin/bluebox.rb                             |   2 -
 lib/fog/bin/brightbox.rb                           |   2 -
 lib/fog/bin/clodo.rb                               |   2 -
 lib/fog/bin/cloudsigma.rb                          |   1 -
 lib/fog/bin/cloudstack.rb                          |   2 -
 lib/fog/bin/digitalocean.rb                        |   2 -
 lib/fog/bin/dnsimple.rb                            |   2 -
 lib/fog/bin/dnsmadeeasy.rb                         |   2 -
 lib/fog/bin/dreamhost.rb                           |   2 -
 lib/fog/bin/dynect.rb                              |   2 -
 lib/fog/bin/ecloud.rb                              |   2 -
 lib/fog/bin/fogdocker.rb                           |   2 -
 lib/fog/bin/glesys.rb                              |   2 -
 lib/fog/bin/go_grid.rb                             |   2 -
 lib/fog/bin/google.rb                              |  21 +-
 lib/fog/bin/hp.rb                                  |   2 -
 lib/fog/bin/ibm.rb                                 |   2 -
 lib/fog/bin/internet_archive.rb                    |   2 -
 lib/fog/bin/joyent.rb                              |   2 -
 lib/fog/bin/libvirt.rb                             |   2 -
 lib/fog/bin/linode.rb                              |   2 -
 lib/fog/bin/local.rb                               |   2 -
 lib/fog/bin/ninefold.rb                            |   2 -
 lib/fog/bin/opennebula.rb                          |  60 ++
 lib/fog/bin/openstack.rb                           |   2 -
 lib/fog/bin/openvz.rb                              |   2 -
 lib/fog/bin/ovirt.rb                               |   2 -
 lib/fog/bin/rackspace.rb                           |   2 -
 lib/fog/bin/rage4.rb                               |   2 -
 lib/fog/bin/riakcs.rb                              |   2 -
 lib/fog/bin/sakuracloud.rb                         |  36 -
 lib/fog/bin/serverlove.rb                          |   2 -
 lib/fog/bin/softlayer.rb                           |  53 ++
 lib/fog/bin/stormondemand.rb                       |   2 -
 lib/fog/bin/terremark.rb                           |   2 -
 lib/fog/bin/vcloud.rb                              |   2 -
 lib/fog/bin/vcloud_director.rb                     |   2 -
 lib/fog/bin/vmfusion.rb                            |   2 -
 lib/fog/bin/voxel.rb                               |   2 -
 lib/fog/bin/vsphere.rb                             |   2 -
 lib/fog/bin/xenserver.rb                           |   2 -
 lib/fog/bin/zerigo.rb                              |   2 -
 lib/fog/bluebox/blb.rb                             |   3 -
 lib/fog/bluebox/compute.rb                         |   5 -
 lib/fog/bluebox/core.rb                            |   2 -
 lib/fog/bluebox/dns.rb                             |   2 -
 lib/fog/bluebox/models/blb/lb_application.rb       |   3 -
 lib/fog/bluebox/models/blb/lb_applications.rb      |   2 -
 lib/fog/bluebox/models/blb/lb_backend.rb           |   3 -
 lib/fog/bluebox/models/blb/lb_backends.rb          |   3 -
 lib/fog/bluebox/models/blb/lb_service.rb           |   3 -
 lib/fog/bluebox/models/blb/lb_services.rb          |   2 -
 lib/fog/bluebox/models/compute/flavor.rb           |   4 -
 lib/fog/bluebox/models/compute/flavors.rb          |   4 -
 lib/fog/bluebox/models/compute/image.rb            |   4 -
 lib/fog/bluebox/models/compute/images.rb           |   4 -
 lib/fog/bluebox/models/compute/location.rb         |   4 -
 lib/fog/bluebox/models/compute/locations.rb        |   4 -
 lib/fog/bluebox/models/compute/server.rb           |   4 -
 lib/fog/bluebox/models/compute/servers.rb          |   4 -
 lib/fog/bluebox/models/dns/record.rb               |   3 -
 lib/fog/bluebox/models/dns/records.rb              |   4 -
 lib/fog/bluebox/models/dns/zone.rb                 |   2 -
 lib/fog/bluebox/models/dns/zones.rb                |   4 -
 lib/fog/bluebox/parsers/dns/create_record.rb       |   4 -
 lib/fog/bluebox/parsers/dns/create_zone.rb         |   4 -
 lib/fog/bluebox/parsers/dns/get_record.rb          |   4 -
 lib/fog/bluebox/parsers/dns/get_records.rb         |   4 -
 lib/fog/bluebox/parsers/dns/get_zone.rb            |   4 -
 lib/fog/bluebox/parsers/dns/get_zones.rb           |   4 -
 lib/fog/bluebox/requests/blb/get_lb_application.rb |   1 -
 .../bluebox/requests/blb/get_lb_applications.rb    |   1 -
 lib/fog/bluebox/requests/blb/get_lb_backend.rb     |   1 -
 lib/fog/bluebox/requests/blb/get_lb_backends.rb    |   1 -
 lib/fog/bluebox/requests/blb/get_lb_machine.rb     |   1 -
 lib/fog/bluebox/requests/blb/get_lb_machines.rb    |   1 -
 lib/fog/bluebox/requests/blb/get_lb_service.rb     |   1 -
 lib/fog/bluebox/requests/blb/get_lb_services.rb    |   1 -
 lib/fog/bluebox/requests/compute/create_block.rb   |   5 +-
 .../bluebox/requests/compute/create_template.rb    |   2 -
 lib/fog/bluebox/requests/compute/destroy_block.rb  |   2 -
 .../bluebox/requests/compute/destroy_template.rb   |   2 -
 lib/fog/bluebox/requests/compute/get_block.rb      |   2 -
 lib/fog/bluebox/requests/compute/get_blocks.rb     |   2 -
 lib/fog/bluebox/requests/compute/get_location.rb   |   2 -
 lib/fog/bluebox/requests/compute/get_locations.rb  |   2 -
 lib/fog/bluebox/requests/compute/get_product.rb    |   2 -
 lib/fog/bluebox/requests/compute/get_products.rb   |   2 -
 lib/fog/bluebox/requests/compute/get_template.rb   |   2 -
 lib/fog/bluebox/requests/compute/get_templates.rb  |   2 -
 lib/fog/bluebox/requests/compute/reboot_block.rb   |   2 -
 lib/fog/bluebox/requests/dns/create_record.rb      |   4 -
 lib/fog/bluebox/requests/dns/create_zone.rb        |   4 -
 lib/fog/bluebox/requests/dns/delete_record.rb      |   4 -
 lib/fog/bluebox/requests/dns/delete_zone.rb        |   4 -
 lib/fog/bluebox/requests/dns/get_record.rb         |   4 -
 lib/fog/bluebox/requests/dns/get_records.rb        |   4 -
 lib/fog/bluebox/requests/dns/get_zone.rb           |   4 -
 lib/fog/bluebox/requests/dns/get_zones.rb          |   4 -
 lib/fog/bluebox/requests/dns/update_record.rb      |   4 -
 lib/fog/bluebox/requests/dns/update_zone.rb        |   4 -
 lib/fog/clodo/compute.rb                           |   5 -
 lib/fog/clodo/core.rb                              |   2 -
 lib/fog/clodo/models/compute/image.rb              |   4 -
 lib/fog/clodo/models/compute/images.rb             |   4 -
 lib/fog/clodo/models/compute/server.rb             |   5 -
 lib/fog/clodo/models/compute/servers.rb            |   4 -
 lib/fog/clodo/requests/compute/add_ip_address.rb   |   2 -
 lib/fog/clodo/requests/compute/create_server.rb    |   3 -
 .../clodo/requests/compute/delete_ip_address.rb    |   2 -
 lib/fog/clodo/requests/compute/delete_server.rb    |   6 +-
 .../clodo/requests/compute/get_server_details.rb   |   6 +-
 lib/fog/clodo/requests/compute/list_images.rb      |   4 -
 .../clodo/requests/compute/list_images_detail.rb   |   4 -
 lib/fog/clodo/requests/compute/list_servers.rb     |   4 -
 .../clodo/requests/compute/list_servers_detail.rb  |   4 -
 lib/fog/clodo/requests/compute/move_ip_address.rb  |   1 -
 lib/fog/clodo/requests/compute/server_action.rb    |   1 -
 lib/fog/cloudsigma/compute.rb                      |  12 +-
 lib/fog/cloudsigma/connection.rb                   |   5 -
 lib/fog/cloudsigma/error.rb                        |   6 -
 lib/fog/cloudsigma/mock_data.rb                    |   1 -
 lib/fog/cloudsigma/models/fwpolicies.rb            |   3 -
 lib/fog/cloudsigma/models/fwpolicy.rb              |   2 -
 lib/fog/cloudsigma/models/ip.rb                    |   2 -
 lib/fog/cloudsigma/models/ips.rb                   |   1 -
 lib/fog/cloudsigma/models/lib_volume.rb            |   4 +-
 lib/fog/cloudsigma/models/lib_volumes.rb           |   1 -
 lib/fog/cloudsigma/models/mountpoint.rb            |   2 +-
 lib/fog/cloudsigma/models/nic.rb                   |   4 -
 lib/fog/cloudsigma/models/price_record.rb          |   1 -
 lib/fog/cloudsigma/models/pricing.rb               |   1 -
 lib/fog/cloudsigma/models/profile.rb               |   2 -
 lib/fog/cloudsigma/models/rule.rb                  |   3 -
 lib/fog/cloudsigma/models/server.rb                |   7 +-
 lib/fog/cloudsigma/models/servers.rb               |   1 -
 lib/fog/cloudsigma/models/subscription.rb          |   1 -
 lib/fog/cloudsigma/models/vlan.rb                  |   2 +-
 lib/fog/cloudsigma/models/vlans.rb                 |   1 -
 lib/fog/cloudsigma/models/volume.rb                |   4 +-
 lib/fog/cloudsigma/models/volumes.rb               |   1 -
 .../requests/calculate_subscription_price.rb       |   2 -
 lib/fog/cloudsigma/requests/clone_libvolume.rb     |   1 -
 lib/fog/cloudsigma/requests/clone_server.rb        |   1 -
 lib/fog/cloudsigma/requests/clone_volume.rb        |   1 -
 lib/fog/cloudsigma/requests/close_vnc.rb           |   1 -
 lib/fog/cloudsigma/requests/create_server.rb       |   2 -
 lib/fog/cloudsigma/requests/create_subscription.rb |   2 -
 lib/fog/cloudsigma/requests/create_volume.rb       |   1 -
 lib/fog/cloudsigma/requests/delete_server.rb       |   1 -
 lib/fog/cloudsigma/requests/delete_volume.rb       |   1 -
 lib/fog/cloudsigma/requests/extend_subscription.rb |   2 -
 lib/fog/cloudsigma/requests/get_balance.rb         |   1 -
 lib/fog/cloudsigma/requests/get_current_usage.rb   |   2 -
 lib/fog/cloudsigma/requests/get_ip.rb              |   1 -
 lib/fog/cloudsigma/requests/get_lib_volume.rb      |   1 -
 lib/fog/cloudsigma/requests/get_pricing.rb         |   1 -
 lib/fog/cloudsigma/requests/get_profile.rb         |   1 -
 lib/fog/cloudsigma/requests/get_server.rb          |   1 -
 lib/fog/cloudsigma/requests/get_subscription.rb    |   1 -
 lib/fog/cloudsigma/requests/get_vlan.rb            |   1 -
 lib/fog/cloudsigma/requests/get_volume.rb          |   1 -
 lib/fog/cloudsigma/requests/list_fwpolicies.rb     |   1 -
 lib/fog/cloudsigma/requests/list_ips.rb            |   1 -
 lib/fog/cloudsigma/requests/list_lib_volumes.rb    |   1 -
 lib/fog/cloudsigma/requests/list_servers.rb        |   1 -
 lib/fog/cloudsigma/requests/list_subscriptions.rb  |   1 -
 lib/fog/cloudsigma/requests/list_vlans.rb          |   1 -
 lib/fog/cloudsigma/requests/list_volumes.rb        |   1 -
 lib/fog/cloudsigma/requests/open_vnc.rb            |   1 -
 lib/fog/cloudsigma/requests/start_server.rb        |   1 -
 lib/fog/cloudsigma/requests/stop_server.rb         |   2 -
 lib/fog/cloudsigma/requests/update_profile.rb      |   1 -
 lib/fog/cloudsigma/requests/update_server.rb       |   1 -
 lib/fog/cloudsigma/requests/update_vlan.rb         |   1 -
 lib/fog/cloudsigma/requests/update_volume.rb       |   1 -
 lib/fog/cloudstack/compute.rb                      | 413 +++++++++-
 lib/fog/cloudstack/core.rb                         |   4 +-
 lib/fog/cloudstack/models/compute/disk_offering.rb |   2 -
 .../cloudstack/models/compute/disk_offerings.rb    |   3 -
 lib/fog/cloudstack/models/compute/flavors.rb       |   3 -
 lib/fog/cloudstack/models/compute/images.rb        |   2 -
 lib/fog/cloudstack/models/compute/job.rb           |   1 -
 lib/fog/cloudstack/models/compute/jobs.rb          |   3 -
 .../models/compute/security_group_rule.rb          |   2 -
 .../models/compute/security_group_rules.rb         |   2 -
 .../cloudstack/models/compute/security_groups.rb   |   2 -
 lib/fog/cloudstack/models/compute/server.rb        |  28 +-
 lib/fog/cloudstack/models/compute/servers.rb       |   3 -
 lib/fog/cloudstack/models/compute/snapshots.rb     |   3 -
 lib/fog/cloudstack/models/compute/volume.rb        |   3 +-
 lib/fog/cloudstack/models/compute/volumes.rb       |   3 -
 lib/fog/cloudstack/models/compute/zone.rb          |   1 -
 lib/fog/cloudstack/models/compute/zones.rb         |   4 -
 .../requests/compute/acquire_ip_address.rb         |   3 -
 .../requests/compute/activate_project.rb           |  25 +
 .../requests/compute/add_account_to_project.rb     |  25 +
 .../requests/compute/add_baremetal_dhcp.rb         |  29 +
 .../requests/compute/add_baremetal_host.rb         |  30 +
 .../compute/add_baremetal_pxe_kick_start_server.rb |  30 +
 .../compute/add_baremetal_pxe_ping_server.rb       |  32 +
 .../requests/compute/add_big_switch_vns_device.rb  |  26 +
 .../compute/add_cisco_asa1000v_resource.rb         |  28 +
 .../requests/compute/add_cisco_vnmc_resource.rb    |  28 +
 lib/fog/cloudstack/requests/compute/add_cluster.rb |  29 +
 .../requests/compute/add_external_firewall.rb      |  28 +
 .../requests/compute/add_external_load_balancer.rb |  28 +
 .../requests/compute/add_f5_load_balancer.rb       |  29 +
 .../cloudstack/requests/compute/add_guest_os.rb    |  26 +
 .../requests/compute/add_guest_os_mapping.rb       |  27 +
 lib/fog/cloudstack/requests/compute/add_host.rb    |  30 +
 .../cloudstack/requests/compute/add_image_store.rb |  25 +
 .../cloudstack/requests/compute/add_ip_to_nic.rb   |  25 +
 .../requests/compute/add_ldap_configuration.rb     |  26 +
 .../compute/add_netscaler_load_balancer.rb         |  29 +
 .../requests/compute/add_network_device.rb         |  24 +
 .../compute/add_network_service_provider.rb        |  26 +
 .../requests/compute/add_nic_to_virtual_machine.rb |  26 +
 .../requests/compute/add_nicira_nvp_device.rb      |  29 +
 .../compute/add_open_daylight_controller.rb        |  28 +
 .../requests/compute/add_palo_alto_firewall.rb     |  29 +
 lib/fog/cloudstack/requests/compute/add_region.rb  |  27 +
 .../requests/compute/add_resource_detail.rb        |  27 +
 lib/fog/cloudstack/requests/compute/add_s3.rb      |  27 +
 .../requests/compute/add_secondary_storage.rb      |  25 +
 .../requests/compute/add_srx_firewall.rb           |  29 +
 .../requests/compute/add_stratosphere_ssp.rb       |  27 +
 lib/fog/cloudstack/requests/compute/add_swift.rb   |  25 +
 .../requests/compute/add_traffic_monitor.rb        |  26 +
 .../requests/compute/add_traffic_type.rb           |  26 +
 .../cloudstack/requests/compute/add_ucs_manager.rb |  28 +
 .../cloudstack/requests/compute/add_vmware_dc.rb   |  27 +
 .../cloudstack/requests/compute/add_vpn_user.rb    |  26 +
 .../cloudstack/requests/compute/archive_alerts.rb  |  24 +
 .../cloudstack/requests/compute/archive_events.rb  |  24 +
 .../compute/assign_cert_to_load_balancer.rb        |  26 +
 .../compute/assign_to_global_load_balancer_rule.rb |  26 +
 .../compute/assign_to_load_balancer_rule.rb        |  24 +-
 .../requests/compute/assign_virtual_machine.rb     |  25 +-
 .../requests/compute/associate_ip_address.rb       |  24 +
 .../cloudstack/requests/compute/associate_lun.rb   |  22 +
 .../compute/associate_ucs_profile_to_blade.rb      |  27 +
 lib/fog/cloudstack/requests/compute/attach_iso.rb  |  26 +
 .../cloudstack/requests/compute/attach_volume.rb   |  34 +-
 .../compute/authorize_security_group_egress.rb     |  24 +-
 .../compute/authorize_security_group_ingress.rb    |  27 +-
 .../requests/compute/cancel_host_maintenance.rb    |  25 +
 .../requests/compute/cancel_storage_maintenance.rb |  25 +
 .../requests/compute/change_service_for_router.rb  |  26 +
 .../compute/change_service_for_system_vm.rb        |  26 +
 .../compute/change_service_for_virtual_machine.rb  |  22 +-
 .../requests/compute/clean_vmreservations.rb       |  24 +
 .../requests/compute/configure_f5_load_balancer.rb |  25 +
 .../configure_internal_load_balancer_element.rb    |  26 +
 .../compute/configure_netscaler_load_balancer.rb   |  25 +
 .../requests/compute/configure_ovs_element.rb      |  26 +
 .../compute/configure_palo_alto_firewall.rb        |  25 +
 .../requests/compute/configure_srx_firewall.rb     |  25 +
 .../compute/configure_virtual_router_element.rb    |  26 +
 lib/fog/cloudstack/requests/compute/copy_iso.rb    |  26 +
 .../cloudstack/requests/compute/copy_template.rb   |  26 +
 .../cloudstack/requests/compute/create_account.rb  |  28 +-
 .../requests/compute/create_affinity_group.rb      |  26 +
 .../requests/compute/create_auto_scale_policy.rb   |  27 +
 .../requests/compute/create_auto_scale_vm_group.rb |  30 +
 .../compute/create_auto_scale_vm_profile.rb        |  27 +
 .../requests/compute/create_condition.rb           |  27 +
 .../cloudstack/requests/compute/create_counter.rb  |  27 +
 .../requests/compute/create_disk_offering.rb       |  31 +-
 .../cloudstack/requests/compute/create_domain.rb   |  23 +-
 .../compute/create_egress_firewall_rule.rb         |  26 +
 .../requests/compute/create_firewall_rule.rb       |  26 +
 .../compute/create_global_load_balancer_rule.rb    |  28 +
 .../requests/compute/create_instance_group.rb      |  25 +
 .../create_internal_load_balancer_element.rb       |  25 +
 .../requests/compute/create_ip_forwarding_rule.rb  |  27 +
 .../compute/create_lb_health_check_policy.rb       |  25 +
 .../compute/create_lb_stickiness_policy.rb         |  27 +
 .../requests/compute/create_load_balancer.rb       |  31 +
 .../requests/compute/create_load_balancer_rule.rb  |  24 +-
 .../requests/compute/create_lun_on_filer.rb        |  22 +
 .../cloudstack/requests/compute/create_network.rb  |  26 +-
 .../requests/compute/create_network_acl.rb         |  25 +
 .../requests/compute/create_network_acl_list.rb    |  26 +
 .../requests/compute/create_network_offering.rb    |  29 +
 .../requests/compute/create_physical_network.rb    |  26 +
 lib/fog/cloudstack/requests/compute/create_pod.rb  |  29 +
 lib/fog/cloudstack/requests/compute/create_pool.rb |  22 +
 .../compute/create_port_forwarding_rule.rb         |  27 +-
 .../requests/compute/create_portable_ip_range.rb   |  29 +
 .../requests/compute/create_private_gateway.rb     |  29 +
 .../cloudstack/requests/compute/create_project.rb  |  26 +
 .../requests/compute/create_remote_access_vpn.rb   |  25 +
 .../compute/create_secondary_staging_store.rb      |  25 +
 .../requests/compute/create_security_group.rb      |  25 +-
 .../requests/compute/create_service_instance.rb    |  30 +
 .../requests/compute/create_service_offering.rb    |  26 +
 .../cloudstack/requests/compute/create_snapshot.rb |  26 +-
 .../requests/compute/create_snapshot_policy.rb     |  27 +-
 .../requests/compute/create_ssh_key_pair.rb        |  23 +-
 .../requests/compute/create_static_route.rb        |  26 +
 .../compute/create_storage_network_ip_range.rb     |  28 +
 .../requests/compute/create_storage_pool.rb        |  27 +
 lib/fog/cloudstack/requests/compute/create_tags.rb |  27 +
 .../cloudstack/requests/compute/create_template.rb |  27 +
 lib/fog/cloudstack/requests/compute/create_user.rb |  28 +-
 .../compute/create_virtual_router_element.rb       |  25 +
 .../requests/compute/create_vlan_ip_range.rb       |  24 +
 .../requests/compute/create_vm_snapshot.rb         |  25 +
 .../cloudstack/requests/compute/create_volume.rb   |  28 +-
 .../requests/compute/create_volume_on_filer.rb     |  27 +
 lib/fog/cloudstack/requests/compute/create_vpc.rb  |  29 +
 .../requests/compute/create_vpcoffering.rb         |  27 +
 .../requests/compute/create_vpn_connection.rb      |  26 +
 .../compute/create_vpn_customer_gateway.rb         |  29 +
 .../requests/compute/create_vpn_gateway.rb         |  25 +
 lib/fog/cloudstack/requests/compute/create_zone.rb |  32 +-
 .../requests/compute/dedicate_cluster.rb           |  26 +
 .../requests/compute/dedicate_guest_vlan_range.rb  |  28 +
 .../cloudstack/requests/compute/dedicate_host.rb   |  26 +
 .../cloudstack/requests/compute/dedicate_pod.rb    |  26 +
 .../requests/compute/dedicate_public_ip_range.rb   |  27 +
 .../cloudstack/requests/compute/dedicate_zone.rb   |  26 +
 .../cloudstack/requests/compute/delete_account.rb  |  23 +-
 .../compute/delete_account_from_project.rb         |  26 +
 .../requests/compute/delete_affinity_group.rb      |  24 +
 .../cloudstack/requests/compute/delete_alerts.rb   |  24 +
 .../requests/compute/delete_auto_scale_policy.rb   |  25 +
 .../requests/compute/delete_auto_scale_vm_group.rb |  25 +
 .../compute/delete_auto_scale_vm_profile.rb        |  25 +
 .../compute/delete_big_switch_vns_device.rb        |  25 +
 .../compute/delete_cisco_asa1000v_resource.rb      |  25 +
 .../requests/compute/delete_cisco_nexus_vsm.rb     |  25 +
 .../requests/compute/delete_cisco_vnmc_resource.rb |  25 +
 .../cloudstack/requests/compute/delete_cluster.rb  |  25 +
 .../requests/compute/delete_condition.rb           |  25 +
 .../cloudstack/requests/compute/delete_counter.rb  |  25 +
 .../requests/compute/delete_disk_offering.rb       |  32 +-
 .../cloudstack/requests/compute/delete_domain.rb   |  23 +-
 .../compute/delete_egress_firewall_rule.rb         |  25 +
 .../cloudstack/requests/compute/delete_events.rb   |  24 +
 .../requests/compute/delete_external_firewall.rb   |  25 +
 .../compute/delete_external_load_balancer.rb       |  25 +
 .../requests/compute/delete_f5_load_balancer.rb    |  25 +
 .../requests/compute/delete_firewall_rule.rb       |  25 +
 .../compute/delete_global_load_balancer_rule.rb    |  25 +
 lib/fog/cloudstack/requests/compute/delete_host.rb |  25 +
 .../requests/compute/delete_image_store.rb         |  25 +
 .../requests/compute/delete_instance_group.rb      |  25 +
 .../requests/compute/delete_ip_forwarding_rule.rb  |  25 +
 lib/fog/cloudstack/requests/compute/delete_iso.rb  |  25 +
 .../compute/delete_lb_health_check_policy.rb       |  25 +
 .../compute/delete_lb_stickiness_policy.rb         |  25 +
 .../requests/compute/delete_ldap_configuration.rb  |  25 +
 .../requests/compute/delete_load_balancer.rb       |  25 +
 .../requests/compute/delete_load_balancer_rule.rb  |  23 +-
 .../compute/delete_netscaler_load_balancer.rb      |  25 +
 .../cloudstack/requests/compute/delete_network.rb  |  25 +
 .../requests/compute/delete_network_acl.rb         |  25 +
 .../requests/compute/delete_network_acl_list.rb    |  25 +
 .../requests/compute/delete_network_device.rb      |  25 +
 .../requests/compute/delete_network_offering.rb    |  25 +
 .../compute/delete_network_service_provider.rb     |  25 +
 .../requests/compute/delete_nicira_nvp_device.rb   |  25 +
 .../compute/delete_open_daylight_controller.rb     |  25 +
 .../requests/compute/delete_palo_alto_firewall.rb  |  25 +
 .../requests/compute/delete_physical_network.rb    |  25 +
 lib/fog/cloudstack/requests/compute/delete_pod.rb  |  25 +
 lib/fog/cloudstack/requests/compute/delete_pool.rb |  21 +
 .../compute/delete_port_forwarding_rule.rb         |  23 +-
 .../requests/compute/delete_portable_ip_range.rb   |  25 +
 .../requests/compute/delete_private_gateway.rb     |  25 +
 .../cloudstack/requests/compute/delete_project.rb  |  25 +
 .../requests/compute/delete_project_invitation.rb  |  25 +
 .../requests/compute/delete_remote_access_vpn.rb   |  25 +
 .../compute/delete_secondary_staging_store.rb      |  25 +
 .../requests/compute/delete_security_group.rb      |  28 +-
 .../requests/compute/delete_service_offering.rb    |  25 +
 .../cloudstack/requests/compute/delete_snapshot.rb |  33 +-
 .../requests/compute/delete_snapshot_policies.rb   |  22 +-
 .../requests/compute/delete_srx_firewall.rb        |  25 +
 .../requests/compute/delete_ssh_key_pair.rb        |  22 +-
 .../cloudstack/requests/compute/delete_ssl_cert.rb |  25 +
 .../requests/compute/delete_static_route.rb        |  25 +
 .../compute/delete_storage_network_ip_range.rb     |  25 +
 .../requests/compute/delete_storage_pool.rb        |  25 +
 lib/fog/cloudstack/requests/compute/delete_tags.rb |  26 +
 .../cloudstack/requests/compute/delete_template.rb |  23 +-
 .../requests/compute/delete_traffic_monitor.rb     |  25 +
 .../requests/compute/delete_traffic_type.rb        |  25 +
 .../requests/compute/delete_ucs_manager.rb         |  21 +
 lib/fog/cloudstack/requests/compute/delete_user.rb |  23 +-
 .../requests/compute/delete_vlan_ip_range.rb       |  25 +
 .../requests/compute/delete_vm_snapshot.rb         |  25 +
 .../cloudstack/requests/compute/delete_volume.rb   |  33 +-
 lib/fog/cloudstack/requests/compute/delete_vpc.rb  |  25 +
 .../requests/compute/delete_vpcoffering.rb         |  25 +
 .../requests/compute/delete_vpn_connection.rb      |  25 +
 .../compute/delete_vpn_customer_gateway.rb         |  25 +
 .../requests/compute/delete_vpn_gateway.rb         |  25 +
 lib/fog/cloudstack/requests/compute/delete_zone.rb |  25 +
 .../requests/compute/deploy_virtual_machine.rb     |  44 +-
 .../requests/compute/destroy_lun_on_filer.rb       |  21 +
 .../cloudstack/requests/compute/destroy_router.rb  |  25 +
 .../requests/compute/destroy_system_vm.rb          |  25 +
 .../requests/compute/destroy_virtual_machine.rb    |  35 +-
 .../requests/compute/destroy_volume_on_filer.rb    |  23 +
 lib/fog/cloudstack/requests/compute/detach_iso.rb  |  25 +
 .../cloudstack/requests/compute/detach_volume.rb   |  28 +-
 .../cloudstack/requests/compute/disable_account.rb |  23 +-
 .../compute/disable_auto_scale_vm_group.rb         |  25 +
 .../requests/compute/disable_cisco_nexus_vsm.rb    |  25 +
 .../requests/compute/disable_static_nat.rb         |  25 +
 .../cloudstack/requests/compute/disable_user.rb    |  23 +-
 .../requests/compute/disassociate_ip_address.rb    |  25 +
 .../compute/disassociate_ucs_profile_from_blade.rb |  21 +
 .../cloudstack/requests/compute/dissociate_lun.rb  |  22 +
 .../cloudstack/requests/compute/enable_account.rb  |  22 +-
 .../requests/compute/enable_auto_scale_vm_group.rb |  25 +
 .../requests/compute/enable_cisco_nexus_vsm.rb     |  25 +
 .../requests/compute/enable_static_nat.rb          |  26 +
 .../requests/compute/enable_storage_maintenance.rb |  25 +
 lib/fog/cloudstack/requests/compute/enable_user.rb |  23 +-
 .../requests/compute/expunge_virtual_machine.rb    |  25 +
 lib/fog/cloudstack/requests/compute/extract_iso.rb |  26 +
 .../requests/compute/extract_template.rb           |  65 ++
 .../cloudstack/requests/compute/extract_volume.rb  |  27 +
 .../requests/compute/find_hosts_for_migration.rb   |  25 +
 .../compute/find_storage_pools_for_migration.rb    |  25 +
 .../cloudstack/requests/compute/generate_alert.rb  |  27 +
 .../requests/compute/generate_usage_records.rb     |  30 +-
 .../cloudstack/requests/compute/get_api_limit.rb   |  24 +
 .../requests/compute/get_cloud_identifier.rb       |  25 +
 lib/fog/cloudstack/requests/compute/get_user.rb    |  25 +
 .../compute/get_virtual_machine_user_data.rb       |  25 +
 .../cloudstack/requests/compute/get_vm_password.rb |  22 +-
 .../requests/compute/import_ldap_users.rb          |  25 +
 ...ntiate_ucs_template_and_assocaciate_to_blade.rb |  23 +
 lib/fog/cloudstack/requests/compute/ldap_config.rb |  20 +
 .../requests/compute/ldap_create_account.rb        |  26 +
 lib/fog/cloudstack/requests/compute/ldap_remove.rb |  20 +
 .../cloudstack/requests/compute/list_accounts.rb   |  22 +-
 .../requests/compute/list_affinity_group_types.rb  |  24 +
 .../requests/compute/list_affinity_groups.rb       |  24 +
 lib/fog/cloudstack/requests/compute/list_alerts.rb |  20 +-
 lib/fog/cloudstack/requests/compute/list_apis.rb   |  24 +
 .../cloudstack/requests/compute/list_async_jobs.rb |  30 +-
 .../requests/compute/list_auto_scale_policies.rb   |  24 +
 .../requests/compute/list_auto_scale_vm_groups.rb  |  24 +
 .../compute/list_auto_scale_vm_profiles.rb         |  24 +
 .../requests/compute/list_baremetal_dhcp.rb        |  24 +
 .../requests/compute/list_baremetal_pxe_servers.rb |  24 +
 .../compute/list_big_switch_vns_devices.rb         |  24 +
 .../requests/compute/list_capabilities.rb          |  22 +-
 .../cloudstack/requests/compute/list_capacity.rb   |  22 +-
 .../compute/list_cisco_asa1000v_resources.rb       |  24 +
 .../requests/compute/list_cisco_nexus_vsms.rb      |  24 +
 .../requests/compute/list_cisco_vnmc_resources.rb  |  24 +
 .../cloudstack/requests/compute/list_clusters.rb   |  22 +-
 .../cloudstack/requests/compute/list_conditions.rb |  24 +
 .../requests/compute/list_configurations.rb        |  22 +-
 .../cloudstack/requests/compute/list_counters.rb   |  24 +
 .../requests/compute/list_dedicated_clusters.rb    |  24 +
 .../compute/list_dedicated_guest_vlan_ranges.rb    |  24 +
 .../requests/compute/list_dedicated_hosts.rb       |  24 +
 .../requests/compute/list_dedicated_pods.rb        |  24 +
 .../requests/compute/list_dedicated_zones.rb       |  24 +
 .../requests/compute/list_deployment_planners.rb   |  24 +
 .../requests/compute/list_disk_offerings.rb        |  23 +-
 .../requests/compute/list_domain_children.rb       |  22 +-
 .../cloudstack/requests/compute/list_domains.rb    |  22 +-
 .../requests/compute/list_egress_firewall_rules.rb |  24 +
 .../requests/compute/list_event_types.rb           |  24 +
 lib/fog/cloudstack/requests/compute/list_events.rb |  20 +-
 .../requests/compute/list_external_firewalls.rb    |  21 +-
 .../compute/list_external_load_balancers.rb        |  22 +-
 .../compute/list_f5_load_balancer_networks.rb      |  25 +
 .../requests/compute/list_f5_load_balancers.rb     |  24 +
 .../requests/compute/list_firewall_rules.rb        |  19 +-
 .../compute/list_global_load_balancer_rules.rb     |  24 +
 .../requests/compute/list_guest_os_mapping.rb      |  24 +
 lib/fog/cloudstack/requests/compute/list_hosts.rb  |  20 +-
 .../compute/list_hypervisor_capabilities.rb        |  24 +
 .../requests/compute/list_hypervisors.rb           |  22 +-
 .../requests/compute/list_image_stores.rb          |  24 +
 .../requests/compute/list_instance_groups.rb       |  22 +-
 .../list_internal_load_balancer_elements.rb        |  24 +
 .../compute/list_internal_load_balancer_vms.rb     |  24 +
 .../requests/compute/list_ip_forwarding_rules.rb   |  24 +
 .../requests/compute/list_iso_permissions.rb       |  25 +
 lib/fog/cloudstack/requests/compute/list_isos.rb   |  20 +-
 .../compute/list_lb_health_check_policies.rb       |  24 +
 .../compute/list_lb_stickiness_policies.rb         |  24 +
 .../requests/compute/list_ldap_configurations.rb   |  24 +
 .../cloudstack/requests/compute/list_ldap_users.rb |  24 +
 .../compute/list_load_balancer_rule_instances.rb   |  24 +-
 .../requests/compute/list_load_balancer_rules.rb   |  22 +-
 .../requests/compute/list_load_balancers.rb        |  24 +
 .../requests/compute/list_luns_on_filer.rb         |  21 +
 .../list_netscaler_load_balancer_networks.rb       |  25 +
 .../compute/list_netscaler_load_balancers.rb       |  24 +
 .../requests/compute/list_network_acl_lists.rb     |  24 +
 .../requests/compute/list_network_acls.rb          |  24 +
 .../requests/compute/list_network_device.rb        |  24 +
 .../compute/list_network_isolation_methods.rb      |  24 +
 .../requests/compute/list_network_offerings.rb     |  20 +-
 .../compute/list_network_service_providers.rb      |  24 +
 .../cloudstack/requests/compute/list_networks.rb   |  20 +-
 .../compute/list_nicira_nvp_device_networks.rb     |  25 +
 .../requests/compute/list_nicira_nvp_devices.rb    |  24 +
 lib/fog/cloudstack/requests/compute/list_nics.rb   |  25 +
 .../compute/list_open_daylight_controllers.rb      |  24 +
 .../requests/compute/list_os_categories.rb         |  20 +-
 .../cloudstack/requests/compute/list_os_types.rb   |  23 +-
 .../requests/compute/list_ovs_elements.rb          |  24 +
 .../compute/list_palo_alto_firewall_networks.rb    |  25 +
 .../requests/compute/list_palo_alto_firewalls.rb   |  24 +
 .../requests/compute/list_physical_networks.rb     |  24 +
 lib/fog/cloudstack/requests/compute/list_pods.rb   |  20 +-
 lib/fog/cloudstack/requests/compute/list_pools.rb  |  20 +
 .../requests/compute/list_port_forwarding_rules.rb |  22 +-
 .../requests/compute/list_portable_ip_ranges.rb    |  24 +
 .../requests/compute/list_private_gateways.rb      |  24 +
 .../requests/compute/list_project_accounts.rb      |  25 +
 .../requests/compute/list_project_invitations.rb   |  24 +
 .../cloudstack/requests/compute/list_projects.rb   |  24 +
 .../requests/compute/list_public_ip_addresses.rb   |  22 +-
 .../cloudstack/requests/compute/list_regions.rb    |  24 +
 .../requests/compute/list_remote_access_vpns.rb    |  24 +
 .../requests/compute/list_resource_details.rb      |  25 +
 .../requests/compute/list_resource_limits.rb       |  20 +-
 .../cloudstack/requests/compute/list_routers.rb    |  24 +
 lib/fog/cloudstack/requests/compute/list_s3s.rb    |  24 +
 .../compute/list_secondary_staging_stores.rb       |  24 +
 .../requests/compute/list_security_groups.rb       |  26 +-
 .../requests/compute/list_service_offerings.rb     |  31 +-
 .../requests/compute/list_snapshot_policies.rb     |  23 +-
 .../cloudstack/requests/compute/list_snapshots.rb  |  26 +-
 .../requests/compute/list_srx_firewall_networks.rb |  25 +
 .../requests/compute/list_srx_firewalls.rb         |  24 +
 .../requests/compute/list_ssh_key_pairs.rb         |  22 +-
 .../cloudstack/requests/compute/list_ssl_certs.rb  |  24 +
 .../requests/compute/list_static_routes.rb         |  24 +
 .../compute/list_storage_network_ip_range.rb       |  24 +
 .../requests/compute/list_storage_pools.rb         |  20 +-
 .../requests/compute/list_storage_providers.rb     |  25 +
 .../compute/list_supported_network_services.rb     |  24 +
 lib/fog/cloudstack/requests/compute/list_swifts.rb |  24 +
 .../cloudstack/requests/compute/list_system_vms.rb |  24 +
 lib/fog/cloudstack/requests/compute/list_tags.rb   |  24 +
 .../requests/compute/list_template_permissions.rb  |  25 +
 .../cloudstack/requests/compute/list_templates.rb  |  33 +-
 .../requests/compute/list_traffic_monitors.rb      |  25 +
 .../compute/list_traffic_type_implementors.rb      |  24 +
 .../requests/compute/list_traffic_types.rb         |  25 +
 .../cloudstack/requests/compute/list_ucs_blades.rb |  25 +
 .../requests/compute/list_ucs_managers.rb          |  24 +
 .../requests/compute/list_ucs_profiles.rb          |  25 +
 .../requests/compute/list_ucs_templates.rb         |  21 +
 .../requests/compute/list_usage_records.rb         |  30 +-
 .../requests/compute/list_usage_types.rb           |  24 +
 lib/fog/cloudstack/requests/compute/list_users.rb  |  22 +-
 .../requests/compute/list_virtual_machines.rb      |  30 +-
 .../compute/list_virtual_router_elements.rb        |  24 +
 .../requests/compute/list_vlan_ip_ranges.rb        |  24 +
 .../requests/compute/list_vm_snapshot.rb           |  24 +
 .../cloudstack/requests/compute/list_vmware_dcs.rb |  25 +
 .../cloudstack/requests/compute/list_volumes.rb    |  31 +-
 .../requests/compute/list_volumes_on_filer.rb      |  21 +
 .../requests/compute/list_vpc_offerings.rb         |  24 +
 lib/fog/cloudstack/requests/compute/list_vpcs.rb   |  24 +
 .../requests/compute/list_vpn_connections.rb       |  24 +
 .../requests/compute/list_vpn_customer_gateways.rb |  24 +
 .../requests/compute/list_vpn_gateways.rb          |  24 +
 .../cloudstack/requests/compute/list_vpn_users.rb  |  24 +
 lib/fog/cloudstack/requests/compute/list_zones.rb  |  33 +-
 .../cloudstack/requests/compute/lock_account.rb    |  26 +
 lib/fog/cloudstack/requests/compute/lock_user.rb   |  25 +
 .../compute/mark_default_zone_for_account.rb       |  27 +
 .../requests/compute/migrate_system_vm.rb          |  26 +
 .../requests/compute/migrate_virtual_machine.rb    |  23 +-
 .../compute/migrate_virtual_machine_with_volume.rb |  26 +
 .../cloudstack/requests/compute/migrate_volume.rb  |  26 +
 lib/fog/cloudstack/requests/compute/modify_pool.rb |  22 +
 .../compute/prepare_host_for_maintenance.rb        |  25 +
 .../requests/compute/prepare_template.rb           |  26 +
 .../requests/compute/query_async_job_result.rb     |  28 +-
 .../cloudstack/requests/compute/reboot_router.rb   |  25 +
 .../requests/compute/reboot_system_vm.rb           |  25 +
 .../requests/compute/reboot_virtual_machine.rb     |  26 +-
 .../cloudstack/requests/compute/reconnect_host.rb  |  25 +
 .../requests/compute/recover_virtual_machine.rb    |  21 +-
 .../requests/compute/refresh_ucs_blades.rb         |  21 +
 .../cloudstack/requests/compute/register_iso.rb    |  28 +
 .../requests/compute/register_ssh_key_pair.rb      |  22 +-
 .../requests/compute/register_template.rb          |  40 +-
 .../requests/compute/register_user_keys.rb         |  23 +-
 .../requests/compute/release_dedicated_cluster.rb  |  25 +
 .../compute/release_dedicated_guest_vlan_range.rb  |  25 +
 .../requests/compute/release_dedicated_host.rb     |  25 +
 .../requests/compute/release_dedicated_pod.rb      |  25 +
 .../requests/compute/release_dedicated_zone.rb     |  25 +
 .../requests/compute/release_host_reservation.rb   |  25 +
 .../requests/compute/release_public_ip_range.rb    |  25 +
 .../compute/remove_cert_from_load_balancer.rb      |  25 +
 .../remove_from_global_load_balancer_rule.rb       |  26 +
 .../compute/remove_from_load_balancer_rule.rb      |  24 +-
 .../cloudstack/requests/compute/remove_guest_os.rb |  25 +
 .../requests/compute/remove_guest_os_mapping.rb    |  25 +
 .../requests/compute/remove_ip_from_nic.rb         |  25 +
 .../compute/remove_nic_from_virtual_machine.rb     |  26 +
 .../cloudstack/requests/compute/remove_region.rb   |  25 +
 .../requests/compute/remove_resource_detail.rb     |  26 +
 .../requests/compute/remove_vmware_dc.rb           |  25 +
 .../cloudstack/requests/compute/remove_vpn_user.rb |  25 +
 .../requests/compute/replace_network_acl_list.rb   |  25 +
 .../cloudstack/requests/compute/reset_api_limit.rb |  24 +
 .../compute/reset_password_for_virtual_machine.rb  |  24 +-
 .../compute/reset_ssh_key_for_virtual_machine.rb   |  26 +
 .../requests/compute/reset_vpn_connection.rb       |  25 +
 .../cloudstack/requests/compute/resize_volume.rb   |  25 +
 .../cloudstack/requests/compute/restart_network.rb |  25 +
 lib/fog/cloudstack/requests/compute/restart_vpc.rb |  25 +
 .../requests/compute/restore_virtual_machine.rb    |  25 +
 .../cloudstack/requests/compute/revert_snapshot.rb |  25 +
 .../requests/compute/revert_to_vm_snapshot.rb      |  25 +
 .../compute/revoke_security_group_egress.rb        |  24 +-
 .../compute/revoke_security_group_ingress.rb       |  27 +-
 .../cloudstack/requests/compute/scale_system_vm.rb |  26 +
 .../requests/compute/scale_virtual_machine.rb      |  26 +
 .../compute/start_internal_load_balancer_vm.rb     |  25 +
 .../cloudstack/requests/compute/start_router.rb    |  25 +
 .../cloudstack/requests/compute/start_system_vm.rb |  25 +
 .../requests/compute/start_virtual_machine.rb      |  23 +-
 .../compute/stop_internal_load_balancer_vm.rb      |  25 +
 lib/fog/cloudstack/requests/compute/stop_router.rb |  25 +
 .../cloudstack/requests/compute/stop_system_vm.rb  |  25 +
 .../requests/compute/stop_virtual_machine.rb       |  23 +-
 .../cloudstack/requests/compute/suspend_project.rb |  25 +
 .../cloudstack/requests/compute/update_account.rb  |  23 +-
 .../requests/compute/update_auto_scale_policy.rb   |  25 +
 .../requests/compute/update_auto_scale_vm_group.rb |  25 +
 .../compute/update_auto_scale_vm_profile.rb        |  25 +
 .../compute/update_cloud_to_use_object_store.rb    |  25 +
 .../cloudstack/requests/compute/update_cluster.rb  |  25 +
 .../requests/compute/update_configuration.rb       |  25 +
 .../update_default_nic_for_virtual_machine.rb      |  26 +
 .../requests/compute/update_disk_offering.rb       |  25 +
 .../cloudstack/requests/compute/update_domain.rb   |  23 +-
 .../compute/update_egress_firewall_rule.rb         |  25 +
 .../requests/compute/update_firewall_rule.rb       |  25 +
 .../compute/update_global_load_balancer_rule.rb    |  25 +
 .../cloudstack/requests/compute/update_guest_os.rb |  26 +
 .../requests/compute/update_guest_os_mapping.rb    |  26 +
 lib/fog/cloudstack/requests/compute/update_host.rb |  25 +
 .../requests/compute/update_host_password.rb       |  26 +
 .../compute/update_hypervisor_capabilities.rb      |  24 +
 .../requests/compute/update_instance_group.rb      |  25 +
 .../requests/compute/update_ip_address.rb          |  25 +
 lib/fog/cloudstack/requests/compute/update_iso.rb  |  25 +
 .../requests/compute/update_iso_permissions.rb     |  25 +
 .../compute/update_lb_health_check_policy.rb       |  25 +
 .../compute/update_lb_stickiness_policy.rb         |  25 +
 .../requests/compute/update_load_balancer.rb       |  25 +
 .../requests/compute/update_load_balancer_rule.rb  |  25 +
 .../cloudstack/requests/compute/update_network.rb  |  25 +
 .../requests/compute/update_network_acl_item.rb    |  25 +
 .../requests/compute/update_network_acl_list.rb    |  25 +
 .../requests/compute/update_network_offering.rb    |  24 +
 .../compute/update_network_service_provider.rb     |  25 +
 .../requests/compute/update_physical_network.rb    |  25 +
 lib/fog/cloudstack/requests/compute/update_pod.rb  |  25 +
 .../compute/update_port_forwarding_rule.rb         |  25 +
 .../cloudstack/requests/compute/update_project.rb  |  25 +
 .../requests/compute/update_project_invitation.rb  |  25 +
 .../cloudstack/requests/compute/update_region.rb   |  25 +
 .../requests/compute/update_remote_access_vpn.rb   |  25 +
 .../requests/compute/update_resource_count.rb      |  23 +-
 .../requests/compute/update_resource_limit.rb      |  25 +
 .../requests/compute/update_service_offering.rb    |  25 +
 .../compute/update_storage_network_ip_range.rb     |  25 +
 .../requests/compute/update_storage_pool.rb        |  25 +
 .../cloudstack/requests/compute/update_template.rb |  25 +
 .../compute/update_template_permissions.rb         |  25 +
 .../requests/compute/update_traffic_type.rb        |  25 +
 lib/fog/cloudstack/requests/compute/update_user.rb |  23 +-
 .../requests/compute/update_virtual_machine.rb     |  23 +-
 .../requests/compute/update_vm_affinity_group.rb   |  25 +
 .../cloudstack/requests/compute/update_volume.rb   |  24 +
 lib/fog/cloudstack/requests/compute/update_vpc.rb  |  25 +
 .../requests/compute/update_vpcoffering.rb         |  25 +
 .../requests/compute/update_vpn_connection.rb      |  25 +
 .../compute/update_vpn_customer_gateway.rb         |  30 +
 .../requests/compute/update_vpn_gateway.rb         |  25 +
 lib/fog/cloudstack/requests/compute/update_zone.rb |  25 +
 .../requests/compute/upgrade_router_template.rb    |  24 +
 .../requests/compute/upload_custom_certificate.rb  |  26 +
 .../cloudstack/requests/compute/upload_ssl_cert.rb |  26 +
 .../cloudstack/requests/compute/upload_volume.rb   |  28 +
 lib/fog/core/deprecated/connection.rb              |   1 -
 lib/fog/core/deprecated_connection_accessors.rb    |  41 -
 lib/fog/core/parser.rb                             |   6 +-
 lib/fog/digitalocean/compute.rb                    |   7 +-
 lib/fog/digitalocean/core.rb                       |   1 -
 lib/fog/digitalocean/models/compute/flavor.rb      |   2 -
 lib/fog/digitalocean/models/compute/flavors.rb     |   3 -
 lib/fog/digitalocean/models/compute/image.rb       |   2 -
 lib/fog/digitalocean/models/compute/images.rb      |   3 -
 lib/fog/digitalocean/models/compute/region.rb      |   2 -
 lib/fog/digitalocean/models/compute/regions.rb     |   3 -
 lib/fog/digitalocean/models/compute/server.rb      |   4 -
 lib/fog/digitalocean/models/compute/servers.rb     |   6 +-
 lib/fog/digitalocean/models/compute/ssh_key.rb     |   2 -
 lib/fog/digitalocean/models/compute/ssh_keys.rb    |   1 -
 .../digitalocean/requests/compute/create_server.rb |  10 +-
 .../requests/compute/create_ssh_key.rb             |   4 -
 .../requests/compute/destroy_server.rb             |   4 -
 .../requests/compute/destroy_ssh_key.rb            |   6 +-
 .../requests/compute/get_server_details.rb         |   4 -
 .../digitalocean/requests/compute/get_ssh_key.rb   |   8 +-
 .../digitalocean/requests/compute/list_flavors.rb  |   4 -
 .../digitalocean/requests/compute/list_images.rb   |   4 -
 .../digitalocean/requests/compute/list_regions.rb  |  12 +-
 .../digitalocean/requests/compute/list_servers.rb  |   4 -
 .../digitalocean/requests/compute/list_ssh_keys.rb |   4 -
 .../requests/compute/power_cycle_server.rb         |   4 -
 .../requests/compute/power_off_server.rb           |   4 -
 .../requests/compute/power_on_server.rb            |   4 -
 .../digitalocean/requests/compute/reboot_server.rb |   4 -
 .../requests/compute/shutdown_server.rb            |   4 -
 lib/fog/dnsimple/core.rb                           |   2 -
 lib/fog/dnsimple/dns.rb                            |   4 -
 lib/fog/dnsimple/models/dns/record.rb              |   3 -
 lib/fog/dnsimple/models/dns/records.rb             |   4 -
 lib/fog/dnsimple/models/dns/zone.rb                |   4 -
 lib/fog/dnsimple/models/dns/zones.rb               |   4 -
 lib/fog/dnsimple/requests/dns/create_domain.rb     |   5 -
 lib/fog/dnsimple/requests/dns/create_record.rb     |   5 -
 lib/fog/dnsimple/requests/dns/delete_domain.rb     |   4 -
 lib/fog/dnsimple/requests/dns/delete_record.rb     |   5 -
 lib/fog/dnsimple/requests/dns/get_domain.rb        |   6 +-
 lib/fog/dnsimple/requests/dns/get_record.rb        |   7 +-
 lib/fog/dnsimple/requests/dns/list_domains.rb      |   5 -
 lib/fog/dnsimple/requests/dns/list_records.rb      |   5 -
 lib/fog/dnsimple/requests/dns/update_record.rb     |   6 +-
 lib/fog/dnsmadeeasy/core.rb                        |   2 -
 lib/fog/dnsmadeeasy/dns.rb                         |   3 -
 lib/fog/dnsmadeeasy/models/dns/record.rb           |   3 -
 lib/fog/dnsmadeeasy/models/dns/records.rb          |   4 -
 lib/fog/dnsmadeeasy/models/dns/zone.rb             |   4 -
 lib/fog/dnsmadeeasy/models/dns/zones.rb            |   6 +-
 lib/fog/dnsmadeeasy/requests/dns/create_domain.rb  |   2 -
 lib/fog/dnsmadeeasy/requests/dns/create_record.rb  |   3 -
 .../dnsmadeeasy/requests/dns/create_secondary.rb   |   3 -
 .../dnsmadeeasy/requests/dns/delete_all_domains.rb |   2 -
 .../requests/dns/delete_all_secondary.rb           |   2 -
 lib/fog/dnsmadeeasy/requests/dns/delete_domain.rb  |   2 -
 lib/fog/dnsmadeeasy/requests/dns/delete_record.rb  |   2 -
 .../dnsmadeeasy/requests/dns/delete_secondary.rb   |   2 -
 lib/fog/dnsmadeeasy/requests/dns/get_domain.rb     |   2 -
 lib/fog/dnsmadeeasy/requests/dns/get_record.rb     |   2 -
 lib/fog/dnsmadeeasy/requests/dns/get_secondary.rb  |   2 -
 lib/fog/dnsmadeeasy/requests/dns/list_domains.rb   |   2 -
 lib/fog/dnsmadeeasy/requests/dns/list_records.rb   |   2 -
 lib/fog/dnsmadeeasy/requests/dns/list_secondary.rb |   2 -
 lib/fog/dnsmadeeasy/requests/dns/update_record.rb  |   2 -
 .../dnsmadeeasy/requests/dns/update_secondary.rb   |   3 -
 lib/fog/dreamhost/core.rb                          |   2 -
 lib/fog/dreamhost/dns.rb                           |   4 -
 lib/fog/dreamhost/models/dns/record.rb             |   4 -
 lib/fog/dreamhost/models/dns/records.rb            |   6 +-
 lib/fog/dreamhost/models/dns/zone.rb               |   4 -
 lib/fog/dreamhost/models/dns/zones.rb              |   4 -
 lib/fog/dreamhost/requests/dns/create_record.rb    |   5 -
 lib/fog/dreamhost/requests/dns/delete_record.rb    |   5 -
 lib/fog/dreamhost/requests/dns/list_records.rb     |   5 -
 lib/fog/dynect/dns.rb                              |  41 +-
 lib/fog/dynect/models/dns/record.rb                |  13 +-
 lib/fog/dynect/models/dns/records.rb               |  48 +-
 lib/fog/dynect/models/dns/zone.rb                  |   4 -
 lib/fog/dynect/models/dns/zones.rb                 |   4 -
 lib/fog/dynect/requests/dns/delete_record.rb       |   1 -
 lib/fog/dynect/requests/dns/delete_zone.rb         |   1 -
 lib/fog/dynect/requests/dns/get_all_records.rb     |   8 +-
 lib/fog/dynect/requests/dns/get_node_list.rb       |   5 +-
 lib/fog/dynect/requests/dns/get_record.rb          |   3 +-
 lib/fog/dynect/requests/dns/get_zone.rb            |   3 +-
 lib/fog/dynect/requests/dns/post_record.rb         |   1 -
 lib/fog/dynect/requests/dns/post_session.rb        |   1 -
 lib/fog/dynect/requests/dns/post_zone.rb           |   1 -
 lib/fog/dynect/requests/dns/put_record.rb          |   1 -
 lib/fog/dynect/requests/dns/put_zone.rb            |   1 -
 lib/fog/ecloud/collection.rb                       |   2 -
 lib/fog/ecloud/compute.rb                          |  14 +-
 lib/fog/ecloud/generate_collection.rb              |   3 -
 lib/fog/ecloud/mock_data_classes.rb                |  18 +-
 lib/fog/ecloud/model.rb                            |   2 -
 .../ecloud/models/compute/admin_organizations.rb   |   1 -
 lib/fog/ecloud/models/compute/api_key.rb           |   1 -
 lib/fog/ecloud/models/compute/api_keys.rb          |   1 -
 lib/fog/ecloud/models/compute/associations.rb      |   1 -
 .../ecloud/models/compute/authentication_level.rb  |   1 -
 .../ecloud/models/compute/authentication_levels.rb |   1 -
 .../models/compute/backup_internet_services.rb     |   1 -
 lib/fog/ecloud/models/compute/catalog.rb           |   1 -
 .../ecloud/models/compute/catalog_configuration.rb |   1 -
 .../models/compute/catalog_configurations.rb       |   1 -
 lib/fog/ecloud/models/compute/compute_pool.rb      |   1 -
 lib/fog/ecloud/models/compute/compute_pools.rb     |   1 -
 lib/fog/ecloud/models/compute/cpu_usage_detail.rb  |   1 -
 .../models/compute/cpu_usage_detail_summary.rb     |   1 -
 lib/fog/ecloud/models/compute/detached_disks.rb    |   1 -
 lib/fog/ecloud/models/compute/environment.rb       |   1 -
 lib/fog/ecloud/models/compute/environments.rb      |   3 -
 lib/fog/ecloud/models/compute/firewall_acls.rb     |   1 -
 lib/fog/ecloud/models/compute/group.rb             |   2 +-
 lib/fog/ecloud/models/compute/groups.rb            |   1 -
 lib/fog/ecloud/models/compute/guest_processes.rb   |   1 -
 .../models/compute/hardware_configurations.rb      |   1 -
 lib/fog/ecloud/models/compute/internet_service.rb  |   2 +-
 lib/fog/ecloud/models/compute/internet_services.rb |   1 -
 lib/fog/ecloud/models/compute/ip_address.rb        |   2 +-
 lib/fog/ecloud/models/compute/ip_addresses.rb      |   1 -
 lib/fog/ecloud/models/compute/layouts.rb           |   1 -
 lib/fog/ecloud/models/compute/location.rb          |   1 -
 lib/fog/ecloud/models/compute/locations.rb         |   3 -
 lib/fog/ecloud/models/compute/login_banners.rb     |   1 -
 .../models/compute/memory_usage_detail_summary.rb  |   1 -
 lib/fog/ecloud/models/compute/monitors.rb          |   1 -
 lib/fog/ecloud/models/compute/network.rb           |   2 +-
 lib/fog/ecloud/models/compute/networks.rb          |   1 -
 lib/fog/ecloud/models/compute/node.rb              |   2 +-
 lib/fog/ecloud/models/compute/nodes.rb             |   1 -
 lib/fog/ecloud/models/compute/operating_system.rb  |   1 -
 .../models/compute/operating_system_families.rb    |   1 -
 lib/fog/ecloud/models/compute/operating_systems.rb |   1 -
 lib/fog/ecloud/models/compute/organization.rb      |   3 +-
 lib/fog/ecloud/models/compute/organizations.rb     |   1 -
 .../models/compute/password_complexity_rules.rb    |   1 -
 lib/fog/ecloud/models/compute/physical_device.rb   |   1 -
 lib/fog/ecloud/models/compute/physical_devices.rb  |   1 -
 lib/fog/ecloud/models/compute/public_ip.rb         |   2 +-
 lib/fog/ecloud/models/compute/public_ips.rb        |   1 -
 lib/fog/ecloud/models/compute/rnats.rb             |   1 -
 lib/fog/ecloud/models/compute/role.rb              |   1 -
 lib/fog/ecloud/models/compute/roles.rb             |   1 -
 lib/fog/ecloud/models/compute/row.rb               |   2 +-
 lib/fog/ecloud/models/compute/rows.rb              |   1 -
 lib/fog/ecloud/models/compute/server.rb            |  14 +-
 .../models/compute/server_configuration_option.rb  |   1 -
 .../models/compute/server_configuration_options.rb |   1 -
 lib/fog/ecloud/models/compute/servers.rb           |   5 +-
 lib/fog/ecloud/models/compute/ssh_key.rb           |   1 -
 lib/fog/ecloud/models/compute/ssh_keys.rb          |   1 -
 .../models/compute/storage_usage_detail_summary.rb |   1 -
 lib/fog/ecloud/models/compute/support_ticket.rb    |   1 -
 lib/fog/ecloud/models/compute/support_tickets.rb   |   1 -
 lib/fog/ecloud/models/compute/tags.rb              |   1 -
 lib/fog/ecloud/models/compute/tasks.rb             |   2 -
 lib/fog/ecloud/models/compute/templates.rb         |   1 -
 .../models/compute/trusted_network_groups.rb       |   1 -
 lib/fog/ecloud/models/compute/users.rb             |   1 -
 .../models/compute/virtual_machine_assigned_ips.rb |   1 -
 .../compute/admin_edit_authentication_levels.rb    |   1 -
 .../requests/compute/admin_edit_login_banner.rb    |   2 -
 .../admin_edit_password_complexity_rules.rb        |   2 -
 .../compute/backup_internet_service_delete.rb      |   2 -
 .../ecloud/requests/compute/compute_pool_edit.rb   |   4 +-
 .../requests/compute/firewall_acls_create.rb       |   1 -
 .../requests/compute/firewall_acls_delete.rb       |   2 -
 .../requests/compute/get_admin_organization.rb     |   2 -
 lib/fog/ecloud/requests/compute/get_api_key.rb     |   2 -
 lib/fog/ecloud/requests/compute/get_api_keys.rb    |   2 -
 lib/fog/ecloud/requests/compute/get_association.rb |   2 -
 .../ecloud/requests/compute/get_associations.rb    |   2 -
 .../requests/compute/get_authentication_level.rb   |   2 -
 .../requests/compute/get_authentication_levels.rb  |   2 -
 .../compute/get_backup_internet_service.rb         |   2 -
 .../compute/get_backup_internet_services.rb        |   2 -
 lib/fog/ecloud/requests/compute/get_catalog.rb     |   2 -
 .../requests/compute/get_catalog_configuration.rb  |   2 -
 .../requests/compute/get_catalog_configurations.rb |   2 -
 .../ecloud/requests/compute/get_catalog_item.rb    |   2 -
 .../ecloud/requests/compute/get_compute_pool.rb    |   1 -
 .../ecloud/requests/compute/get_compute_pools.rb   |   1 -
 .../requests/compute/get_cpu_usage_detail.rb       |   2 -
 .../compute/get_cpu_usage_detail_summary.rb        |   2 -
 .../ecloud/requests/compute/get_detached_disks.rb  |   2 -
 lib/fog/ecloud/requests/compute/get_environment.rb |   1 -
 .../ecloud/requests/compute/get_firewall_acl.rb    |   2 -
 .../ecloud/requests/compute/get_firewall_acls.rb   |   2 -
 .../ecloud/requests/compute/get_guest_process.rb   |   2 -
 .../ecloud/requests/compute/get_guest_processes.rb |   2 -
 .../requests/compute/get_hardware_configuration.rb |   1 -
 .../compute/get_hardware_configurations.rb         |   1 -
 .../requests/compute/get_internet_service.rb       |   2 -
 .../requests/compute/get_internet_services.rb      |   1 -
 lib/fog/ecloud/requests/compute/get_ip_address.rb  |   4 +-
 lib/fog/ecloud/requests/compute/get_location.rb    |   3 -
 lib/fog/ecloud/requests/compute/get_locations.rb   |   3 -
 .../ecloud/requests/compute/get_login_banner.rb    |   2 -
 .../ecloud/requests/compute/get_login_banners.rb   |   2 -
 .../requests/compute/get_memory_usage_detail.rb    |   2 -
 .../compute/get_memory_usage_detail_summary.rb     |   2 -
 lib/fog/ecloud/requests/compute/get_monitor.rb     |   2 -
 lib/fog/ecloud/requests/compute/get_monitors.rb    |   2 -
 lib/fog/ecloud/requests/compute/get_network.rb     |   1 -
 .../ecloud/requests/compute/get_network_summary.rb |   2 -
 lib/fog/ecloud/requests/compute/get_networks.rb    |   1 -
 lib/fog/ecloud/requests/compute/get_node.rb        |   1 -
 lib/fog/ecloud/requests/compute/get_nodes.rb       |   2 -
 .../requests/compute/get_operating_system.rb       |   1 -
 .../compute/get_operating_system_families.rb       |   1 -
 .../ecloud/requests/compute/get_organization.rb    |   1 -
 .../compute/get_password_complexity_rule.rb        |   2 -
 .../compute/get_password_complexity_rules.rb       |   2 -
 .../ecloud/requests/compute/get_physical_device.rb |   2 -
 .../requests/compute/get_physical_devices.rb       |   2 -
 lib/fog/ecloud/requests/compute/get_process.rb     |   2 -
 lib/fog/ecloud/requests/compute/get_processes.rb   |   2 -
 lib/fog/ecloud/requests/compute/get_public_ips.rb  |   2 -
 lib/fog/ecloud/requests/compute/get_rnat.rb        |   2 -
 lib/fog/ecloud/requests/compute/get_rnats.rb       |   2 -
 lib/fog/ecloud/requests/compute/get_role.rb        |   2 -
 lib/fog/ecloud/requests/compute/get_roles.rb       |   2 -
 lib/fog/ecloud/requests/compute/get_server.rb      |   1 -
 .../compute/get_server_configuration_option.rb     |   2 -
 .../compute/get_server_configuration_options.rb    |   2 -
 lib/fog/ecloud/requests/compute/get_ssh_key.rb     |   1 -
 lib/fog/ecloud/requests/compute/get_ssh_keys.rb    |   1 -
 .../requests/compute/get_storage_usage_detail.rb   |   2 -
 .../compute/get_storage_usage_detail_summary.rb    |   2 -
 .../ecloud/requests/compute/get_support_ticket.rb  |   2 -
 .../ecloud/requests/compute/get_support_tickets.rb |   2 -
 lib/fog/ecloud/requests/compute/get_tag.rb         |   2 -
 lib/fog/ecloud/requests/compute/get_tags.rb        |   2 -
 lib/fog/ecloud/requests/compute/get_tasks.rb       |   2 -
 lib/fog/ecloud/requests/compute/get_template.rb    |   1 -
 lib/fog/ecloud/requests/compute/get_templates.rb   |   1 -
 .../requests/compute/get_trusted_network_group.rb  |   2 -
 .../requests/compute/get_trusted_network_groups.rb |   2 -
 lib/fog/ecloud/requests/compute/get_user.rb        |   2 -
 lib/fog/ecloud/requests/compute/get_users.rb       |   2 -
 .../compute/get_virtual_machine_assigned_ips.rb    |   2 -
 lib/fog/ecloud/requests/compute/groups_movedown.rb |   2 -
 lib/fog/ecloud/requests/compute/groups_moveup.rb   |   2 -
 .../requests/compute/internet_service_create.rb    |   2 +-
 .../requests/compute/internet_service_delete.rb    |   1 -
 .../requests/compute/internet_service_edit.rb      |   4 +-
 .../requests/compute/monitors_create_default.rb    |   2 -
 .../requests/compute/monitors_create_loopback.rb   |   2 -
 .../ecloud/requests/compute/monitors_disable.rb    |   2 -
 lib/fog/ecloud/requests/compute/monitors_enable.rb |   2 -
 .../ecloud/requests/compute/node_service_create.rb |   4 +-
 .../ecloud/requests/compute/node_service_delete.rb |   2 -
 .../ecloud/requests/compute/node_service_edit.rb   |   4 +-
 lib/fog/ecloud/requests/compute/power_off.rb       |   2 -
 lib/fog/ecloud/requests/compute/power_on.rb        |   2 -
 lib/fog/ecloud/requests/compute/power_reset.rb     |   2 -
 lib/fog/ecloud/requests/compute/power_shutdown.rb  |   2 -
 .../ecloud/requests/compute/public_ip_activate.rb  |   2 -
 lib/fog/ecloud/requests/compute/rows_movedown.rb   |   2 -
 lib/fog/ecloud/requests/compute/rows_moveup.rb     |   2 -
 .../compute/trusted_network_groups_create.rb       |   2 -
 .../compute/trusted_network_groups_delete.rb       |   2 -
 .../compute/trusted_network_groups_edit.rb         |   2 -
 .../compute/virtual_machine_attach_disk.rb         |   1 -
 .../requests/compute/virtual_machine_copy.rb       |   4 +-
 .../compute/virtual_machine_copy_identical.rb      |   4 +-
 .../virtual_machine_create_from_template.rb        |   5 +-
 .../compute/virtual_machine_detach_disk.rb         |   1 -
 .../requests/compute/virtual_machine_edit.rb       |   4 +-
 .../compute/virtual_machine_edit_assigned_ips.rb   |   4 +-
 .../virtual_machine_edit_hardware_configuration.rb |   2 -
 .../requests/compute/virtual_machine_import.rb     |   4 +-
 .../compute/virtual_machine_upload_file.rb         |   5 +-
 lib/fog/fogdocker.rb                               |   2 +-
 lib/fog/fogdocker/compute.rb                       |   5 +-
 lib/fog/fogdocker/core.rb                          |   4 +-
 lib/fog/fogdocker/models/compute/image.rb          |   4 -
 lib/fog/fogdocker/models/compute/images.rb         |   3 -
 lib/fog/fogdocker/models/compute/server.rb         |   3 -
 lib/fog/fogdocker/models/compute/servers.rb        |   3 -
 lib/fog/fogdocker/requests/compute/api_version.rb  |   2 +-
 .../fogdocker/requests/compute/container_action.rb |  12 +-
 .../fogdocker/requests/compute/container_all.rb    |   1 -
 .../fogdocker/requests/compute/container_commit.rb |   3 +-
 .../fogdocker/requests/compute/container_create.rb |   1 -
 .../fogdocker/requests/compute/container_delete.rb |   7 +-
 .../fogdocker/requests/compute/container_get.rb    |   1 -
 lib/fog/fogdocker/requests/compute/image_create.rb |   2 -
 lib/fog/fogdocker/requests/compute/image_delete.rb |   7 +-
 lib/fog/fogdocker/requests/compute/image_get.rb    |   3 +-
 lib/fog/glesys/compute.rb                          |  10 +-
 lib/fog/glesys/core.rb                             |   2 -
 lib/fog/glesys/models/compute/ip.rb                |   3 -
 lib/fog/glesys/models/compute/ips.rb               |   7 +-
 lib/fog/glesys/models/compute/server.rb            |   5 +-
 lib/fog/glesys/models/compute/servers.rb           |   4 -
 lib/fog/glesys/models/compute/templates.rb         |   4 +-
 lib/fog/glesys/requests/compute/create.rb          |   4 -
 lib/fog/glesys/requests/compute/destroy.rb         |   3 -
 lib/fog/glesys/requests/compute/ip_add.rb          |   3 -
 lib/fog/glesys/requests/compute/ip_details.rb      |   3 -
 lib/fog/glesys/requests/compute/ip_list_free.rb    |   3 -
 lib/fog/glesys/requests/compute/ip_list_own.rb     |   3 -
 lib/fog/glesys/requests/compute/ip_release.rb      |   3 -
 lib/fog/glesys/requests/compute/ip_remove.rb       |   3 -
 lib/fog/glesys/requests/compute/ip_take.rb         |   3 -
 lib/fog/glesys/requests/compute/list_servers.rb    |   4 -
 lib/fog/glesys/requests/compute/reboot.rb          |   3 -
 lib/fog/glesys/requests/compute/server_details.rb  |   3 -
 lib/fog/glesys/requests/compute/server_status.rb   |   3 -
 lib/fog/glesys/requests/compute/start.rb           |   3 -
 lib/fog/glesys/requests/compute/stop.rb            |   3 -
 lib/fog/glesys/requests/compute/template_list.rb   |   3 -
 lib/fog/go_grid/compute.rb                         |   5 -
 lib/fog/go_grid/core.rb                            |   2 -
 lib/fog/go_grid/models/compute/image.rb            |   5 -
 lib/fog/go_grid/models/compute/images.rb           |   4 -
 lib/fog/go_grid/models/compute/password.rb         |   5 -
 lib/fog/go_grid/models/compute/passwords.rb        |   4 -
 lib/fog/go_grid/models/compute/server.rb           |   4 -
 lib/fog/go_grid/models/compute/servers.rb          |   4 -
 .../go_grid/requests/compute/common_lookup_list.rb |   2 -
 lib/fog/go_grid/requests/compute/grid_image_get.rb |   4 -
 .../go_grid/requests/compute/grid_image_list.rb    |   4 -
 lib/fog/go_grid/requests/compute/grid_ip_list.rb   |   2 -
 .../requests/compute/grid_loadbalancer_list.rb     |   2 -
 .../go_grid/requests/compute/grid_server_add.rb    |   2 -
 .../go_grid/requests/compute/grid_server_delete.rb |   2 -
 .../go_grid/requests/compute/grid_server_get.rb    |   2 -
 .../go_grid/requests/compute/grid_server_list.rb   |   2 -
 .../go_grid/requests/compute/grid_server_power.rb  |   2 -
 .../requests/compute/support_password_get.rb       |   2 -
 .../requests/compute/support_password_list.rb      |   2 -
 lib/fog/google.rb                                  |   3 +
 lib/fog/google/compute.rb                          | 487 ++++++------
 lib/fog/google/core.rb                             | 163 +++-
 lib/fog/google/dns.rb                              |  63 ++
 lib/fog/google/examples/backend_services.rb        |  22 +
 lib/fog/google/examples/create.rb                  |   2 +-
 lib/fog/google/examples/eric-fail.rb               |   2 +-
 lib/fog/google/examples/get_list_images.rb         |   2 +-
 lib/fog/google/examples/get_list_snapshots.rb      |   2 -
 lib/fog/google/examples/image_create.rb            |   2 +-
 lib/fog/google/examples/l7_load_balance.rb         |  73 ++
 lib/fog/google/examples/load-balance.rb            |   6 +-
 .../examples/monitoring/metric_descriptors.rb      |  11 +
 .../examples/monitoring/timeseries_collection.rb   |  15 +
 .../examples/monitoring/timeseries_descriptors.rb  |  15 +
 lib/fog/google/examples/sql/flags.rb               |   7 +
 lib/fog/google/examples/sql/instances.rb           |  38 +
 lib/fog/google/examples/sql/operations.rb          |  20 +
 lib/fog/google/examples/sql/ssl_certs.rb           |  28 +
 lib/fog/google/examples/sql/tiers.rb               |   7 +
 lib/fog/google/models/compute/address.rb           |  36 +-
 lib/fog/google/models/compute/addresses.rb         |  10 +-
 lib/fog/google/models/compute/backend_service.rb   |  92 +++
 lib/fog/google/models/compute/backend_services.rb  |  22 +
 lib/fog/google/models/compute/disk.rb              |  68 +-
 lib/fog/google/models/compute/disk_type.rb         |  28 +
 lib/fog/google/models/compute/disk_types.rb        |  40 +
 lib/fog/google/models/compute/disks.rb             |  34 +-
 lib/fog/google/models/compute/firewall.rb          |   2 -
 lib/fog/google/models/compute/firewalls.rb         |   2 -
 lib/fog/google/models/compute/flavor.rb            |   3 -
 lib/fog/google/models/compute/flavors.rb           |   4 -
 lib/fog/google/models/compute/forwarding_rule.rb   |  10 +-
 lib/fog/google/models/compute/forwarding_rules.rb  |   4 -
 .../models/compute/global_forwarding_rule.rb       |  86 ++
 .../models/compute/global_forwarding_rules.rb      |  23 +
 lib/fog/google/models/compute/http_health_check.rb |   9 +-
 .../google/models/compute/http_health_checks.rb    |  10 +-
 lib/fog/google/models/compute/image.rb             |  46 +-
 lib/fog/google/models/compute/images.rb            |  17 +-
 lib/fog/google/models/compute/network.rb           |   2 -
 lib/fog/google/models/compute/networks.rb          |   2 -
 lib/fog/google/models/compute/operation.rb         |   3 -
 lib/fog/google/models/compute/operations.rb        |   4 -
 lib/fog/google/models/compute/project.rb           |   2 -
 lib/fog/google/models/compute/projects.rb          |   2 -
 lib/fog/google/models/compute/region.rb            |   2 -
 lib/fog/google/models/compute/regions.rb           |   2 -
 lib/fog/google/models/compute/resource_view.rb     | 116 +++
 lib/fog/google/models/compute/resource_views.rb    |  57 ++
 lib/fog/google/models/compute/route.rb             |   2 -
 lib/fog/google/models/compute/routes.rb            |   2 -
 lib/fog/google/models/compute/server.rb            | 125 ++-
 lib/fog/google/models/compute/servers.rb           |  34 +-
 lib/fog/google/models/compute/snapshot.rb          |   4 -
 lib/fog/google/models/compute/snapshots.rb         |   4 -
 .../google/models/compute/target_http_proxies.rb   |  22 +
 lib/fog/google/models/compute/target_http_proxy.rb |  75 ++
 lib/fog/google/models/compute/target_instance.rb   |  74 ++
 lib/fog/google/models/compute/target_instances.rb  |  28 +
 lib/fog/google/models/compute/target_pool.rb       |  15 +-
 lib/fog/google/models/compute/target_pools.rb      |   8 +-
 lib/fog/google/models/compute/url_map.rb           |  95 +++
 lib/fog/google/models/compute/url_maps.rb          |  22 +
 lib/fog/google/models/compute/zone.rb              |   3 -
 lib/fog/google/models/compute/zones.rb             |   3 -
 .../google/models/monitoring/metric_descriptor.rb  |  20 +
 .../google/models/monitoring/metric_descriptors.rb |  28 +
 lib/fog/google/models/monitoring/timeseries.rb     |  17 +
 .../models/monitoring/timeseries_collection.rb     |  31 +
 .../models/monitoring/timeseries_descriptor.rb     |  20 +
 .../models/monitoring/timeseries_descriptors.rb    |  31 +
 lib/fog/google/models/sql/backup_run.rb            |  34 +
 lib/fog/google/models/sql/backup_runs.rb           |  38 +
 lib/fog/google/models/sql/flag.rb                  |  22 +
 lib/fog/google/models/sql/flags.rb                 |  21 +
 lib/fog/google/models/sql/instance.rb              | 353 +++++++++
 lib/fog/google/models/sql/instances.rb             |  39 +
 lib/fog/google/models/sql/operation.rb             |  61 ++
 lib/fog/google/models/sql/operations.rb            |  49 ++
 lib/fog/google/models/sql/ssl_cert.rb              |  73 ++
 lib/fog/google/models/sql/ssl_certs.rb             |  49 ++
 lib/fog/google/models/sql/tier.rb                  |  20 +
 lib/fog/google/models/sql/tiers.rb                 |  21 +
 lib/fog/google/models/storage/directories.rb       |   4 -
 lib/fog/google/models/storage/directory.rb         |   6 +-
 lib/fog/google/models/storage/file.rb              |   6 +-
 lib/fog/google/models/storage/files.rb             |  11 +-
 lib/fog/google/monitoring.rb                       |  89 +++
 .../google/parsers/storage/access_control_list.rb  |   4 -
 lib/fog/google/parsers/storage/copy_object.rb      |   4 -
 lib/fog/google/parsers/storage/get_bucket.rb       |   4 -
 .../google/parsers/storage/get_bucket_logging.rb   |   4 -
 .../parsers/storage/get_bucket_object_versions.rb  |   4 -
 .../parsers/storage/get_bucket_versioning.rb       |   4 -
 .../google/parsers/storage/get_request_payment.rb  |   4 -
 lib/fog/google/parsers/storage/get_service.rb      |   4 -
 .../compute/add_backend_service_backends.rb        |  29 +
 .../requests/compute/add_region_view_resources.rb  |  27 +
 .../requests/compute/add_server_access_config.rb   |  32 +
 .../compute/add_target_pool_health_checks.rb       |  11 +-
 .../requests/compute/add_target_pool_instances.rb  |  11 +-
 .../requests/compute/add_url_map_host_rules.rb     |  25 +
 .../requests/compute/add_url_map_path_matchers.rb  |  29 +
 .../requests/compute/add_zone_view_resources.rb    |  27 +
 lib/fog/google/requests/compute/attach_disk.rb     |  21 +-
 lib/fog/google/requests/compute/delete_address.rb  |   9 +-
 .../requests/compute/delete_backend_service.rb     |  43 +
 lib/fog/google/requests/compute/delete_disk.rb     |  11 +-
 lib/fog/google/requests/compute/delete_firewall.rb |   9 +-
 .../requests/compute/delete_forwarding_rule.rb     |  29 +-
 .../compute/delete_global_forwarding_rule.rb       |  48 ++
 .../requests/compute/delete_global_operation.rb    |   6 +-
 .../requests/compute/delete_http_health_check.rb   |  29 +-
 lib/fog/google/requests/compute/delete_image.rb    |  30 +-
 lib/fog/google/requests/compute/delete_network.rb  |   9 +-
 .../requests/compute/delete_region_operation.rb    |   6 +-
 .../google/requests/compute/delete_region_view.rb  |  24 +
 lib/fog/google/requests/compute/delete_route.rb    |   5 +-
 lib/fog/google/requests/compute/delete_server.rb   |   9 +-
 .../compute/delete_server_access_config.rb         |  26 +
 lib/fog/google/requests/compute/delete_snapshot.rb |   9 +-
 .../requests/compute/delete_target_http_proxy.rb   |  43 +
 .../requests/compute/delete_target_instance.rb     |  48 ++
 .../google/requests/compute/delete_target_pool.rb  |  29 +-
 lib/fog/google/requests/compute/delete_url_map.rb  |  43 +
 .../requests/compute/delete_zone_operation.rb      |   6 +-
 .../google/requests/compute/delete_zone_view.rb    |  24 +
 lib/fog/google/requests/compute/detach_disk.rb     |  12 +-
 lib/fog/google/requests/compute/get_address.rb     |   9 +-
 .../google/requests/compute/get_backend_service.rb |  26 +
 .../requests/compute/get_backend_service_health.rb |  27 +
 .../requests/compute/get_backend_services.rb       |  23 +
 lib/fog/google/requests/compute/get_disk.rb        |  13 +-
 lib/fog/google/requests/compute/get_disk_type.rb   |  42 +
 lib/fog/google/requests/compute/get_firewall.rb    |   9 +-
 .../google/requests/compute/get_forwarding_rule.rb |  29 +-
 .../requests/compute/get_global_forwarding_rule.rb |  32 +
 .../requests/compute/get_global_operation.rb       |  33 +-
 .../requests/compute/get_http_health_check.rb      |  27 +-
 lib/fog/google/requests/compute/get_image.rb       |  11 +-
 .../google/requests/compute/get_machine_type.rb    |  17 +-
 lib/fog/google/requests/compute/get_network.rb     |   9 +-
 lib/fog/google/requests/compute/get_project.rb     |   5 +-
 lib/fog/google/requests/compute/get_region.rb      |  21 +-
 .../requests/compute/get_region_operation.rb       |  35 +-
 lib/fog/google/requests/compute/get_region_view.rb |  24 +
 lib/fog/google/requests/compute/get_route.rb       |   5 +-
 lib/fog/google/requests/compute/get_server.rb      |  13 +-
 .../compute/get_server_serial_port_output.rb       |  24 +
 lib/fog/google/requests/compute/get_snapshot.rb    |   9 +-
 .../requests/compute/get_target_http_proxy.rb      |  27 +
 .../google/requests/compute/get_target_instance.rb |  32 +
 lib/fog/google/requests/compute/get_target_pool.rb |  23 +-
 .../requests/compute/get_target_pool_health.rb     |  10 +-
 lib/fog/google/requests/compute/get_url_map.rb     |  27 +
 lib/fog/google/requests/compute/get_zone.rb        |  11 +-
 .../google/requests/compute/get_zone_operation.rb  |   9 +-
 lib/fog/google/requests/compute/get_zone_view.rb   |  24 +
 lib/fog/google/requests/compute/insert_address.rb  |   7 +-
 .../requests/compute/insert_backend_service.rb     |  63 ++
 lib/fog/google/requests/compute/insert_disk.rb     |  22 +-
 lib/fog/google/requests/compute/insert_firewall.rb |  12 +-
 .../requests/compute/insert_forwarding_rule.rb     |  45 +-
 .../compute/insert_global_forwarding_rule.rb       |  56 ++
 .../requests/compute/insert_http_health_check.rb   |  45 +-
 lib/fog/google/requests/compute/insert_image.rb    |  49 +-
 lib/fog/google/requests/compute/insert_network.rb  |   9 +-
 .../google/requests/compute/insert_region_view.rb  |  25 +
 lib/fog/google/requests/compute/insert_route.rb    |   5 +-
 lib/fog/google/requests/compute/insert_server.rb   |  31 +-
 lib/fog/google/requests/compute/insert_snapshot.rb |  13 +-
 .../requests/compute/insert_target_http_proxy.rb   |  52 ++
 .../requests/compute/insert_target_instance.rb     |  55 ++
 .../google/requests/compute/insert_target_pool.rb  |  43 +-
 lib/fog/google/requests/compute/insert_url_map.rb  |  55 ++
 .../google/requests/compute/insert_zone_view.rb    |  27 +
 lib/fog/google/requests/compute/list_addresses.rb  |   7 +-
 .../requests/compute/list_aggregated_addresses.rb  |  10 +-
 .../requests/compute/list_aggregated_disk_types.rb |  40 +
 .../requests/compute/list_aggregated_disks.rb      |  40 +
 .../compute/list_aggregated_machine_types.rb       |   5 +-
 .../requests/compute/list_aggregated_servers.rb    |  40 +
 .../requests/compute/list_backend_services.rb      |  29 +
 lib/fog/google/requests/compute/list_disk_types.rb |  46 ++
 lib/fog/google/requests/compute/list_disks.rb      |  11 +-
 lib/fog/google/requests/compute/list_firewalls.rb  |   9 +-
 .../requests/compute/list_forwarding_rules.rb      |  11 +-
 .../compute/list_global_forwarding_rules.rb        |  30 +
 .../requests/compute/list_global_operations.rb     |   6 +-
 .../requests/compute/list_http_health_checks.rb    |  18 +-
 lib/fog/google/requests/compute/list_images.rb     |  11 +-
 .../google/requests/compute/list_machine_types.rb  |  11 +-
 lib/fog/google/requests/compute/list_networks.rb   |   9 +-
 .../requests/compute/list_region_operations.rb     |   6 +-
 .../requests/compute/list_region_view_resources.rb |  25 +
 .../google/requests/compute/list_region_views.rb   |  23 +
 lib/fog/google/requests/compute/list_regions.rb    |  74 +-
 lib/fog/google/requests/compute/list_routes.rb     |   5 +-
 lib/fog/google/requests/compute/list_servers.rb    |  11 +-
 lib/fog/google/requests/compute/list_snapshots.rb  |   9 +-
 .../requests/compute/list_target_http_proxies.rb   |  30 +
 .../requests/compute/list_target_instances.rb      |  30 +
 .../google/requests/compute/list_target_pools.rb   |  17 +-
 lib/fog/google/requests/compute/list_url_maps.rb   |  29 +
 .../requests/compute/list_zone_operations.rb       |   6 +-
 .../requests/compute/list_zone_view_resources.rb   |  25 +
 lib/fog/google/requests/compute/list_zone_views.rb |  23 +
 lib/fog/google/requests/compute/list_zones.rb      |  11 +-
 .../compute/remove_target_pool_health_checks.rb    |  11 +-
 .../compute/remove_target_pool_instance.rb         |  11 +-
 .../compute/remove_target_pool_instances.rb        |  11 +-
 lib/fog/google/requests/compute/reset_server.rb    |  24 +
 .../compute/set_common_instance_metadata.rb        |   6 +-
 .../requests/compute/set_forwarding_rule_target.rb |   7 +-
 .../compute/set_global_forwarding_rule_target.rb   |  27 +
 lib/fog/google/requests/compute/set_metadata.rb    |  11 +-
 .../compute/set_server_disk_auto_delete.rb         |  26 +
 .../requests/compute/set_server_scheduling.rb      |  29 +
 lib/fog/google/requests/compute/set_tags.rb        |  18 +-
 .../compute/set_target_http_proxy_url_map.rb       |  27 +
 lib/fog/google/requests/compute/update_url_map.rb  |  39 +
 .../google/requests/compute/validate_url_map.rb    |  24 +
 lib/fog/google/requests/dns/create_managed_zone.rb |  49 ++
 lib/fog/google/requests/dns/delete_managed_zone.rb |  39 +
 lib/fog/google/requests/dns/get_managed_zone.rb    |  31 +
 lib/fog/google/requests/dns/list_managed_zones.rb  |  26 +
 .../requests/monitoring/list_metric_descriptors.rb | 191 +++++
 .../google/requests/monitoring/list_timeseries.rb  |  68 ++
 .../monitoring/list_timeseries_descriptors.rb      |  87 ++
 lib/fog/google/requests/sql/clone_instance.rb      |  84 ++
 lib/fog/google/requests/sql/delete_instance.rb     |  67 ++
 lib/fog/google/requests/sql/delete_ssl_cert.rb     |  68 ++
 lib/fog/google/requests/sql/export_instance.rb     |  56 ++
 lib/fog/google/requests/sql/get_backup_run.rb      |  30 +
 lib/fog/google/requests/sql/get_instance.rb        |  48 ++
 lib/fog/google/requests/sql/get_operation.rb       |  66 ++
 lib/fog/google/requests/sql/get_ssl_cert.rb        |  66 ++
 lib/fog/google/requests/sql/import_instance.rb     |  55 ++
 lib/fog/google/requests/sql/insert_instance.rb     | 165 ++++
 lib/fog/google/requests/sql/insert_ssl_cert.rb     |  80 ++
 lib/fog/google/requests/sql/list_backup_runs.rb    |  30 +
 lib/fog/google/requests/sql/list_flags.rb          | 143 ++++
 lib/fog/google/requests/sql/list_instances.rb      |  32 +
 lib/fog/google/requests/sql/list_operations.rb     |  52 ++
 lib/fog/google/requests/sql/list_ssl_certs.rb      |  51 ++
 lib/fog/google/requests/sql/list_tiers.rb          |  82 ++
 .../requests/sql/reset_instance_ssl_config.rb      |  49 ++
 lib/fog/google/requests/sql/restart_instance.rb    |  47 ++
 .../google/requests/sql/restore_instance_backup.rb |  30 +
 .../requests/sql/set_instance_root_password.rb     |  54 ++
 lib/fog/google/requests/sql/update_instance.rb     | 132 ++++
 lib/fog/google/requests/storage/copy_object.rb     |   4 -
 lib/fog/google/requests/storage/delete_bucket.rb   |   5 -
 lib/fog/google/requests/storage/delete_object.rb   |   4 -
 lib/fog/google/requests/storage/get_bucket.rb      |   4 -
 lib/fog/google/requests/storage/get_bucket_acl.rb  |   4 -
 lib/fog/google/requests/storage/get_object.rb      |   4 -
 lib/fog/google/requests/storage/get_object_acl.rb  |   4 -
 .../google/requests/storage/get_object_http_url.rb |   7 -
 .../requests/storage/get_object_https_url.rb       |   7 -
 .../google/requests/storage/get_object_torrent.rb  |   2 -
 lib/fog/google/requests/storage/get_object_url.rb  |   4 -
 lib/fog/google/requests/storage/get_service.rb     |   7 +-
 lib/fog/google/requests/storage/head_object.rb     |   4 -
 lib/fog/google/requests/storage/put_bucket.rb      |   4 -
 lib/fog/google/requests/storage/put_bucket_acl.rb  |   8 +-
 lib/fog/google/requests/storage/put_object.rb      |   4 -
 lib/fog/google/requests/storage/put_object_acl.rb  |   4 -
 lib/fog/google/requests/storage/put_object_url.rb  |   4 -
 lib/fog/google/sql.rb                              | 132 ++++
 lib/fog/google/storage.rb                          |  14 +-
 lib/fog/hp/block_storage.rb                        |   5 -
 lib/fog/hp/block_storage_v2.rb                     |   7 +-
 lib/fog/hp/cdn.rb                                  |   4 -
 lib/fog/hp/compute.rb                              |   5 -
 lib/fog/hp/compute_v2.rb                           |   7 +-
 lib/fog/hp/core.rb                                 |  17 +-
 lib/fog/hp/dns.rb                                  |   7 +-
 lib/fog/hp/docs/connect.md                         |   4 +-
 lib/fog/hp/lb.rb                                   |   9 +-
 .../hp/models/block_storage/bootable_volumes.rb    |   4 -
 lib/fog/hp/models/block_storage/snapshot.rb        |   4 -
 lib/fog/hp/models/block_storage/snapshots.rb       |   4 -
 lib/fog/hp/models/block_storage/volume.rb          |   4 -
 lib/fog/hp/models/block_storage/volumes.rb         |   4 -
 lib/fog/hp/models/block_storage_v2/snapshot.rb     |   4 -
 lib/fog/hp/models/block_storage_v2/snapshots.rb    |   4 -
 lib/fog/hp/models/block_storage_v2/volume.rb       |   6 +-
 .../hp/models/block_storage_v2/volume_backup.rb    |   4 -
 .../hp/models/block_storage_v2/volume_backups.rb   |   4 -
 lib/fog/hp/models/block_storage_v2/volumes.rb      |   4 -
 lib/fog/hp/models/compute/address.rb               |   4 -
 lib/fog/hp/models/compute/addresses.rb             |   4 -
 lib/fog/hp/models/compute/flavor.rb                |   4 -
 lib/fog/hp/models/compute/flavors.rb               |   4 -
 lib/fog/hp/models/compute/image.rb                 |   4 -
 lib/fog/hp/models/compute/images.rb                |   4 -
 lib/fog/hp/models/compute/key_pair.rb              |   5 +-
 lib/fog/hp/models/compute/key_pairs.rb             |   3 -
 lib/fog/hp/models/compute/meta.rb                  |   2 -
 lib/fog/hp/models/compute/metadata.rb              |   5 -
 lib/fog/hp/models/compute/security_group.rb        |   2 -
 lib/fog/hp/models/compute/security_groups.rb       |   3 -
 lib/fog/hp/models/compute/server.rb                |   5 -
 lib/fog/hp/models/compute/servers.rb               |   4 -
 lib/fog/hp/models/compute_v2/address.rb            |   4 -
 lib/fog/hp/models/compute_v2/addresses.rb          |   4 -
 lib/fog/hp/models/compute_v2/availability_zone.rb  |   4 -
 lib/fog/hp/models/compute_v2/availability_zones.rb |   4 -
 lib/fog/hp/models/compute_v2/flavor.rb             |   4 -
 lib/fog/hp/models/compute_v2/flavors.rb            |   4 -
 lib/fog/hp/models/compute_v2/image.rb              |  19 +-
 lib/fog/hp/models/compute_v2/images.rb             |   4 -
 lib/fog/hp/models/compute_v2/key_pair.rb           |   5 +-
 lib/fog/hp/models/compute_v2/key_pairs.rb          |   3 -
 lib/fog/hp/models/compute_v2/meta.rb               |   2 -
 lib/fog/hp/models/compute_v2/meta_parent.rb        |   2 -
 lib/fog/hp/models/compute_v2/metadata.rb           |   5 -
 lib/fog/hp/models/compute_v2/server.rb             |   5 -
 lib/fog/hp/models/compute_v2/servers.rb            |   4 -
 lib/fog/hp/models/compute_v2/volume_attachment.rb  |   5 +-
 lib/fog/hp/models/compute_v2/volume_attachments.rb |   1 -
 lib/fog/hp/models/dns/domain.rb                    |   2 -
 lib/fog/hp/models/dns/domains.rb                   |   3 -
 lib/fog/hp/models/dns/record.rb                    |   2 -
 lib/fog/hp/models/dns/records.rb                   |   3 -
 lib/fog/hp/models/lb/algorithm.rb                  |   1 -
 lib/fog/hp/models/lb/algorithms.rb                 |   3 +-
 lib/fog/hp/models/lb/load_balancer.rb              |   3 +-
 lib/fog/hp/models/lb/load_balancers.rb             |   1 -
 lib/fog/hp/models/lb/node.rb                       |   2 -
 lib/fog/hp/models/lb/nodes.rb                      |   2 -
 lib/fog/hp/models/lb/protocol.rb                   |   1 -
 lib/fog/hp/models/lb/protocols.rb                  |   3 +-
 lib/fog/hp/models/lb/virtual_ip.rb                 |   1 -
 lib/fog/hp/models/lb/virtual_ips.rb                |   4 +-
 lib/fog/hp/models/meta_parent.rb                   |   2 -
 lib/fog/hp/models/network/floating_ip.rb           |   2 -
 lib/fog/hp/models/network/floating_ips.rb          |   3 -
 lib/fog/hp/models/network/network.rb               |   2 -
 lib/fog/hp/models/network/networks.rb              |   3 -
 lib/fog/hp/models/network/port.rb                  |   3 -
 lib/fog/hp/models/network/ports.rb                 |   3 -
 lib/fog/hp/models/network/router.rb                |   2 -
 lib/fog/hp/models/network/routers.rb               |   3 -
 lib/fog/hp/models/network/security_group.rb        |   2 -
 lib/fog/hp/models/network/security_group_rule.rb   |   2 -
 lib/fog/hp/models/network/security_group_rules.rb  |   3 -
 lib/fog/hp/models/network/security_groups.rb       |   3 -
 lib/fog/hp/models/network/subnet.rb                |   2 -
 lib/fog/hp/models/network/subnets.rb               |   3 -
 lib/fog/hp/models/storage/directories.rb           |   4 -
 lib/fog/hp/models/storage/directory.rb             |   4 -
 lib/fog/hp/models/storage/file.rb                  |   4 -
 lib/fog/hp/models/storage/files.rb                 |   6 +-
 lib/fog/hp/models/storage/meta.rb                  |   2 -
 lib/fog/hp/models/storage/meta_parent.rb           |   2 -
 lib/fog/hp/models/storage/metadata.rb              |   5 -
 lib/fog/hp/models/storage/shared_directories.rb    |   4 -
 lib/fog/hp/models/storage/shared_directory.rb      |   3 -
 lib/fog/hp/models/storage/shared_file.rb           |   3 -
 lib/fog/hp/models/storage/shared_files.rb          |   4 -
 lib/fog/hp/network.rb                              |  18 +-
 .../hp/requests/block_storage/create_snapshot.rb   |   4 -
 lib/fog/hp/requests/block_storage/create_volume.rb |   4 -
 .../hp/requests/block_storage/delete_snapshot.rb   |   4 -
 lib/fog/hp/requests/block_storage/delete_volume.rb |   4 -
 .../block_storage/get_bootable_volume_details.rb   |   5 -
 .../requests/block_storage/get_snapshot_details.rb |   5 -
 .../requests/block_storage/get_volume_details.rb   |   5 -
 .../block_storage/list_bootable_volumes.rb         |   4 -
 .../hp/requests/block_storage/list_snapshots.rb    |   4 -
 lib/fog/hp/requests/block_storage/list_volumes.rb  |   4 -
 .../requests/block_storage_v2/create_snapshot.rb   |   4 -
 .../hp/requests/block_storage_v2/create_volume.rb  |   4 -
 .../block_storage_v2/create_volume_backup.rb       |   4 -
 .../requests/block_storage_v2/delete_snapshot.rb   |   4 -
 .../hp/requests/block_storage_v2/delete_volume.rb  |   4 -
 .../block_storage_v2/delete_volume_backup.rb       |   4 -
 .../block_storage_v2/get_snapshot_details.rb       |   5 -
 .../block_storage_v2/get_volume_backup_details.rb  |   5 -
 .../block_storage_v2/get_volume_details.rb         |   5 -
 .../hp/requests/block_storage_v2/list_snapshots.rb |   4 -
 .../block_storage_v2/list_snapshots_detail.rb      |   4 -
 .../block_storage_v2/list_volume_backups.rb        |   4 -
 .../block_storage_v2/list_volume_backups_detail.rb |   4 -
 .../hp/requests/block_storage_v2/list_volumes.rb   |   4 -
 .../block_storage_v2/list_volumes_detail.rb        |   4 -
 .../block_storage_v2/restore_volume_backup.rb      |   4 -
 .../requests/block_storage_v2/update_snapshot.rb   |   5 -
 .../hp/requests/block_storage_v2/update_volume.rb  |   4 -
 lib/fog/hp/requests/cdn/delete_container.rb        |   3 -
 lib/fog/hp/requests/cdn/get_containers.rb          |   5 -
 lib/fog/hp/requests/cdn/head_container.rb          |   3 -
 lib/fog/hp/requests/cdn/post_container.rb          |   3 -
 lib/fog/hp/requests/cdn/put_container.rb           |   3 -
 lib/fog/hp/requests/compute/allocate_address.rb    |   5 -
 lib/fog/hp/requests/compute/associate_address.rb   |   4 -
 lib/fog/hp/requests/compute/attach_volume.rb       |   4 -
 .../hp/requests/compute/change_password_server.rb  |   6 +-
 .../hp/requests/compute/confirm_resized_server.rb  |   4 -
 lib/fog/hp/requests/compute/create_image.rb        |   5 -
 lib/fog/hp/requests/compute/create_key_pair.rb     |   5 -
 .../requests/compute/create_persistent_server.rb   |   5 -
 .../hp/requests/compute/create_security_group.rb   |   7 +-
 .../requests/compute/create_security_group_rule.rb |   5 -
 lib/fog/hp/requests/compute/create_server.rb       |   4 -
 lib/fog/hp/requests/compute/delete_image.rb        |   7 +-
 lib/fog/hp/requests/compute/delete_key_pair.rb     |   4 -
 lib/fog/hp/requests/compute/delete_meta.rb         |   5 -
 .../hp/requests/compute/delete_security_group.rb   |   4 -
 .../requests/compute/delete_security_group_rule.rb |   5 -
 lib/fog/hp/requests/compute/delete_server.rb       |   6 +-
 lib/fog/hp/requests/compute/detach_volume.rb       |   4 -
 .../hp/requests/compute/disassociate_address.rb    |   4 -
 lib/fog/hp/requests/compute/get_address.rb         |   4 -
 lib/fog/hp/requests/compute/get_console_output.rb  |   6 +-
 lib/fog/hp/requests/compute/get_flavor_details.rb  |   4 -
 lib/fog/hp/requests/compute/get_image_details.rb   |   7 +-
 lib/fog/hp/requests/compute/get_meta.rb            |   5 -
 lib/fog/hp/requests/compute/get_security_group.rb  |   4 -
 lib/fog/hp/requests/compute/get_server_details.rb  |   6 +-
 lib/fog/hp/requests/compute/get_vnc_console.rb     |   6 +-
 .../hp/requests/compute/get_windows_password.rb    |   5 +-
 lib/fog/hp/requests/compute/list_addresses.rb      |   4 -
 lib/fog/hp/requests/compute/list_flavors.rb        |   4 -
 lib/fog/hp/requests/compute/list_flavors_detail.rb |   4 -
 lib/fog/hp/requests/compute/list_images.rb         |   4 -
 lib/fog/hp/requests/compute/list_images_detail.rb  |   4 -
 lib/fog/hp/requests/compute/list_key_pairs.rb      |   4 -
 lib/fog/hp/requests/compute/list_metadata.rb       |   4 -
 .../hp/requests/compute/list_security_groups.rb    |   4 -
 .../hp/requests/compute/list_server_addresses.rb   |   6 +-
 .../compute/list_server_private_addresses.rb       |   6 +-
 .../compute/list_server_public_addresses.rb        |   6 +-
 lib/fog/hp/requests/compute/list_server_volumes.rb |   4 -
 lib/fog/hp/requests/compute/list_servers.rb        |   4 -
 lib/fog/hp/requests/compute/list_servers_detail.rb |   4 -
 lib/fog/hp/requests/compute/reboot_server.rb       |   6 +-
 lib/fog/hp/requests/compute/rebuild_server.rb      |   5 -
 lib/fog/hp/requests/compute/release_address.rb     |   4 -
 lib/fog/hp/requests/compute/resize_server.rb       |   4 -
 .../hp/requests/compute/revert_resized_server.rb   |   4 -
 lib/fog/hp/requests/compute/server_action.rb       |   2 -
 lib/fog/hp/requests/compute/set_metadata.rb        |   7 -
 lib/fog/hp/requests/compute/update_meta.rb         |   7 -
 lib/fog/hp/requests/compute/update_metadata.rb     |   7 -
 lib/fog/hp/requests/compute/update_server.rb       |   6 +-
 .../hp/requests/compute_v2/add_security_group.rb   |   4 -
 lib/fog/hp/requests/compute_v2/allocate_address.rb |   5 -
 .../hp/requests/compute_v2/associate_address.rb    |   4 -
 lib/fog/hp/requests/compute_v2/attach_volume.rb    |   4 -
 lib/fog/hp/requests/compute_v2/create_image.rb     |   7 +-
 lib/fog/hp/requests/compute_v2/create_key_pair.rb  |   5 -
 .../compute_v2/create_persistent_server.rb         |   6 -
 lib/fog/hp/requests/compute_v2/create_server.rb    |   4 -
 lib/fog/hp/requests/compute_v2/delete_image.rb     |   7 +-
 lib/fog/hp/requests/compute_v2/delete_key_pair.rb  |   4 -
 lib/fog/hp/requests/compute_v2/delete_meta.rb      |   5 -
 lib/fog/hp/requests/compute_v2/delete_server.rb    |   6 +-
 lib/fog/hp/requests/compute_v2/detach_volume.rb    |   4 -
 .../hp/requests/compute_v2/disassociate_address.rb |   4 -
 lib/fog/hp/requests/compute_v2/get_address.rb      |   4 -
 .../hp/requests/compute_v2/get_console_output.rb   |   6 +-
 .../hp/requests/compute_v2/get_flavor_details.rb   |   4 -
 .../hp/requests/compute_v2/get_image_details.rb    |   7 +-
 lib/fog/hp/requests/compute_v2/get_key_pair.rb     |   4 -
 lib/fog/hp/requests/compute_v2/get_meta.rb         |   5 -
 .../hp/requests/compute_v2/get_server_details.rb   |   6 +-
 .../compute_v2/get_server_volume_details.rb        |   4 -
 lib/fog/hp/requests/compute_v2/get_vnc_console.rb  |   6 +-
 .../hp/requests/compute_v2/get_windows_password.rb |   5 +-
 lib/fog/hp/requests/compute_v2/list_addresses.rb   |   4 -
 .../requests/compute_v2/list_availability_zones.rb |   4 -
 lib/fog/hp/requests/compute_v2/list_flavors.rb     |   4 -
 .../hp/requests/compute_v2/list_flavors_detail.rb  |   4 -
 lib/fog/hp/requests/compute_v2/list_images.rb      |   4 -
 .../hp/requests/compute_v2/list_images_detail.rb   |   4 -
 lib/fog/hp/requests/compute_v2/list_key_pairs.rb   |   4 -
 lib/fog/hp/requests/compute_v2/list_limits.rb      |   4 -
 lib/fog/hp/requests/compute_v2/list_metadata.rb    |   4 -
 .../requests/compute_v2/list_server_addresses.rb   |   6 +-
 .../compute_v2/list_server_addresses_by_network.rb |   6 +-
 .../hp/requests/compute_v2/list_server_volumes.rb  |   4 -
 lib/fog/hp/requests/compute_v2/list_servers.rb     |   4 -
 .../hp/requests/compute_v2/list_servers_detail.rb  |   4 -
 lib/fog/hp/requests/compute_v2/reboot_server.rb    |   6 +-
 lib/fog/hp/requests/compute_v2/rebuild_server.rb   |   7 +-
 lib/fog/hp/requests/compute_v2/release_address.rb  |   4 -
 .../requests/compute_v2/remove_security_group.rb   |   4 -
 lib/fog/hp/requests/compute_v2/server_action.rb    |   2 -
 lib/fog/hp/requests/compute_v2/set_metadata.rb     |   7 -
 lib/fog/hp/requests/compute_v2/update_meta.rb      |   7 -
 lib/fog/hp/requests/compute_v2/update_metadata.rb  |   7 -
 lib/fog/hp/requests/compute_v2/update_server.rb    |   6 +-
 lib/fog/hp/requests/dns/create_domain.rb           |   1 -
 lib/fog/hp/requests/dns/create_record.rb           |   5 +-
 lib/fog/hp/requests/dns/delete_domain.rb           |   7 +-
 lib/fog/hp/requests/dns/delete_record.rb           |   4 +-
 lib/fog/hp/requests/dns/get_domain.rb              |   4 +-
 lib/fog/hp/requests/dns/get_record.rb              |   3 +-
 .../hp/requests/dns/get_servers_hosting_domain.rb  |   4 +-
 lib/fog/hp/requests/dns/list_domains.rb            |   2 -
 .../hp/requests/dns/list_records_in_a_domain.rb    |   4 +-
 lib/fog/hp/requests/dns/update_domain.rb           |   3 +-
 lib/fog/hp/requests/dns/update_record.rb           |   6 +-
 lib/fog/hp/requests/lb/create_load_balancer.rb     |   1 -
 .../hp/requests/lb/create_load_balancer_node.rb    |   4 -
 lib/fog/hp/requests/lb/delete_load_balancer.rb     |   6 +-
 .../hp/requests/lb/delete_load_balancer_node.rb    |   4 -
 lib/fog/hp/requests/lb/get_load_balancer.rb        |   5 +-
 lib/fog/hp/requests/lb/get_load_balancer_node.rb   |   5 +-
 lib/fog/hp/requests/lb/list_algorithms.rb          |   1 -
 lib/fog/hp/requests/lb/list_limits.rb              |   4 -
 lib/fog/hp/requests/lb/list_load_balancer_nodes.rb |   2 -
 .../requests/lb/list_load_balancer_virtual_ips.rb  |   3 -
 lib/fog/hp/requests/lb/list_load_balancers.rb      |   2 -
 lib/fog/hp/requests/lb/list_protocols.rb           |   1 -
 lib/fog/hp/requests/lb/list_versions.rb            |   3 -
 lib/fog/hp/requests/lb/update_load_balancer.rb     |   4 +-
 .../hp/requests/lb/update_load_balancer_node.rb    |   4 -
 .../hp/requests/network/add_router_interface.rb    |   4 +-
 .../hp/requests/network/associate_floating_ip.rb   |   4 +-
 lib/fog/hp/requests/network/create_floating_ip.rb  |   2 -
 lib/fog/hp/requests/network/create_network.rb      |   3 -
 lib/fog/hp/requests/network/create_port.rb         |   4 +-
 lib/fog/hp/requests/network/create_router.rb       |   2 -
 .../hp/requests/network/create_security_group.rb   |   5 -
 .../requests/network/create_security_group_rule.rb |   5 -
 lib/fog/hp/requests/network/create_subnet.rb       |   4 +-
 lib/fog/hp/requests/network/delete_floating_ip.rb  |   4 +-
 lib/fog/hp/requests/network/delete_network.rb      |   4 +-
 lib/fog/hp/requests/network/delete_port.rb         |   4 +-
 lib/fog/hp/requests/network/delete_router.rb       |   4 +-
 .../hp/requests/network/delete_security_group.rb   |   4 -
 .../requests/network/delete_security_group_rule.rb |   4 -
 lib/fog/hp/requests/network/delete_subnet.rb       |   4 +-
 .../requests/network/disassociate_floating_ip.rb   |   4 +-
 lib/fog/hp/requests/network/get_floating_ip.rb     |   5 +-
 lib/fog/hp/requests/network/get_network.rb         |   5 +-
 lib/fog/hp/requests/network/get_port.rb            |   4 +-
 lib/fog/hp/requests/network/get_router.rb          |   4 +-
 lib/fog/hp/requests/network/get_security_group.rb  |   4 -
 .../hp/requests/network/get_security_group_rule.rb |   4 -
 lib/fog/hp/requests/network/get_subnet.rb          |   4 +-
 lib/fog/hp/requests/network/list_floating_ips.rb   |   2 -
 lib/fog/hp/requests/network/list_networks.rb       |  28 +-
 lib/fog/hp/requests/network/list_ports.rb          |   2 -
 lib/fog/hp/requests/network/list_routers.rb        |   2 -
 .../requests/network/list_security_group_rules.rb  |   4 -
 .../hp/requests/network/list_security_groups.rb    |   4 -
 lib/fog/hp/requests/network/list_subnets.rb        |   2 -
 .../hp/requests/network/remove_router_interface.rb |   4 +-
 lib/fog/hp/requests/network/update_network.rb      |   4 +-
 lib/fog/hp/requests/network/update_port.rb         |   4 +-
 lib/fog/hp/requests/network/update_router.rb       |   4 +-
 lib/fog/hp/requests/network/update_subnet.rb       |   4 +-
 lib/fog/hp/requests/storage/delete_container.rb    |   5 -
 lib/fog/hp/requests/storage/delete_object.rb       |   5 -
 .../hp/requests/storage/delete_shared_object.rb    |   5 -
 lib/fog/hp/requests/storage/get_container.rb       |   5 -
 lib/fog/hp/requests/storage/get_containers.rb      |   5 -
 lib/fog/hp/requests/storage/get_object.rb          |   5 -
 lib/fog/hp/requests/storage/get_object_temp_url.rb |   5 -
 .../hp/requests/storage/get_shared_container.rb    |   6 -
 lib/fog/hp/requests/storage/get_shared_object.rb   |   5 -
 lib/fog/hp/requests/storage/head_container.rb      |   5 -
 lib/fog/hp/requests/storage/head_containers.rb     |   5 -
 lib/fog/hp/requests/storage/head_object.rb         |   5 -
 .../hp/requests/storage/head_shared_container.rb   |   5 -
 lib/fog/hp/requests/storage/head_shared_object.rb  |   5 -
 lib/fog/hp/requests/storage/post_container.rb      |   5 -
 lib/fog/hp/requests/storage/post_object.rb         |   5 -
 lib/fog/hp/requests/storage/put_container.rb       |   3 -
 lib/fog/hp/requests/storage/put_object.rb          |   7 +-
 lib/fog/hp/requests/storage/put_shared_object.rb   |   7 +-
 lib/fog/hp/simple_http_instrumentor.rb             |   7 +-
 lib/fog/hp/storage.rb                              |  17 +-
 lib/fog/ibm/compute.rb                             |   4 -
 lib/fog/ibm/core.rb                                |   9 +-
 lib/fog/ibm/models/compute/address.rb              |   1 -
 lib/fog/ibm/models/compute/addresses.rb            |   3 -
 lib/fog/ibm/models/compute/image.rb                |   2 -
 lib/fog/ibm/models/compute/images.rb               |   3 -
 lib/fog/ibm/models/compute/instance-types.rb       |   3 -
 lib/fog/ibm/models/compute/keys.rb                 |   3 -
 lib/fog/ibm/models/compute/locations.rb            |   3 -
 lib/fog/ibm/models/compute/server.rb               |   6 +-
 lib/fog/ibm/models/compute/servers.rb              |   3 -
 lib/fog/ibm/models/compute/vlan.rb                 |   2 -
 lib/fog/ibm/models/compute/vlans.rb                |   3 -
 lib/fog/ibm/models/storage/offerings.rb            |   3 -
 lib/fog/ibm/models/storage/volume.rb               |   2 -
 lib/fog/ibm/models/storage/volumes.rb              |   3 -
 lib/fog/ibm/requests/compute/clone_image.rb        |   4 -
 lib/fog/ibm/requests/compute/create_address.rb     |   4 -
 lib/fog/ibm/requests/compute/create_image.rb       |   4 -
 lib/fog/ibm/requests/compute/create_instance.rb    |   4 -
 lib/fog/ibm/requests/compute/create_key.rb         |   4 -
 lib/fog/ibm/requests/compute/delete_address.rb     |   4 -
 lib/fog/ibm/requests/compute/delete_image.rb       |   4 -
 lib/fog/ibm/requests/compute/delete_instance.rb    |   4 -
 lib/fog/ibm/requests/compute/delete_key.rb         |   4 -
 lib/fog/ibm/requests/compute/get_image.rb          |   4 -
 .../ibm/requests/compute/get_image_agreement.rb    |   4 -
 lib/fog/ibm/requests/compute/get_image_manifest.rb |   4 -
 lib/fog/ibm/requests/compute/get_instance.rb       |   4 -
 lib/fog/ibm/requests/compute/get_instance_logs.rb  |   2 -
 lib/fog/ibm/requests/compute/get_key.rb            |   4 -
 lib/fog/ibm/requests/compute/get_location.rb       |   4 -
 lib/fog/ibm/requests/compute/get_request.rb        |   4 -
 .../ibm/requests/compute/list_address_offerings.rb |   4 -
 lib/fog/ibm/requests/compute/list_addresses.rb     |   4 -
 lib/fog/ibm/requests/compute/list_images.rb        |   4 -
 lib/fog/ibm/requests/compute/list_instances.rb     |   4 -
 lib/fog/ibm/requests/compute/list_keys.rb          |   4 -
 lib/fog/ibm/requests/compute/list_locations.rb     |   4 -
 lib/fog/ibm/requests/compute/list_vlans.rb         |   4 -
 lib/fog/ibm/requests/compute/modify_instance.rb    |   3 -
 lib/fog/ibm/requests/compute/modify_key.rb         |   4 -
 lib/fog/ibm/requests/storage/create_volume.rb      |   3 -
 lib/fog/ibm/requests/storage/delete_volume.rb      |   4 -
 lib/fog/ibm/requests/storage/get_volume.rb         |   4 -
 lib/fog/ibm/requests/storage/list_offerings.rb     |   4 -
 lib/fog/ibm/requests/storage/list_volumes.rb       |   4 -
 lib/fog/ibm/storage.rb                             |   5 -
 lib/fog/internet_archive/core.rb                   |  12 +-
 .../internet_archive/models/storage/directories.rb |   4 -
 .../internet_archive/models/storage/directory.rb   |   4 -
 lib/fog/internet_archive/models/storage/file.rb    |  13 -
 lib/fog/internet_archive/models/storage/files.rb   |   5 +-
 .../models/storage/ia_attributes.rb                |   7 +-
 .../parsers/storage/access_control_list.rb         |   4 -
 .../parsers/storage/complete_multipart_upload.rb   |   4 -
 .../parsers/storage/copy_object.rb                 |   4 -
 .../parsers/storage/cors_configuration.rb          |   3 -
 .../parsers/storage/delete_multiple_objects.rb     |   5 -
 .../internet_archive/parsers/storage/get_bucket.rb |   4 -
 .../parsers/storage/get_bucket_lifecycle.rb        |   2 -
 .../parsers/storage/get_bucket_location.rb         |   4 -
 .../parsers/storage/get_bucket_logging.rb          |   4 -
 .../parsers/storage/get_bucket_website.rb          |   4 -
 .../parsers/storage/get_request_payment.rb         |   4 -
 .../parsers/storage/get_service.rb                 |   4 -
 .../parsers/storage/initiate_multipart_upload.rb   |   4 -
 .../parsers/storage/list_multipart_uploads.rb      |   4 -
 .../internet_archive/parsers/storage/list_parts.rb |   4 -
 .../requests/storage/abort_multipart_upload.rb     |   1 -
 .../internet_archive/requests/storage/acl_utils.rb |   8 +-
 .../requests/storage/complete_multipart_upload.rb  |   2 -
 .../requests/storage/copy_object.rb                |   4 -
 .../requests/storage/cors_utils.rb                 |   2 -
 .../requests/storage/delete_bucket.rb              |   5 -
 .../requests/storage/delete_bucket_cors.rb         |   3 -
 .../requests/storage/delete_bucket_lifecycle.rb    |   1 -
 .../requests/storage/delete_bucket_policy.rb       |   3 -
 .../requests/storage/delete_bucket_website.rb      |   3 -
 .../requests/storage/delete_multiple_objects.rb    |   5 -
 .../requests/storage/delete_object.rb              |   4 -
 .../requests/storage/get_bucket.rb                 |   8 +-
 .../requests/storage/get_bucket_acl.rb             |   4 -
 .../requests/storage/get_bucket_cors.rb            |   4 -
 .../requests/storage/get_bucket_lifecycle.rb       |   3 -
 .../requests/storage/get_bucket_location.rb        |   4 -
 .../requests/storage/get_bucket_logging.rb         |   2 -
 .../requests/storage/get_bucket_policy.rb          |   3 -
 .../requests/storage/get_bucket_website.rb         |   2 -
 .../requests/storage/get_object.rb                 |   6 +-
 .../requests/storage/get_object_acl.rb             |   4 -
 .../requests/storage/get_object_http_url.rb        |   7 -
 .../requests/storage/get_object_https_url.rb       |   7 -
 .../requests/storage/get_object_torrent.rb         |   2 -
 .../requests/storage/get_object_url.rb             |   6 -
 .../requests/storage/get_request_payment.rb        |   4 -
 .../requests/storage/get_service.rb                |   4 -
 .../requests/storage/head_object.rb                |   4 -
 .../requests/storage/initiate_multipart_upload.rb  |   2 -
 .../requests/storage/list_multipart_uploads.rb     |   2 -
 .../requests/storage/list_parts.rb                 |   2 -
 .../requests/storage/post_object_hidden_fields.rb  |   2 -
 .../requests/storage/put_bucket.rb                 |   4 -
 .../requests/storage/put_bucket_acl.rb             |   2 -
 .../requests/storage/put_bucket_cors.rb            |   2 -
 .../requests/storage/put_bucket_lifecycle.rb       |   1 -
 .../requests/storage/put_bucket_logging.rb         |   2 -
 .../requests/storage/put_bucket_policy.rb          |   3 -
 .../requests/storage/put_bucket_website.rb         |   5 -
 .../requests/storage/put_object.rb                 |   4 -
 .../requests/storage/put_object_acl.rb             |   2 -
 .../requests/storage/put_object_url.rb             |   5 -
 .../requests/storage/put_request_payment.rb        |   4 -
 .../requests/storage/sync_clock.rb                 |   4 -
 .../requests/storage/upload_part.rb                |   2 -
 lib/fog/internet_archive/signaturev4.rb            |   4 +-
 lib/fog/internet_archive/storage.rb                |   5 -
 lib/fog/joyent.rb                                  |   1 -
 lib/fog/joyent/analytics.rb                        |   5 +-
 lib/fog/joyent/compute.rb                          |   6 +-
 lib/fog/joyent/core.rb                             |   1 -
 lib/fog/joyent/errors.rb                           |   1 -
 lib/fog/joyent/models/analytics/field.rb           |   1 -
 lib/fog/joyent/models/analytics/fields.rb          |   2 -
 lib/fog/joyent/models/analytics/instrumentation.rb |   1 -
 .../joyent/models/analytics/instrumentations.rb    |   3 -
 lib/fog/joyent/models/analytics/joyent_module.rb   |   2 -
 lib/fog/joyent/models/analytics/joyent_modules.rb  |   2 -
 lib/fog/joyent/models/analytics/metric.rb          |   1 -
 lib/fog/joyent/models/analytics/metrics.rb         |   2 -
 lib/fog/joyent/models/analytics/transformations.rb |   2 -
 lib/fog/joyent/models/analytics/types.rb           |   2 -
 lib/fog/joyent/models/compute/datacenter.rb        |   1 -
 lib/fog/joyent/models/compute/datacenters.rb       |   4 -
 lib/fog/joyent/models/compute/flavor.rb            |   2 -
 lib/fog/joyent/models/compute/flavors.rb           |   4 -
 lib/fog/joyent/models/compute/image.rb             |   2 -
 lib/fog/joyent/models/compute/images.rb            |   4 -
 lib/fog/joyent/models/compute/keys.rb              |   2 -
 lib/fog/joyent/models/compute/network.rb           |   1 -
 lib/fog/joyent/models/compute/networks.rb          |   1 -
 lib/fog/joyent/models/compute/server.rb            |   2 -
 lib/fog/joyent/models/compute/servers.rb           |   3 -
 lib/fog/joyent/models/compute/snapshot.rb          |   1 -
 lib/fog/joyent/models/compute/snapshots.rb         |   2 -
 .../joyent/requests/compute/add_machine_tags.rb    |   1 -
 lib/fog/joyent/requests/compute/create_key.rb      |   2 -
 .../requests/compute/create_machine_snapshot.rb    |   2 -
 lib/fog/joyent/requests/compute/delete_key.rb      |   2 -
 .../requests/compute/delete_machine_metadata.rb    |   2 -
 .../requests/compute/delete_machine_snapshot.rb    |   3 -
 lib/fog/joyent/requests/compute/get_dataset.rb     |   2 -
 lib/fog/joyent/requests/compute/get_image.rb       |   2 -
 lib/fog/joyent/requests/compute/get_key.rb         |   1 -
 lib/fog/joyent/requests/compute/get_machine.rb     |   1 -
 .../requests/compute/get_machine_metadata.rb       |   2 -
 lib/fog/joyent/requests/compute/get_machine_tag.rb |   2 -
 lib/fog/joyent/requests/compute/get_package.rb     |   2 -
 .../joyent/requests/compute/list_datacenters.rb    |   2 -
 lib/fog/joyent/requests/compute/list_datasets.rb   |   1 -
 lib/fog/joyent/requests/compute/list_images.rb     |   1 -
 lib/fog/joyent/requests/compute/list_keys.rb       |   1 -
 .../joyent/requests/compute/list_machine_tags.rb   |   1 -
 lib/fog/joyent/requests/compute/list_machines.rb   |   1 -
 lib/fog/joyent/requests/compute/list_networks.rb   |   1 -
 lib/fog/joyent/requests/compute/list_packages.rb   |   3 -
 lib/fog/libvirt/compute.rb                         |   6 +-
 lib/fog/libvirt/core.rb                            |   2 -
 lib/fog/libvirt/models/compute/interface.rb        |   3 -
 lib/fog/libvirt/models/compute/interfaces.rb       |   4 -
 lib/fog/libvirt/models/compute/network.rb          |   5 -
 lib/fog/libvirt/models/compute/networks.rb         |   4 -
 lib/fog/libvirt/models/compute/nic.rb              |   5 -
 lib/fog/libvirt/models/compute/nics.rb             |   4 -
 lib/fog/libvirt/models/compute/node.rb             |   5 -
 lib/fog/libvirt/models/compute/nodes.rb            |   3 -
 lib/fog/libvirt/models/compute/pool.rb             |   4 -
 lib/fog/libvirt/models/compute/pools.rb            |   4 -
 lib/fog/libvirt/models/compute/server.rb           |  14 +-
 lib/fog/libvirt/models/compute/servers.rb          |   3 -
 lib/fog/libvirt/models/compute/util/uri.rb         |   9 +-
 lib/fog/libvirt/models/compute/util/util.rb        |   1 -
 lib/fog/libvirt/models/compute/volume.rb           |   4 -
 lib/fog/libvirt/models/compute/volumes.rb          |   4 -
 lib/fog/libvirt/requests/compute/create_volume.rb  |   1 -
 lib/fog/libvirt/requests/compute/define_pool.rb    |   1 -
 lib/fog/libvirt/requests/compute/get_node_info.rb  |   2 -
 lib/fog/libvirt/requests/compute/list_domains.rb   |   5 +-
 .../libvirt/requests/compute/list_interfaces.rb    |   2 -
 lib/fog/libvirt/requests/compute/list_networks.rb  |   3 -
 .../libvirt/requests/compute/list_pool_volumes.rb  |   2 -
 lib/fog/libvirt/requests/compute/list_pools.rb     |   5 +-
 lib/fog/libvirt/requests/compute/list_volumes.rb   |   1 -
 lib/fog/libvirt/requests/compute/update_display.rb |   4 +-
 lib/fog/linode/compute.rb                          |   7 +-
 lib/fog/linode/core.rb                             |   1 -
 lib/fog/linode/dns.rb                              |   5 -
 lib/fog/linode/models/compute/disks.rb             |   2 +-
 lib/fog/linode/models/compute/flavor.rb            |   5 +-
 lib/fog/linode/models/compute/flavors.rb           |   2 +-
 lib/fog/linode/models/compute/server.rb            |   8 +-
 lib/fog/linode/models/dns/record.rb                |   3 -
 lib/fog/linode/models/dns/records.rb               |   4 -
 lib/fog/linode/models/dns/zone.rb                  |   4 -
 lib/fog/linode/models/dns/zones.rb                 |   4 -
 .../linode/requests/compute/avail_datacenters.rb   |   2 -
 .../linode/requests/compute/avail_distributions.rb |   2 -
 lib/fog/linode/requests/compute/avail_kernels.rb   |   2 -
 .../linode/requests/compute/avail_linodeplans.rb   |   5 +-
 .../linode/requests/compute/avail_stackscripts.rb  |   2 -
 lib/fog/linode/requests/compute/linode_boot.rb     |   2 -
 .../requests/compute/linode_config_create.rb       |   2 -
 .../requests/compute/linode_config_delete.rb       |  32 +
 .../linode/requests/compute/linode_config_list.rb  |   2 -
 .../requests/compute/linode_config_update.rb       |  33 +
 lib/fog/linode/requests/compute/linode_create.rb   |   2 -
 lib/fog/linode/requests/compute/linode_delete.rb   |   2 -
 .../linode/requests/compute/linode_disk_create.rb  |   2 -
 .../compute/linode_disk_createfromdistribution.rb  |   2 -
 .../compute/linode_disk_createfromstackscript.rb   |   2 -
 .../linode/requests/compute/linode_disk_delete.rb  |   2 -
 .../linode/requests/compute/linode_disk_list.rb    |   2 -
 .../requests/compute/linode_ip_addprivate.rb       |   2 -
 lib/fog/linode/requests/compute/linode_ip_list.rb  |   2 -
 lib/fog/linode/requests/compute/linode_list.rb     |   2 -
 lib/fog/linode/requests/compute/linode_reboot.rb   |   2 -
 lib/fog/linode/requests/compute/linode_shutdown.rb |   2 -
 lib/fog/linode/requests/compute/linode_update.rb   |   2 -
 .../linode/requests/compute/stackscript_list.rb    |   2 -
 lib/fog/linode/requests/dns/domain_create.rb       |   2 -
 lib/fog/linode/requests/dns/domain_delete.rb       |   2 -
 lib/fog/linode/requests/dns/domain_list.rb         |   2 -
 .../linode/requests/dns/domain_resource_create.rb  |   2 -
 .../linode/requests/dns/domain_resource_delete.rb  |   2 -
 .../linode/requests/dns/domain_resource_list.rb    |   2 -
 .../linode/requests/dns/domain_resource_update.rb  |   3 -
 lib/fog/linode/requests/dns/domain_update.rb       |   4 -
 lib/fog/local/core.rb                              |   2 -
 lib/fog/local/models/storage/directories.rb        |   4 -
 lib/fog/local/models/storage/directory.rb          |   4 -
 lib/fog/local/models/storage/file.rb               |  14 +-
 lib/fog/local/models/storage/files.rb              |   7 +-
 lib/fog/local/storage.rb                           |   4 -
 lib/fog/ninefold/compute.rb                        |   9 +-
 lib/fog/ninefold/core.rb                           |   2 -
 lib/fog/ninefold/models/compute/address.rb         |   3 -
 lib/fog/ninefold/models/compute/addresses.rb       |   4 -
 lib/fog/ninefold/models/compute/flavor.rb          |   5 -
 lib/fog/ninefold/models/compute/flavors.rb         |   4 -
 lib/fog/ninefold/models/compute/image.rb           |   4 -
 lib/fog/ninefold/models/compute/images.rb          |   4 -
 .../ninefold/models/compute/ip_forwarding_rule.rb  |   3 -
 .../ninefold/models/compute/ip_forwarding_rules.rb |   4 -
 lib/fog/ninefold/models/compute/server.rb          |   3 -
 lib/fog/ninefold/models/compute/servers.rb         |   4 -
 .../compute/assign_to_load_balancer_rule.rb        |   2 -
 .../requests/compute/associate_ip_address.rb       |   2 -
 .../compute/change_service_for_virtual_machine.rb  |   2 -
 .../requests/compute/create_ip_forwarding_rule.rb  |   2 -
 .../requests/compute/delete_ip_forwarding_rule.rb  |   2 -
 .../requests/compute/deploy_virtual_machine.rb     |   2 -
 .../requests/compute/destroy_virtual_machine.rb    |   2 -
 .../requests/compute/disable_static_nat.rb         |   2 -
 .../requests/compute/disassociate_ip_address.rb    |   2 -
 .../ninefold/requests/compute/enable_static_nat.rb |   2 -
 lib/fog/ninefold/requests/compute/list_accounts.rb |   2 -
 .../ninefold/requests/compute/list_async_jobs.rb   |   2 -
 .../ninefold/requests/compute/list_capabilities.rb |   2 -
 .../requests/compute/list_disk_offerings.rb        |   2 -
 lib/fog/ninefold/requests/compute/list_events.rb   |   2 -
 .../ninefold/requests/compute/list_hypervisors.rb  |   2 -
 .../requests/compute/list_ip_forwarding_rules.rb   |   2 -
 .../compute/list_load_balancer_rule_instances.rb   |   4 -
 .../requests/compute/list_load_balancer_rules.rb   |   3 -
 .../requests/compute/list_network_offerings.rb     |   2 -
 lib/fog/ninefold/requests/compute/list_networks.rb |   2 -
 .../requests/compute/list_public_ip_addresses.rb   |   2 -
 .../requests/compute/list_resource_limits.rb       |   2 -
 .../requests/compute/list_service_offerings.rb     |   2 -
 .../ninefold/requests/compute/list_templates.rb    |   2 -
 .../requests/compute/list_virtual_machines.rb      |   2 -
 lib/fog/ninefold/requests/compute/list_zones.rb    |   2 -
 .../requests/compute/query_async_job_result.rb     |   2 -
 .../requests/compute/reboot_virtual_machine.rb     |   2 -
 .../compute/remove_from_load_balancer_rule.rb      |   1 -
 .../compute/reset_password_for_virtual_machine.rb  |   2 -
 .../requests/compute/start_virtual_machine.rb      |   2 -
 .../requests/compute/stop_virtual_machine.rb       |   2 -
 .../requests/compute/update_load_balancer_rule.rb  |   4 -
 .../requests/compute/update_virtual_machine.rb     |   2 -
 lib/fog/ninefold/storage.rb                        |   1 -
 lib/fog/opennebula.rb                              |   1 +
 lib/fog/opennebula/README.md                       | 113 +++
 lib/fog/opennebula/compute.rb                      |  57 ++
 lib/fog/opennebula/core.rb                         |   8 +
 lib/fog/opennebula/models/compute/flavor.rb        | 133 ++++
 lib/fog/opennebula/models/compute/flavors.rb       |  35 +
 lib/fog/opennebula/models/compute/group.rb         |  22 +
 lib/fog/opennebula/models/compute/groups.rb        |  34 +
 lib/fog/opennebula/models/compute/interface.rb     |  33 +
 lib/fog/opennebula/models/compute/interfaces.rb    |  12 +
 lib/fog/opennebula/models/compute/network.rb       |  41 +
 lib/fog/opennebula/models/compute/networks.rb      |  21 +
 lib/fog/opennebula/models/compute/server.rb        |  92 +++
 lib/fog/opennebula/models/compute/servers.rb       |  26 +
 .../opennebula/requests/compute/OpenNebulaVNC.rb   | 336 ++++++++
 .../opennebula/requests/compute/get_vnc_console.rb |  47 ++
 lib/fog/opennebula/requests/compute/list_groups.rb |  79 ++
 .../opennebula/requests/compute/list_networks.rb   |  63 ++
 lib/fog/opennebula/requests/compute/list_vms.rb    |  87 ++
 .../opennebula/requests/compute/template_pool.rb   |  93 +++
 lib/fog/opennebula/requests/compute/vm_allocate.rb |  90 +++
 lib/fog/opennebula/requests/compute/vm_destroy.rb  |  22 +
 lib/fog/opennebula/requests/compute/vm_resume.rb   |  37 +
 lib/fog/opennebula/requests/compute/vm_stop.rb     |  22 +
 lib/fog/openstack/compute.rb                       |   5 +-
 lib/fog/openstack/core.rb                          |  11 +-
 lib/fog/openstack/examples/compute/basics.rb       |  26 -
 lib/fog/openstack/examples/identity/basics.rb      |   1 -
 .../examples/network/network_subnets_routers.rb    |   1 -
 lib/fog/openstack/identity.rb                      |   2 -
 lib/fog/openstack/image.rb                         |   1 -
 lib/fog/openstack/metering.rb                      |   5 -
 lib/fog/openstack/models/compute/address.rb        |   4 -
 lib/fog/openstack/models/compute/addresses.rb      |   5 -
 lib/fog/openstack/models/compute/flavors.rb        |   4 -
 lib/fog/openstack/models/compute/host.rb           |   5 -
 lib/fog/openstack/models/compute/hosts.rb          |   4 -
 lib/fog/openstack/models/compute/image.rb          |   4 -
 lib/fog/openstack/models/compute/images.rb         |   4 -
 lib/fog/openstack/models/compute/key_pair.rb       |   6 +-
 lib/fog/openstack/models/compute/key_pairs.rb      |   3 -
 lib/fog/openstack/models/compute/metadata.rb       |   4 -
 lib/fog/openstack/models/compute/metadatum.rb      |   2 -
 lib/fog/openstack/models/compute/security_group.rb |   1 -
 .../models/compute/security_group_rules.rb         |   1 -
 .../openstack/models/compute/security_groups.rb    |   3 -
 lib/fog/openstack/models/compute/server.rb         |  43 +-
 lib/fog/openstack/models/compute/servers.rb        |   4 -
 lib/fog/openstack/models/compute/snapshot.rb       |   6 -
 lib/fog/openstack/models/compute/snapshots.rb      |   2 -
 lib/fog/openstack/models/compute/tenants.rb        |   4 +-
 lib/fog/openstack/models/compute/volume.rb         |   6 -
 lib/fog/openstack/models/compute/volumes.rb        |   2 -
 lib/fog/openstack/models/identity/roles.rb         |   1 -
 lib/fog/openstack/models/identity/user.rb          |   1 -
 lib/fog/openstack/models/image/image.rb            |   4 -
 lib/fog/openstack/models/meta_parent.rb            |   2 -
 lib/fog/openstack/models/metering/resource.rb      |   4 -
 lib/fog/openstack/models/metering/resources.rb     |   2 -
 lib/fog/openstack/models/network/floating_ip.rb    |   7 -
 lib/fog/openstack/models/network/floating_ips.rb   |   2 -
 .../openstack/models/network/lb_health_monitor.rb  |   1 -
 .../openstack/models/network/lb_health_monitors.rb |   2 -
 lib/fog/openstack/models/network/lb_member.rb      |   1 -
 lib/fog/openstack/models/network/lb_members.rb     |   2 -
 lib/fog/openstack/models/network/lb_pool.rb        |   1 -
 lib/fog/openstack/models/network/lb_pools.rb       |   2 -
 lib/fog/openstack/models/network/lb_vip.rb         |   1 -
 lib/fog/openstack/models/network/lb_vips.rb        |   2 -
 lib/fog/openstack/models/network/networks.rb       |   2 -
 lib/fog/openstack/models/network/port.rb           |   1 -
 lib/fog/openstack/models/network/ports.rb          |   2 -
 lib/fog/openstack/models/network/router.rb         |   1 -
 lib/fog/openstack/models/network/routers.rb        |   2 -
 .../models/network/security_group_rules.rb         |   1 -
 .../openstack/models/network/security_groups.rb    |   2 -
 lib/fog/openstack/models/network/subnet.rb         |   1 -
 lib/fog/openstack/models/network/subnets.rb        |   2 -
 lib/fog/openstack/models/storage/directories.rb    |   4 -
 lib/fog/openstack/models/storage/directory.rb      |  12 +-
 lib/fog/openstack/models/storage/file.rb           |   4 -
 lib/fog/openstack/models/storage/files.rb          |   6 +-
 lib/fog/openstack/models/volume/volume.rb          |   7 -
 lib/fog/openstack/models/volume/volumes.rb         |   3 -
 lib/fog/openstack/network.rb                       |   3 +-
 lib/fog/openstack/orchestration.rb                 |   1 -
 .../requests/compute/add_security_group.rb         |   4 -
 .../openstack/requests/compute/allocate_address.rb |   3 -
 .../requests/compute/associate_address.rb          |   3 -
 .../openstack/requests/compute/attach_volume.rb    |   5 -
 .../requests/compute/change_server_password.rb     |   4 -
 .../requests/compute/confirm_resize_server.rb      |   4 -
 lib/fog/openstack/requests/compute/create_image.rb |   5 -
 .../openstack/requests/compute/create_key_pair.rb  |   3 -
 .../requests/compute/create_security_group.rb      |   2 -
 .../requests/compute/create_security_group_rule.rb |   2 -
 .../openstack/requests/compute/create_server.rb    |   7 +-
 .../openstack/requests/compute/create_volume.rb    |   7 +-
 .../requests/compute/create_volume_snapshot.rb     |   3 -
 lib/fog/openstack/requests/compute/delete_image.rb |   7 +-
 .../openstack/requests/compute/delete_key_pair.rb  |   2 -
 lib/fog/openstack/requests/compute/delete_meta.rb  |  12 +-
 .../openstack/requests/compute/delete_metadata.rb  |   5 -
 .../requests/compute/delete_security_group.rb      |   2 -
 .../requests/compute/delete_security_group_rule.rb |   4 +-
 .../openstack/requests/compute/delete_server.rb    |   6 +-
 .../openstack/requests/compute/delete_snapshot.rb  |   3 -
 .../openstack/requests/compute/delete_volume.rb    |   5 -
 .../openstack/requests/compute/detach_volume.rb    |   4 -
 .../requests/compute/disassociate_address.rb       |   2 -
 lib/fog/openstack/requests/compute/get_address.rb  |   3 -
 .../requests/compute/get_console_output.rb         |   4 -
 .../requests/compute/get_flavor_details.rb         |   4 -
 .../openstack/requests/compute/get_host_details.rb |   8 -
 .../requests/compute/get_image_details.rb          |   7 +-
 lib/fog/openstack/requests/compute/get_limits.rb   |   4 -
 lib/fog/openstack/requests/compute/get_metadata.rb |   5 -
 lib/fog/openstack/requests/compute/get_quota.rb    |   5 -
 .../requests/compute/get_quota_defaults.rb         |   5 -
 .../requests/compute/get_security_group.rb         |   2 -
 .../requests/compute/get_security_group_rule.rb    |   2 +-
 .../requests/compute/get_server_details.rb         |   6 +-
 .../requests/compute/get_server_volumes.rb         |  10 +-
 .../requests/compute/get_snapshot_details.rb       |   5 -
 lib/fog/openstack/requests/compute/get_usage.rb    |   2 -
 .../requests/compute/get_volume_details.rb         |   5 -
 .../requests/compute/list_address_pools.rb         |   5 -
 .../openstack/requests/compute/list_addresses.rb   |   6 +-
 .../requests/compute/list_all_addresses.rb         |   3 -
 lib/fog/openstack/requests/compute/list_flavors.rb |   4 -
 .../requests/compute/list_flavors_detail.rb        |   4 -
 lib/fog/openstack/requests/compute/list_hosts.rb   |   5 -
 lib/fog/openstack/requests/compute/list_images.rb  |   4 -
 .../requests/compute/list_images_detail.rb         |   4 -
 .../openstack/requests/compute/list_key_pairs.rb   |   2 -
 .../openstack/requests/compute/list_metadata.rb    |   4 -
 .../requests/compute/list_private_addresses.rb     |   6 +-
 .../requests/compute/list_public_addresses.rb      |   6 +-
 .../requests/compute/list_security_groups.rb       |   2 -
 lib/fog/openstack/requests/compute/list_servers.rb |   4 -
 .../requests/compute/list_servers_detail.rb        |   4 -
 .../openstack/requests/compute/list_snapshots.rb   |   5 -
 lib/fog/openstack/requests/compute/list_usages.rb  |   2 -
 lib/fog/openstack/requests/compute/list_volumes.rb |   4 -
 .../requests/compute/live_migrate_server.rb        |   5 -
 .../openstack/requests/compute/migrate_server.rb   |   4 -
 .../openstack/requests/compute/reboot_server.rb    |   4 -
 .../openstack/requests/compute/rebuild_server.rb   |   5 -
 .../openstack/requests/compute/release_address.rb  |   5 -
 .../requests/compute/remove_security_group.rb      |   4 -
 .../requests/compute/reset_server_state.rb         |   4 -
 .../openstack/requests/compute/resize_server.rb    |   4 -
 .../requests/compute/revert_resize_server.rb       |   4 -
 .../openstack/requests/compute/server_action.rb    |   2 -
 lib/fog/openstack/requests/compute/set_metadata.rb |  12 +-
 lib/fog/openstack/requests/compute/set_tenant.rb   |   2 -
 lib/fog/openstack/requests/compute/start_server.rb |  24 +
 lib/fog/openstack/requests/compute/stop_server.rb  |  24 +
 lib/fog/openstack/requests/compute/update_meta.rb  |  12 +-
 .../openstack/requests/compute/update_metadata.rb  |  12 +-
 lib/fog/openstack/requests/compute/update_quota.rb |   4 -
 .../openstack/requests/compute/update_server.rb    |   6 +-
 lib/fog/openstack/requests/identity/check_token.rb |   5 -
 .../requests/identity/create_ec2_credential.rb     |   1 -
 lib/fog/openstack/requests/identity/create_role.rb |   1 -
 lib/fog/openstack/requests/identity/create_user.rb |   4 -
 .../requests/identity/create_user_role.rb          |   2 -
 .../requests/identity/delete_ec2_credential.rb     |   2 -
 lib/fog/openstack/requests/identity/delete_role.rb |   4 -
 lib/fog/openstack/requests/identity/delete_user.rb |   4 -
 .../requests/identity/delete_user_role.rb          |   3 -
 .../requests/identity/get_ec2_credential.rb        |   1 -
 .../requests/identity/get_tenants_by_id.rb         |   5 -
 .../requests/identity/get_tenants_by_name.rb       |   5 -
 .../openstack/requests/identity/get_user_by_id.rb  |   2 -
 .../requests/identity/get_user_by_name.rb          |   4 -
 .../requests/identity/list_ec2_credentials.rb      |   1 -
 .../requests/identity/list_endpoints_for_token.rb  |   5 -
 lib/fog/openstack/requests/identity/list_roles.rb  |   5 -
 .../requests/identity/list_user_global_roles.rb    |   4 -
 lib/fog/openstack/requests/identity/list_users.rb  |   1 -
 lib/fog/openstack/requests/identity/set_tenant.rb  |   2 -
 lib/fog/openstack/requests/identity/update_user.rb |   4 -
 .../openstack/requests/identity/validate_token.rb  |   5 -
 lib/fog/openstack/requests/image/create_image.rb   |   3 -
 lib/fog/openstack/requests/image/delete_image.rb   |   2 -
 .../requests/image/list_public_images_detailed.rb  |   1 -
 lib/fog/openstack/requests/image/set_tenant.rb     |   2 -
 lib/fog/openstack/requests/image/update_image.rb   |   4 -
 .../openstack/requests/metering/get_resource.rb    |   4 -
 lib/fog/openstack/requests/metering/get_samples.rb |   5 -
 .../openstack/requests/metering/get_statistics.rb  |   5 -
 lib/fog/openstack/requests/metering/list_meters.rb |   5 -
 .../openstack/requests/metering/list_resources.rb  |   4 -
 .../requests/network/add_router_interface.rb       |   2 -
 .../requests/network/associate_floating_ip.rb      |   2 -
 .../network/associate_lb_health_monitor.rb         |   4 +-
 .../requests/network/create_floating_ip.rb         |   2 -
 .../requests/network/create_lb_health_monitor.rb   |   2 -
 .../openstack/requests/network/create_lb_member.rb |   2 -
 .../openstack/requests/network/create_lb_pool.rb   |   2 -
 .../openstack/requests/network/create_lb_vip.rb    |   2 -
 .../openstack/requests/network/create_network.rb   |   2 -
 lib/fog/openstack/requests/network/create_port.rb  |   2 -
 .../openstack/requests/network/create_router.rb    |   2 -
 .../openstack/requests/network/create_subnet.rb    |   2 -
 .../requests/network/delete_floating_ip.rb         |   2 -
 .../requests/network/delete_lb_health_monitor.rb   |   2 -
 .../openstack/requests/network/delete_lb_member.rb |   2 -
 .../openstack/requests/network/delete_lb_pool.rb   |   2 -
 .../openstack/requests/network/delete_lb_vip.rb    |   2 -
 .../openstack/requests/network/delete_network.rb   |   2 -
 lib/fog/openstack/requests/network/delete_port.rb  |   2 -
 lib/fog/openstack/requests/network/delete_quota.rb |   3 -
 .../openstack/requests/network/delete_router.rb    |   2 -
 .../requests/network/delete_security_group_rule.rb |   4 -
 .../openstack/requests/network/delete_subnet.rb    |   2 -
 .../requests/network/disassociate_floating_ip.rb   |   2 -
 .../network/disassociate_lb_health_monitor.rb      |   4 +-
 .../openstack/requests/network/get_floating_ip.rb  |   3 -
 .../requests/network/get_lb_health_monitor.rb      |   2 -
 .../openstack/requests/network/get_lb_member.rb    |   2 -
 lib/fog/openstack/requests/network/get_lb_pool.rb  |   2 -
 .../requests/network/get_lb_pool_stats.rb          |   2 -
 lib/fog/openstack/requests/network/get_lb_vip.rb   |   2 -
 lib/fog/openstack/requests/network/get_network.rb  |   2 -
 lib/fog/openstack/requests/network/get_port.rb     |   2 -
 lib/fog/openstack/requests/network/get_quota.rb    |   5 -
 lib/fog/openstack/requests/network/get_quotas.rb   |   5 -
 lib/fog/openstack/requests/network/get_router.rb   |   2 -
 lib/fog/openstack/requests/network/get_subnet.rb   |   2 -
 .../requests/network/list_floating_ips.rb          |   2 -
 .../requests/network/list_lb_health_monitors.rb    |   2 -
 .../openstack/requests/network/list_lb_members.rb  |   2 -
 .../openstack/requests/network/list_lb_pools.rb    |   2 -
 lib/fog/openstack/requests/network/list_lb_vips.rb |   2 -
 .../openstack/requests/network/list_networks.rb    |   1 -
 lib/fog/openstack/requests/network/list_ports.rb   |   2 -
 lib/fog/openstack/requests/network/list_routers.rb |   2 -
 .../requests/network/list_security_group_rules.rb  |   4 -
 .../requests/network/list_security_groups.rb       |   4 -
 lib/fog/openstack/requests/network/list_subnets.rb |   2 -
 .../requests/network/remove_router_interface.rb    |   2 -
 lib/fog/openstack/requests/network/set_tenant.rb   |   2 -
 .../requests/network/update_lb_health_monitor.rb   |   6 +-
 .../openstack/requests/network/update_lb_member.rb |   6 +-
 .../openstack/requests/network/update_lb_pool.rb   |   6 +-
 .../openstack/requests/network/update_lb_vip.rb    |   6 +-
 .../openstack/requests/network/update_network.rb   |   6 +-
 lib/fog/openstack/requests/network/update_port.rb  |   6 +-
 lib/fog/openstack/requests/network/update_quota.rb |   6 -
 .../openstack/requests/network/update_router.rb    |   3 -
 .../openstack/requests/network/update_subnet.rb    |   6 +-
 .../requests/orchestration/create_stack.rb         |   2 -
 .../requests/orchestration/delete_stack.rb         |   2 -
 .../requests/orchestration/list_stacks.rb          |   2 -
 .../requests/orchestration/update_stack.rb         |   2 -
 lib/fog/openstack/requests/storage/copy_object.rb  |   2 -
 .../openstack/requests/storage/delete_container.rb |   2 -
 .../requests/storage/delete_multiple_objects.rb    |   2 -
 .../openstack/requests/storage/delete_object.rb    |   2 -
 .../requests/storage/delete_static_large_object.rb |   2 -
 .../openstack/requests/storage/get_container.rb    |   2 -
 .../openstack/requests/storage/get_containers.rb   |   2 -
 lib/fog/openstack/requests/storage/get_object.rb   |   2 -
 .../requests/storage/get_object_https_url.rb       |   5 -
 .../openstack/requests/storage/head_container.rb   |   2 -
 .../openstack/requests/storage/head_containers.rb  |   2 -
 lib/fog/openstack/requests/storage/head_object.rb  |   2 -
 .../requests/storage/post_set_meta_temp_url_key.rb |   4 -
 .../openstack/requests/storage/put_container.rb    |   9 +-
 .../requests/storage/put_dynamic_obj_manifest.rb   |   2 -
 lib/fog/openstack/requests/storage/put_object.rb   |   1 -
 .../requests/storage/put_object_manifest.rb        |   2 -
 .../requests/storage/put_static_obj_manifest.rb    |   2 -
 lib/fog/openstack/requests/volume/create_volume.rb |   6 +-
 .../requests/volume/create_volume_snapshot.rb      |   3 -
 .../openstack/requests/volume/delete_snapshot.rb   |   3 -
 lib/fog/openstack/requests/volume/delete_volume.rb |   3 -
 lib/fog/openstack/requests/volume/get_quota.rb     |   5 -
 .../requests/volume/get_quota_defaults.rb          |   5 -
 .../requests/volume/get_snapshot_details.rb        |   5 -
 .../requests/volume/get_volume_details.rb          |   5 -
 .../openstack/requests/volume/list_snapshots.rb    |   5 -
 lib/fog/openstack/requests/volume/list_volumes.rb  |   5 -
 lib/fog/openstack/requests/volume/set_tenant.rb    |   2 -
 lib/fog/openstack/requests/volume/update_quota.rb  |   4 -
 lib/fog/openstack/storage.rb                       |  13 +-
 lib/fog/openstack/volume.rb                        |   3 -
 lib/fog/openvz/compute.rb                          |   7 -
 lib/fog/openvz/core.rb                             |   1 -
 lib/fog/openvz/models/compute/server.rb            |   5 -
 lib/fog/openvz/models/compute/servers.rb           |   3 -
 lib/fog/openvz/requests/compute/compact_server.rb  |   4 -
 lib/fog/openvz/requests/compute/convert_server.rb  |   4 -
 lib/fog/openvz/requests/compute/create_server.rb   |   4 -
 lib/fog/openvz/requests/compute/destroy_server.rb  |   4 -
 lib/fog/openvz/requests/compute/exec2_server.rb    |   4 -
 lib/fog/openvz/requests/compute/exec_server.rb     |   4 -
 .../openvz/requests/compute/get_server_details.rb  |   4 -
 lib/fog/openvz/requests/compute/list_servers.rb    |   4 -
 lib/fog/openvz/requests/compute/mount_server.rb    |   4 -
 .../openvz/requests/compute/quotainit_server.rb    |   4 -
 lib/fog/openvz/requests/compute/quotaoff_server.rb |   4 -
 lib/fog/openvz/requests/compute/quotaon_server.rb  |   4 -
 lib/fog/openvz/requests/compute/restart_server.rb  |   4 -
 lib/fog/openvz/requests/compute/resume_server.rb   |   4 -
 .../openvz/requests/compute/runscript_server.rb    |   4 -
 lib/fog/openvz/requests/compute/set_server.rb      |   5 -
 .../requests/compute/snapshot_delete_server.rb     |   4 -
 .../requests/compute/snapshot_list_server.rb       |   4 -
 .../requests/compute/snapshot_mount_server.rb      |   4 -
 lib/fog/openvz/requests/compute/snapshot_server.rb |   4 -
 .../requests/compute/snapshot_switch_server.rb     |   4 -
 .../requests/compute/snapshot_umount_server.rb     |   4 -
 lib/fog/openvz/requests/compute/start_server.rb    |   4 -
 lib/fog/openvz/requests/compute/status_server.rb   |   4 -
 lib/fog/openvz/requests/compute/stop_server.rb     |   4 -
 lib/fog/openvz/requests/compute/suspend_server.rb  |   4 -
 lib/fog/openvz/requests/compute/umount_server.rb   |   4 -
 lib/fog/ovirt/compute.rb                           |   2 -
 lib/fog/ovirt/core.rb                              |   2 -
 lib/fog/ovirt/models/compute/cluster.rb            |   4 -
 lib/fog/ovirt/models/compute/clusters.rb           |   3 -
 lib/fog/ovirt/models/compute/interface.rb          |   3 -
 lib/fog/ovirt/models/compute/interfaces.rb         |   3 -
 lib/fog/ovirt/models/compute/quota.rb              |   5 -
 lib/fog/ovirt/models/compute/quotas.rb             |   4 -
 lib/fog/ovirt/models/compute/server.rb             |   6 +-
 lib/fog/ovirt/models/compute/servers.rb            |   3 -
 lib/fog/ovirt/models/compute/template.rb           |   4 -
 lib/fog/ovirt/models/compute/templates.rb          |   3 -
 lib/fog/ovirt/models/compute/volume.rb             |   3 -
 lib/fog/ovirt/models/compute/volumes.rb            |   3 -
 lib/fog/ovirt/requests/compute/add_interface.rb    |   3 -
 lib/fog/ovirt/requests/compute/add_volume.rb       |   2 -
 lib/fog/ovirt/requests/compute/create_vm.rb        |   2 -
 lib/fog/ovirt/requests/compute/datacenters.rb      |   4 +-
 .../ovirt/requests/compute/destroy_interface.rb    |   7 +-
 lib/fog/ovirt/requests/compute/destroy_vm.rb       |   7 +-
 lib/fog/ovirt/requests/compute/destroy_volume.rb   |   7 +-
 lib/fog/ovirt/requests/compute/get_cluster.rb      |   1 -
 lib/fog/ovirt/requests/compute/get_quota.rb        |   2 -
 lib/fog/ovirt/requests/compute/get_template.rb     |   1 -
 .../ovirt/requests/compute/get_virtual_machine.rb  |   1 -
 lib/fog/ovirt/requests/compute/list_clusters.rb    |   3 +-
 lib/fog/ovirt/requests/compute/list_networks.rb    |   1 -
 lib/fog/ovirt/requests/compute/list_quotas.rb      |   4 +-
 .../requests/compute/list_template_interfaces.rb   |   3 +-
 .../requests/compute/list_template_volumes.rb      |   3 +-
 lib/fog/ovirt/requests/compute/list_templates.rb   |   3 +-
 .../requests/compute/list_virtual_machines.rb      |   3 +-
 .../ovirt/requests/compute/list_vm_interfaces.rb   |   3 +-
 lib/fog/ovirt/requests/compute/list_vm_volumes.rb  |   3 +-
 lib/fog/ovirt/requests/compute/storage_domains.rb  |   4 +-
 lib/fog/ovirt/requests/compute/update_interface.rb |   7 +-
 lib/fog/ovirt/requests/compute/update_vm.rb        |   2 -
 lib/fog/ovirt/requests/compute/vm_action.rb        |  12 +-
 lib/fog/ovirt/requests/compute/vm_ticket.rb        |   4 -
 lib/fog/rackspace/auto_scale.rb                    |   2 -
 lib/fog/rackspace/block_storage.rb                 |   9 +-
 lib/fog/rackspace/cdn.rb                           |   4 +-
 lib/fog/rackspace/compute.rb                       |   6 +-
 lib/fog/rackspace/compute_v2.rb                    |  10 +-
 lib/fog/rackspace/core.rb                          |   3 +-
 lib/fog/rackspace/databases.rb                     |  12 +-
 lib/fog/rackspace/dns.rb                           |   5 +-
 lib/fog/rackspace/docs/auto_scale.md               |  12 +-
 lib/fog/rackspace/docs/storage.md                  |   8 +-
 lib/fog/rackspace/errors.rb                        |   1 -
 .../rackspace/examples/auto_scale/add_policy.rb    |   2 -
 .../examples/auto_scale/create_scaling_group.rb    |   4 -
 .../examples/auto_scale/delete_scaling_group.rb    |   2 -
 .../examples/auto_scale/delete_webhook.rb          |   2 -
 .../examples/block_storage/create_snapshot.rb      |   2 -
 .../examples/compute_v2/bootstrap_server.rb        |   2 -
 .../rackspace/examples/compute_v2/create_image.rb  |   2 -
 .../rackspace/examples/compute_v2/create_server.rb |   2 -
 .../rackspace/examples/compute_v2/delete_image.rb  |   1 -
 .../rackspace/examples/compute_v2/delete_server.rb |   1 -
 .../examples/compute_v2/server_attachments.rb      |   1 -
 .../examples/compute_v2/server_metadata.rb         |   2 -
 .../rackspace/examples/queues/delete_message.rb    |   1 -
 .../examples/storage/create_cdn_directory.rb       |   1 -
 .../examples/storage/create_private_directory.rb   |   3 -
 .../rackspace/examples/storage/storage_metadata.rb |   6 -
 lib/fog/rackspace/examples/storage/upload_file.rb  |   1 -
 .../examples/storage/upload_large_files.rb         |   2 -
 lib/fog/rackspace/identity.rb                      |   1 -
 lib/fog/rackspace/load_balancers.rb                |  12 +-
 lib/fog/rackspace/mock_data.rb                     |   1 -
 lib/fog/rackspace/models/auto_scale/group.rb       |  17 +-
 .../rackspace/models/auto_scale/group_builder.rb   |   7 +-
 .../rackspace/models/auto_scale/group_config.rb    |   3 -
 lib/fog/rackspace/models/auto_scale/groups.rb      |   1 -
 .../rackspace/models/auto_scale/launch_config.rb   |   7 +-
 lib/fog/rackspace/models/auto_scale/policies.rb    |   2 -
 lib/fog/rackspace/models/auto_scale/policy.rb      |   2 -
 lib/fog/rackspace/models/auto_scale/webhook.rb     |   2 -
 lib/fog/rackspace/models/auto_scale/webhooks.rb    |   1 -
 .../rackspace/models/block_storage/snapshots.rb    |   1 -
 lib/fog/rackspace/models/block_storage/volume.rb   |   8 +-
 .../rackspace/models/block_storage/volume_type.rb  |   1 -
 .../rackspace/models/block_storage/volume_types.rb |   1 -
 lib/fog/rackspace/models/block_storage/volumes.rb  |   1 -
 lib/fog/rackspace/models/compute/flavor.rb         |   4 -
 lib/fog/rackspace/models/compute/flavors.rb        |   4 -
 lib/fog/rackspace/models/compute/image.rb          |   4 -
 lib/fog/rackspace/models/compute/images.rb         |   4 -
 lib/fog/rackspace/models/compute/server.rb         |   5 -
 lib/fog/rackspace/models/compute/servers.rb        |   4 -
 lib/fog/rackspace/models/compute_v2/attachment.rb  |   5 +-
 lib/fog/rackspace/models/compute_v2/attachments.rb |   1 -
 lib/fog/rackspace/models/compute_v2/flavor.rb      |   2 -
 lib/fog/rackspace/models/compute_v2/flavors.rb     |   1 -
 lib/fog/rackspace/models/compute_v2/image.rb       |   1 -
 lib/fog/rackspace/models/compute_v2/images.rb      |   1 -
 lib/fog/rackspace/models/compute_v2/key_pair.rb    |   2 -
 lib/fog/rackspace/models/compute_v2/key_pairs.rb   |   3 -
 lib/fog/rackspace/models/compute_v2/meta_parent.rb |   2 -
 lib/fog/rackspace/models/compute_v2/metadata.rb    |   3 -
 lib/fog/rackspace/models/compute_v2/metadatum.rb   |   2 -
 lib/fog/rackspace/models/compute_v2/server.rb      |  39 +-
 lib/fog/rackspace/models/compute_v2/servers.rb     |   2 -
 .../models/compute_v2/virtual_interface.rb         |   2 -
 lib/fog/rackspace/models/databases/database.rb     |  11 +
 lib/fog/rackspace/models/databases/databases.rb    |   1 -
 lib/fog/rackspace/models/databases/flavors.rb      |   1 -
 lib/fog/rackspace/models/databases/instances.rb    |   1 -
 lib/fog/rackspace/models/databases/user.rb         |   3 +-
 lib/fog/rackspace/models/databases/users.rb        |   1 -
 lib/fog/rackspace/models/dns/callback.rb           |   2 -
 lib/fog/rackspace/models/dns/record.rb             |   2 -
 lib/fog/rackspace/models/dns/records.rb            |   4 +-
 lib/fog/rackspace/models/dns/zone.rb               |   1 -
 lib/fog/rackspace/models/dns/zones.rb              |   4 +-
 lib/fog/rackspace/models/identity/credentials.rb   |   1 -
 lib/fog/rackspace/models/identity/roles.rb         |   1 -
 .../rackspace/models/identity/service_catalog.rb   |   6 +-
 lib/fog/rackspace/models/identity/tenants.rb       |   1 -
 lib/fog/rackspace/models/identity/users.rb         |   1 -
 .../rackspace/models/load_balancers/access_rule.rb |   1 -
 .../models/load_balancers/load_balancer.rb         |  67 +-
 .../models/load_balancers/load_balancers.rb        |   2 -
 lib/fog/rackspace/models/load_balancers/node.rb    |   2 +-
 .../rackspace/models/load_balancers/virtual_ip.rb  |   1 -
 lib/fog/rackspace/models/monitoring/agent_token.rb |   2 -
 .../rackspace/models/monitoring/agent_tokens.rb    |   3 +-
 lib/fog/rackspace/models/monitoring/alarm.rb       |   3 -
 .../rackspace/models/monitoring/alarm_example.rb   |   2 -
 .../rackspace/models/monitoring/alarm_examples.rb  |   2 -
 lib/fog/rackspace/models/monitoring/alarms.rb      |  11 +-
 lib/fog/rackspace/models/monitoring/base.rb        |   1 -
 lib/fog/rackspace/models/monitoring/check.rb       |   3 -
 lib/fog/rackspace/models/monitoring/check_types.rb |   2 -
 lib/fog/rackspace/models/monitoring/checks.rb      |  11 +-
 lib/fog/rackspace/models/monitoring/data_points.rb |   2 -
 lib/fog/rackspace/models/monitoring/entities.rb    |   3 +-
 lib/fog/rackspace/models/monitoring/entity.rb      |   2 -
 lib/fog/rackspace/models/monitoring/metric.rb      |   3 -
 lib/fog/rackspace/models/monitoring/metrics.rb     |   2 -
 .../rackspace/models/monitoring/notification.rb    |   2 -
 .../rackspace/models/monitoring/notifications.rb   |   2 -
 lib/fog/rackspace/models/queues/claim.rb           |   5 +-
 lib/fog/rackspace/models/queues/claims.rb          |   1 -
 lib/fog/rackspace/models/queues/message.rb         |   3 +-
 lib/fog/rackspace/models/queues/messages.rb        |   1 -
 lib/fog/rackspace/models/queues/queue.rb           |   1 -
 lib/fog/rackspace/models/queues/queues.rb          |   1 -
 lib/fog/rackspace/models/storage/directories.rb    |   4 -
 lib/fog/rackspace/models/storage/directory.rb      |   2 -
 lib/fog/rackspace/models/storage/file.rb           |   4 -
 lib/fog/rackspace/models/storage/files.rb          |   5 +-
 lib/fog/rackspace/models/storage/metadata.rb       |  34 +-
 lib/fog/rackspace/monitoring.rb                    |   4 -
 lib/fog/rackspace/queues.rb                        |  13 +-
 .../rackspace/requests/auto_scale/create_group.rb  |   3 -
 .../rackspace/requests/auto_scale/create_policy.rb |   3 -
 .../requests/auto_scale/create_webhook.rb          |   5 +-
 .../rackspace/requests/auto_scale/delete_group.rb  |   1 -
 .../rackspace/requests/auto_scale/delete_policy.rb |   2 -
 .../requests/auto_scale/delete_webhook.rb          |   3 +-
 .../auto_scale/execute_anonymous_webhook.rb        |   1 -
 .../requests/auto_scale/execute_policy.rb          |   1 -
 lib/fog/rackspace/requests/auto_scale/get_group.rb |   3 -
 .../requests/auto_scale/get_group_config.rb        |   3 -
 .../requests/auto_scale/get_group_state.rb         |   4 -
 .../requests/auto_scale/get_launch_config.rb       |   3 -
 .../rackspace/requests/auto_scale/get_policy.rb    |   6 +-
 .../rackspace/requests/auto_scale/get_webhook.rb   |   7 +-
 .../rackspace/requests/auto_scale/list_groups.rb   |   1 -
 .../rackspace/requests/auto_scale/list_policies.rb |   1 -
 .../rackspace/requests/auto_scale/list_webhooks.rb |   4 +-
 .../requests/auto_scale/pause_group_state.rb       |   1 -
 .../requests/auto_scale/resume_group_state.rb      |   1 -
 .../requests/auto_scale/update_group_config.rb     |   2 -
 .../requests/auto_scale/update_launch_config.rb    |   2 -
 .../rackspace/requests/auto_scale/update_policy.rb |   4 +-
 .../requests/auto_scale/update_webhook.rb          |   7 +-
 .../requests/block_storage/create_snapshot.rb      |   1 -
 .../requests/block_storage/create_volume.rb        |   5 +-
 .../requests/block_storage/delete_snapshot.rb      |   1 -
 .../requests/block_storage/delete_volume.rb        |   1 -
 .../requests/block_storage/get_snapshot.rb         |   1 -
 .../rackspace/requests/block_storage/get_volume.rb |   1 -
 .../requests/block_storage/get_volume_type.rb      |   1 -
 .../requests/block_storage/list_snapshots.rb       |   1 -
 .../requests/block_storage/list_volume_types.rb    |   1 -
 .../requests/block_storage/list_volumes.rb         |   1 -
 lib/fog/rackspace/requests/cdn/delete_object.rb    |   2 -
 lib/fog/rackspace/requests/cdn/get_containers.rb   |   4 -
 lib/fog/rackspace/requests/cdn/head_container.rb   |   4 -
 lib/fog/rackspace/requests/cdn/post_container.rb   |   4 -
 lib/fog/rackspace/requests/cdn/put_container.rb    |   4 -
 .../requests/compute/confirm_resized_server.rb     |   4 -
 lib/fog/rackspace/requests/compute/create_image.rb |   4 -
 .../rackspace/requests/compute/create_server.rb    |   4 -
 lib/fog/rackspace/requests/compute/delete_image.rb |   7 +-
 .../rackspace/requests/compute/delete_server.rb    |   6 +-
 .../requests/compute/get_flavor_details.rb         |   4 -
 .../requests/compute/get_image_details.rb          |   2 -
 .../requests/compute/get_server_details.rb         |   6 +-
 .../rackspace/requests/compute/list_addresses.rb   |   6 +-
 lib/fog/rackspace/requests/compute/list_flavors.rb |   4 -
 .../requests/compute/list_flavors_detail.rb        |   4 -
 lib/fog/rackspace/requests/compute/list_images.rb  |   4 -
 .../requests/compute/list_images_detail.rb         |   4 -
 .../requests/compute/list_private_addresses.rb     |   6 +-
 .../requests/compute/list_public_addresses.rb      |   6 +-
 lib/fog/rackspace/requests/compute/list_servers.rb |   4 -
 .../requests/compute/list_servers_detail.rb        |   4 -
 .../rackspace/requests/compute/reboot_server.rb    |   4 -
 .../rackspace/requests/compute/resize_server.rb    |   4 -
 .../requests/compute/revert_resized_server.rb      |   4 -
 .../rackspace/requests/compute/server_action.rb    |   2 -
 .../rackspace/requests/compute/update_server.rb    |   6 +-
 .../rackspace/requests/compute_v2/attach_volume.rb |   1 -
 .../requests/compute_v2/change_server_password.rb  |   1 -
 .../requests/compute_v2/confirm_resize_server.rb   |   1 -
 .../rackspace/requests/compute_v2/create_image.rb  |   1 -
 .../requests/compute_v2/create_keypair.rb          |   2 -
 .../rackspace/requests/compute_v2/create_server.rb |  43 +
 .../compute_v2/create_virtual_interface.rb         |   4 +-
 .../requests/compute_v2/delete_attachment.rb       |   1 -
 .../rackspace/requests/compute_v2/delete_image.rb  |   3 -
 .../requests/compute_v2/delete_keypair.rb          |   2 -
 .../requests/compute_v2/delete_metadata_item.rb    |   3 +-
 .../requests/compute_v2/delete_network.rb          |   2 +-
 .../rackspace/requests/compute_v2/delete_server.rb |   1 -
 .../compute_v2/delete_virtual_interface.rb         |   4 +-
 .../requests/compute_v2/get_attachment.rb          |   3 +-
 .../rackspace/requests/compute_v2/get_flavor.rb    |   3 +-
 lib/fog/rackspace/requests/compute_v2/get_image.rb |   3 +-
 .../rackspace/requests/compute_v2/get_keypair.rb   |   2 -
 .../requests/compute_v2/get_metadata_item.rb       |   3 +-
 .../rackspace/requests/compute_v2/get_network.rb   |   2 +-
 .../rackspace/requests/compute_v2/get_server.rb    |   1 -
 .../requests/compute_v2/list_addresses.rb          |   4 -
 .../compute_v2/list_addresses_by_network.rb        |   4 -
 .../requests/compute_v2/list_attachments.rb        |   1 -
 .../rackspace/requests/compute_v2/list_flavors.rb  |   1 -
 .../requests/compute_v2/list_flavors_detail.rb     |   1 -
 .../rackspace/requests/compute_v2/list_images.rb   |   1 -
 .../requests/compute_v2/list_images_detail.rb      |   1 -
 .../rackspace/requests/compute_v2/list_keypairs.rb |   4 +-
 .../rackspace/requests/compute_v2/list_metadata.rb |   3 +-
 .../rackspace/requests/compute_v2/list_servers.rb  |   1 -
 .../requests/compute_v2/list_virtual_interfaces.rb |   4 +-
 .../rackspace/requests/compute_v2/reboot_server.rb |   1 -
 .../requests/compute_v2/rebuild_server.rb          |   1 -
 .../rackspace/requests/compute_v2/resize_server.rb |   1 -
 .../requests/compute_v2/revert_resize_server.rb    |   1 -
 .../rackspace/requests/compute_v2/set_metadata.rb  |   4 +-
 .../requests/compute_v2/set_metadata_item.rb       |   3 +-
 .../requests/compute_v2/update_metadata.rb         |   3 +-
 .../rackspace/requests/compute_v2/update_server.rb |   1 -
 .../rackspace/requests/databases/create_user.rb    |   3 +-
 .../requests/databases/grant_user_access.rb        |  32 +
 .../requests/databases/revoke_user_access.rb       |  26 +
 lib/fog/rackspace/requests/dns/add_records.rb      |   7 +-
 lib/fog/rackspace/requests/dns/callback.rb         |   1 -
 lib/fog/rackspace/requests/dns/create_domains.rb   |   6 +-
 .../rackspace/requests/dns/list_domain_details.rb  |   5 +-
 lib/fog/rackspace/requests/dns/list_domains.rb     |   1 -
 .../rackspace/requests/dns/list_record_details.rb  |   1 -
 lib/fog/rackspace/requests/dns/list_records.rb     |   1 -
 lib/fog/rackspace/requests/dns/list_subdomains.rb  |   1 -
 lib/fog/rackspace/requests/dns/modify_domain.rb    |   7 +-
 lib/fog/rackspace/requests/dns/modify_record.rb    |   7 +-
 lib/fog/rackspace/requests/dns/remove_domain.rb    |   3 +-
 lib/fog/rackspace/requests/dns/remove_domains.rb   |   5 +-
 lib/fog/rackspace/requests/dns/remove_record.rb    |   1 -
 lib/fog/rackspace/requests/dns/remove_records.rb   |   3 +-
 .../load_balancers/create_load_balancer.rb         | 101 ++-
 .../requests/load_balancers/create_node.rb         |   2 +-
 .../load_balancers/delete_load_balancer.rb         |   2 -
 .../requests/load_balancers/delete_nodes.rb        |   2 +-
 .../requests/load_balancers/get_load_balancer.rb   |  13 +-
 .../load_balancers/get_load_balancer_usage.rb      |   2 +-
 .../rackspace/requests/load_balancers/get_stats.rb |   1 -
 .../rackspace/requests/load_balancers/get_usage.rb |   2 +-
 .../requests/load_balancers/list_load_balancers.rb |   2 +-
 .../requests/load_balancers/set_monitor.rb         |   6 +-
 .../requests/load_balancers/set_ssl_termination.rb |   6 +-
 .../load_balancers/update_load_balancer.rb         |   3 +-
 .../requests/load_balancers/update_node.rb         |   4 +-
 .../requests/monitoring/create_agent_token.rb      |   3 -
 .../rackspace/requests/monitoring/create_alarm.rb  |   4 -
 .../rackspace/requests/monitoring/create_check.rb  |   3 -
 .../rackspace/requests/monitoring/create_entity.rb |   4 -
 .../requests/monitoring/create_notification.rb     |   1 -
 .../requests/monitoring/delete_agent_token.rb      |   4 -
 .../rackspace/requests/monitoring/delete_alarm.rb  |   4 -
 .../rackspace/requests/monitoring/delete_check.rb  |   3 -
 .../rackspace/requests/monitoring/delete_entity.rb |   4 -
 .../requests/monitoring/delete_notification.rb     |   1 -
 .../requests/monitoring/evaluate_alarm_example.rb  |   3 -
 lib/fog/rackspace/requests/monitoring/get_agent.rb |   1 -
 .../requests/monitoring/get_agent_token.rb         |   5 -
 lib/fog/rackspace/requests/monitoring/get_alarm.rb |   6 -
 .../requests/monitoring/get_alarm_example.rb       |   4 -
 lib/fog/rackspace/requests/monitoring/get_check.rb |   4 -
 .../rackspace/requests/monitoring/get_cpus_info.rb |   2 -
 .../requests/monitoring/get_disks_info.rb          |   2 -
 .../rackspace/requests/monitoring/get_entity.rb    |   6 -
 .../requests/monitoring/get_filesystems_info.rb    |   2 -
 .../requests/monitoring/get_logged_in_user_info.rb |   2 -
 .../requests/monitoring/get_memory_info.rb         |   2 -
 .../monitoring/get_network_interfaces_info.rb      |   2 -
 .../requests/monitoring/get_notification.rb        |   4 -
 .../requests/monitoring/get_processes_info.rb      |   2 -
 .../requests/monitoring/get_system_info.rb         |   2 -
 .../requests/monitoring/list_agent_tokens.rb       |   3 -
 .../rackspace/requests/monitoring/list_agents.rb   |   1 -
 .../requests/monitoring/list_alarm_examples.rb     |   3 -
 .../rackspace/requests/monitoring/list_alarms.rb   |  10 +-
 .../requests/monitoring/list_check_types.rb        |   3 -
 .../rackspace/requests/monitoring/list_checks.rb   |   8 +-
 .../requests/monitoring/list_data_points.rb        |   4 -
 .../rackspace/requests/monitoring/list_entities.rb |   2 -
 .../rackspace/requests/monitoring/list_metrics.rb  |   3 -
 .../requests/monitoring/list_notification_plans.rb |   3 -
 .../requests/monitoring/list_notifications.rb      |   4 -
 .../rackspace/requests/monitoring/list_overview.rb |   4 -
 .../rackspace/requests/monitoring/update_alarm.rb  |   4 -
 .../rackspace/requests/monitoring/update_check.rb  |   3 -
 .../rackspace/requests/monitoring/update_entity.rb |   4 -
 .../requests/monitoring/update_notification.rb     |   1 -
 lib/fog/rackspace/requests/queues/create_claim.rb  |   6 +-
 .../rackspace/requests/queues/create_message.rb    |   3 -
 lib/fog/rackspace/requests/queues/create_queue.rb  |   2 -
 lib/fog/rackspace/requests/queues/delete_claim.rb  |   3 -
 .../rackspace/requests/queues/delete_message.rb    |   8 +-
 lib/fog/rackspace/requests/queues/delete_queue.rb  |   4 -
 lib/fog/rackspace/requests/queues/get_claim.rb     |   4 -
 lib/fog/rackspace/requests/queues/get_message.rb   |   4 -
 lib/fog/rackspace/requests/queues/get_queue.rb     |   2 -
 .../rackspace/requests/queues/get_queue_stats.rb   |   4 -
 lib/fog/rackspace/requests/queues/list_messages.rb |   3 -
 lib/fog/rackspace/requests/queues/list_queues.rb   |   2 -
 lib/fog/rackspace/requests/queues/update_claim.rb  |   4 -
 lib/fog/rackspace/requests/storage/copy_object.rb  |   2 -
 .../rackspace/requests/storage/delete_container.rb |   4 -
 .../requests/storage/delete_multiple_objects.rb    |   4 -
 .../rackspace/requests/storage/delete_object.rb    |   4 -
 .../requests/storage/delete_static_large_object.rb |   5 -
 .../rackspace/requests/storage/extract_archive.rb  |   1 -
 .../rackspace/requests/storage/get_container.rb    |   4 -
 .../rackspace/requests/storage/get_containers.rb   |   3 -
 lib/fog/rackspace/requests/storage/get_object.rb   |   4 -
 .../requests/storage/get_object_http_url.rb        |   2 -
 .../requests/storage/get_object_https_url.rb       |   6 +-
 .../rackspace/requests/storage/head_container.rb   |   3 -
 .../rackspace/requests/storage/head_containers.rb  |   8 +-
 lib/fog/rackspace/requests/storage/head_object.rb  |   4 -
 .../requests/storage/post_set_meta_temp_url_key.rb |   4 -
 .../rackspace/requests/storage/put_container.rb    |   4 -
 .../requests/storage/put_dynamic_obj_manifest.rb   |   4 -
 lib/fog/rackspace/requests/storage/put_object.rb   |   3 -
 .../requests/storage/put_object_manifest.rb        |   2 -
 .../requests/storage/put_static_obj_manifest.rb    |   6 -
 lib/fog/rackspace/service.rb                       |   2 -
 lib/fog/rackspace/storage.rb                       |  11 +-
 lib/fog/rage4.rb                                   |   1 -
 lib/fog/rage4/core.rb                              |   2 -
 lib/fog/rage4/dns.rb                               |   2 -
 lib/fog/rage4/models/dns/record.rb                 |   6 -
 lib/fog/rage4/models/dns/records.rb                |   4 -
 lib/fog/rage4/models/dns/zone.rb                   |   4 -
 lib/fog/rage4/models/dns/zones.rb                  |   4 -
 lib/fog/rage4/requests/dns/create_domain.rb        |   4 -
 lib/fog/rage4/requests/dns/create_domain_vanity.rb |   4 -
 lib/fog/rage4/requests/dns/create_record.rb        |   8 -
 .../rage4/requests/dns/create_reverse_domain_4.rb  |   4 -
 lib/fog/rage4/requests/dns/delete_domain.rb        |   4 -
 lib/fog/rage4/requests/dns/delete_record.rb        |   4 -
 lib/fog/rage4/requests/dns/get_domain.rb           |   4 -
 lib/fog/rage4/requests/dns/get_domain_by_name.rb   |   4 -
 lib/fog/rage4/requests/dns/list_domains.rb         |   5 -
 lib/fog/rage4/requests/dns/list_geo_regions.rb     |   2 -
 lib/fog/rage4/requests/dns/list_record_types.rb    |   2 -
 lib/fog/rage4/requests/dns/list_records.rb         |   3 -
 lib/fog/rage4/requests/dns/set_record_failover.rb  |   4 -
 lib/fog/rage4/requests/dns/show_current_usage.rb   |   4 -
 lib/fog/rage4/requests/dns/show_global_usage.rb    |   4 -
 lib/fog/rage4/requests/dns/update_domain.rb        |   4 -
 lib/fog/rage4/requests/dns/update_record.rb        |   7 -
 lib/fog/riakcs/core.rb                             |   2 -
 lib/fog/riakcs/provisioning.rb                     |   2 -
 .../riakcs/requests/provisioning/create_user.rb    |   2 +-
 lib/fog/riakcs/usage.rb                            |   2 -
 lib/fog/sakuracloud.rb                             |  16 -
 lib/fog/sakuracloud/compute.rb                     |  67 --
 lib/fog/sakuracloud/docs/getting_started.md        | 450 -----------
 lib/fog/sakuracloud/models/compute/plan.rb         |  18 -
 lib/fog/sakuracloud/models/compute/plans.rb        |  25 -
 lib/fog/sakuracloud/models/compute/server.rb       |  42 -
 lib/fog/sakuracloud/models/compute/servers.rb      |  65 --
 lib/fog/sakuracloud/models/compute/ssh_key.rb      |  15 -
 lib/fog/sakuracloud/models/compute/ssh_keys.rb     |  25 -
 lib/fog/sakuracloud/models/compute/zone.rb         |  15 -
 lib/fog/sakuracloud/models/compute/zones.rb        |  25 -
 lib/fog/sakuracloud/models/volume/archive.rb       |  16 -
 lib/fog/sakuracloud/models/volume/archives.rb      |  25 -
 lib/fog/sakuracloud/models/volume/disk.rb          |  38 -
 lib/fog/sakuracloud/models/volume/disks.rb         |  30 -
 lib/fog/sakuracloud/models/volume/plan.rb          |  14 -
 lib/fog/sakuracloud/models/volume/plans.rb         |  25 -
 .../sakuracloud/requests/compute/boot_server.rb    |  32 -
 .../sakuracloud/requests/compute/create_server.rb  |  44 --
 .../sakuracloud/requests/compute/delete_server.rb  |  34 -
 lib/fog/sakuracloud/requests/compute/list_plans.rb |  46 --
 .../sakuracloud/requests/compute/list_servers.rb   |  44 --
 .../sakuracloud/requests/compute/list_ssh_keys.rb  |  40 -
 lib/fog/sakuracloud/requests/compute/list_zones.rb |  40 -
 .../sakuracloud/requests/compute/stop_server.rb    |  38 -
 lib/fog/sakuracloud/requests/volume/attach_disk.rb |  32 -
 .../sakuracloud/requests/volume/configure_disk.rb  |  36 -
 lib/fog/sakuracloud/requests/volume/create_disk.rb |  44 --
 lib/fog/sakuracloud/requests/volume/delete_disk.rb |  31 -
 .../sakuracloud/requests/volume/list_archives.rb   |  46 --
 lib/fog/sakuracloud/requests/volume/list_disks.rb  |  50 --
 lib/fog/sakuracloud/requests/volume/list_plans.rb  |  40 -
 lib/fog/sakuracloud/volume.rb                      |  92 ---
 lib/fog/schema/data_validator.rb                   | 154 ----
 lib/fog/serverlove/compute.rb                      |   8 +-
 lib/fog/serverlove/core.rb                         |   1 -
 lib/fog/serverlove/models/compute/image.rb         |   3 -
 lib/fog/serverlove/models/compute/images.rb        |   4 -
 lib/fog/serverlove/models/compute/server.rb        |   2 -
 lib/fog/serverlove/models/compute/servers.rb       |   4 -
 .../serverlove/requests/compute/create_image.rb    |   4 -
 .../serverlove/requests/compute/create_server.rb   |   4 -
 .../serverlove/requests/compute/destroy_image.rb   |   2 -
 .../serverlove/requests/compute/destroy_server.rb  |   2 -
 lib/fog/serverlove/requests/compute/get_image.rb   |   2 -
 lib/fog/serverlove/requests/compute/get_images.rb  |   2 -
 lib/fog/serverlove/requests/compute/get_server.rb  |   2 -
 lib/fog/serverlove/requests/compute/get_servers.rb |   2 -
 .../requests/compute/load_standard_image.rb        |   2 -
 .../serverlove/requests/compute/reset_server.rb    |   2 -
 .../serverlove/requests/compute/shutdown_server.rb |   2 -
 .../serverlove/requests/compute/start_server.rb    |   2 -
 lib/fog/serverlove/requests/compute/stop_server.rb |   2 -
 .../serverlove/requests/compute/update_image.rb    |   2 -
 .../serverlove/requests/compute/update_server.rb   |   2 -
 lib/fog/storm_on_demand/account.rb                 |   6 -
 lib/fog/storm_on_demand/billing.rb                 |   5 -
 lib/fog/storm_on_demand/compute.rb                 |   5 -
 lib/fog/storm_on_demand/core.rb                    |   3 -
 lib/fog/storm_on_demand/dns.rb                     |   5 -
 lib/fog/storm_on_demand/models/account/token.rb    |   3 -
 lib/fog/storm_on_demand/models/account/tokens.rb   |   3 -
 lib/fog/storm_on_demand/models/billing/invoice.rb  |   3 -
 lib/fog/storm_on_demand/models/billing/invoices.rb |   3 -
 lib/fog/storm_on_demand/models/billing/payment.rb  |   4 -
 lib/fog/storm_on_demand/models/billing/payments.rb |   2 -
 lib/fog/storm_on_demand/models/compute/config.rb   |   2 -
 lib/fog/storm_on_demand/models/compute/configs.rb  |   4 -
 lib/fog/storm_on_demand/models/compute/image.rb    |   4 -
 lib/fog/storm_on_demand/models/compute/images.rb   |   4 -
 .../storm_on_demand/models/compute/notification.rb |   3 -
 .../models/compute/notifications.rb                |   3 -
 lib/fog/storm_on_demand/models/compute/product.rb  |   3 -
 lib/fog/storm_on_demand/models/compute/products.rb |   3 -
 lib/fog/storm_on_demand/models/compute/server.rb   |   3 -
 lib/fog/storm_on_demand/models/compute/servers.rb  |   4 -
 lib/fog/storm_on_demand/models/compute/template.rb |   2 -
 .../storm_on_demand/models/compute/templates.rb    |   4 -
 lib/fog/storm_on_demand/models/dns/domain.rb       |   3 -
 lib/fog/storm_on_demand/models/dns/domains.rb      |   3 -
 lib/fog/storm_on_demand/models/dns/record.rb       |   3 -
 lib/fog/storm_on_demand/models/dns/records.rb      |   3 -
 lib/fog/storm_on_demand/models/dns/reverse.rb      |   2 -
 lib/fog/storm_on_demand/models/dns/reverses.rb     |   5 +-
 lib/fog/storm_on_demand/models/dns/zone.rb         |   2 -
 lib/fog/storm_on_demand/models/dns/zones.rb        |   3 -
 .../storm_on_demand/models/monitoring/bandwidth.rb |   3 -
 .../models/monitoring/bandwidths.rb                |   2 -
 lib/fog/storm_on_demand/models/monitoring/load.rb  |   3 -
 lib/fog/storm_on_demand/models/monitoring/loads.rb |   3 -
 .../models/monitoring/monitor_service.rb           |   3 -
 .../models/monitoring/monitor_services.rb          |   2 -
 lib/fog/storm_on_demand/models/network/balancer.rb |   4 -
 .../storm_on_demand/models/network/balancers.rb    |   4 -
 lib/fog/storm_on_demand/models/network/firewall.rb |   2 -
 .../storm_on_demand/models/network/firewalls.rb    |   1 -
 .../storm_on_demand/models/network/network_ip.rb   |   2 -
 .../storm_on_demand/models/network/network_ips.rb  |   2 -
 lib/fog/storm_on_demand/models/network/pool.rb     |   2 -
 lib/fog/storm_on_demand/models/network/pools.rb    |   2 -
 .../storm_on_demand/models/network/private_ip.rb   |   3 -
 .../storm_on_demand/models/network/private_ips.rb  |   4 -
 lib/fog/storm_on_demand/models/network/ruleset.rb  |   2 -
 lib/fog/storm_on_demand/models/network/rulesets.rb |   1 -
 lib/fog/storm_on_demand/models/network/zone.rb     |   2 -
 lib/fog/storm_on_demand/models/network/zones.rb    |   2 -
 lib/fog/storm_on_demand/models/storage/cluster.rb  |   3 -
 lib/fog/storm_on_demand/models/storage/clusters.rb |   3 -
 lib/fog/storm_on_demand/models/storage/volume.rb   |   3 -
 lib/fog/storm_on_demand/models/storage/volumes.rb  |   3 -
 lib/fog/storm_on_demand/models/support/alert.rb    |   3 -
 lib/fog/storm_on_demand/models/support/alerts.rb   |   3 -
 lib/fog/storm_on_demand/models/support/ticket.rb   |   4 -
 lib/fog/storm_on_demand/models/support/tickets.rb  |   3 -
 lib/fog/storm_on_demand/models/vpn/vpn.rb          |   2 -
 lib/fog/storm_on_demand/models/vpn/vpns.rb         |   1 -
 lib/fog/storm_on_demand/monitoring.rb              |   6 -
 lib/fog/storm_on_demand/network.rb                 |   5 -
 .../requests/account/create_token.rb               |   2 -
 .../requests/account/expire_token.rb               |   2 -
 .../requests/billing/get_invoice.rb                |   2 -
 .../requests/billing/list_invoices.rb              |   2 -
 .../requests/billing/make_payment.rb               |   2 -
 .../requests/billing/next_invoice.rb               |   2 -
 .../requests/compute/clone_server.rb               |   2 -
 .../requests/compute/create_image.rb               |   2 -
 .../requests/compute/create_server.rb              |   2 -
 .../requests/compute/current_notifications.rb      |   2 -
 .../requests/compute/delete_image.rb               |   2 -
 .../requests/compute/delete_server.rb              |   2 -
 .../requests/compute/get_config_details.rb         |   2 -
 .../requests/compute/get_image_details.rb          |   2 -
 .../requests/compute/get_notification.rb           |   2 -
 .../requests/compute/get_product.rb                |   2 -
 .../requests/compute/get_product_code.rb           |   2 -
 .../requests/compute/get_product_price.rb          |   2 -
 .../requests/compute/get_product_starting_price.rb |   2 -
 .../storm_on_demand/requests/compute/get_server.rb |   2 -
 .../requests/compute/get_template_details.rb       |   2 -
 .../requests/compute/list_configs.rb               |   2 -
 .../requests/compute/list_images.rb                |   2 -
 .../requests/compute/list_notifications.rb         |   2 -
 .../requests/compute/list_products.rb              |   2 -
 .../requests/compute/list_servers.rb               |   2 -
 .../requests/compute/list_templates.rb             |   2 -
 .../requests/compute/reboot_server.rb              |   2 -
 .../requests/compute/resize_server.rb              |   2 -
 .../requests/compute/resolve_notification.rb       |   2 -
 .../requests/compute/restore_image.rb              |   2 -
 .../requests/compute/restore_template.rb           |   2 -
 .../requests/compute/server_history.rb             |   2 -
 .../requests/compute/server_status.rb              |   2 -
 .../requests/compute/shutdown_server.rb            |   2 -
 .../requests/compute/start_server.rb               |   2 -
 .../requests/compute/update_image.rb               |   2 -
 .../requests/compute/update_server.rb              |   2 -
 .../requests/dns/check_zone_delegation.rb          |   2 -
 .../storm_on_demand/requests/dns/create_record.rb  |   2 -
 .../requests/dns/create_record_region.rb           |   2 -
 .../storm_on_demand/requests/dns/create_zone.rb    |   2 -
 .../storm_on_demand/requests/dns/delete_record.rb  |   2 -
 .../requests/dns/delete_record_region.rb           |   2 -
 .../storm_on_demand/requests/dns/delete_reverse.rb |   2 -
 .../storm_on_demand/requests/dns/delete_zone.rb    |   2 -
 lib/fog/storm_on_demand/requests/dns/get_record.rb |   2 -
 lib/fog/storm_on_demand/requests/dns/get_zone.rb   |   2 -
 .../storm_on_demand/requests/dns/list_domains.rb   |   2 -
 .../storm_on_demand/requests/dns/list_records.rb   |   2 -
 lib/fog/storm_on_demand/requests/dns/list_zones.rb |   2 -
 .../storm_on_demand/requests/dns/renew_domain.rb   |   2 -
 .../storm_on_demand/requests/dns/update_record.rb  |   2 -
 .../requests/dns/update_record_region.rb           |   2 -
 .../storm_on_demand/requests/dns/update_reverse.rb |   2 -
 .../storm_on_demand/requests/dns/update_zone.rb    |   2 -
 .../requests/monitoring/get_bandwidth_graph.rb     |   2 -
 .../requests/monitoring/get_bandwidth_stats.rb     |   2 -
 .../requests/monitoring/get_load_graph.rb          |   2 -
 .../requests/monitoring/get_load_stats.rb          |   2 -
 .../requests/monitoring/get_service.rb             |   2 -
 .../requests/monitoring/get_service_status.rb      |   2 -
 .../requests/monitoring/monitoring_ips.rb          |   2 -
 .../requests/monitoring/update_service.rb          |   2 -
 .../requests/network/add_balancer_node.rb          |   2 -
 .../requests/network/add_balancer_service.rb       |   2 -
 .../requests/network/add_ip_to_server.rb           |   2 -
 .../network/attach_server_to_private_ip.rb         |   2 -
 .../requests/network/check_balancer_available.rb   |   2 -
 .../requests/network/check_server_attached.rb      |   2 -
 .../requests/network/create_balancer.rb            |   2 -
 .../requests/network/create_pool.rb                |   2 -
 .../requests/network/create_ruleset.rb             |   2 -
 .../requests/network/delete_balancer.rb            |   2 -
 .../requests/network/delete_pool.rb                |   2 -
 .../network/detach_server_from_private_ip.rb       |   2 -
 .../requests/network/get_assignments.rb            |   2 -
 .../requests/network/get_balancer_details.rb       |   2 -
 .../network/get_balancer_possible_nodes.rb         |   2 -
 .../requests/network/get_balancer_strategies.rb    |   2 -
 .../requests/network/get_firewall.rb               |   2 -
 .../requests/network/get_firewall_basic_options.rb |   2 -
 .../requests/network/get_firewall_rules.rb         |   2 -
 .../requests/network/get_ip_details.rb             |   2 -
 .../storm_on_demand/requests/network/get_pool.rb   |   2 -
 .../requests/network/get_private_ip.rb             |   2 -
 .../requests/network/get_ruleset.rb                |   2 -
 .../storm_on_demand/requests/network/get_zone.rb   |   2 -
 .../requests/network/list_balancers.rb             |   2 -
 .../requests/network/list_ip_public_accounts.rb    |   2 -
 .../requests/network/list_network_ips.rb           |   2 -
 .../requests/network/list_network_public_ips.rb    |   2 -
 .../requests/network/list_private_ips.rb           |   2 -
 .../requests/network/list_rulesets.rb              |   2 -
 .../storm_on_demand/requests/network/list_zones.rb |   2 -
 .../requests/network/remove_balancer_node.rb       |   2 -
 .../requests/network/remove_balancer_service.rb    |   2 -
 .../requests/network/remove_ip_from_server.rb      |   2 -
 .../requests/network/request_new_ips.rb            |   2 -
 .../requests/network/set_default_zone.rb           |   2 -
 .../requests/network/update_balancer.rb            |   2 -
 .../requests/network/update_firewall.rb            |   2 -
 .../requests/network/update_pool.rb                |   2 -
 .../requests/network/update_ruleset.rb             |   2 -
 .../requests/storage/attach_volume_to_server.rb    |   2 -
 .../requests/storage/create_volume.rb              |   2 -
 .../requests/storage/delete_volume.rb              |   2 -
 .../requests/storage/detach_volume_from_server.rb  |   2 -
 .../storm_on_demand/requests/storage/get_volume.rb |   2 -
 .../requests/storage/list_clusters.rb              |   2 -
 .../requests/storage/list_volumes.rb               |   2 -
 .../requests/storage/resize_volume.rb              |   2 -
 .../requests/storage/update_volume.rb              |   2 -
 .../requests/support/add_feedback.rb               |   2 -
 .../requests/support/add_transaction_feedback.rb   |   2 -
 .../requests/support/authenticate.rb               |   2 -
 .../requests/support/close_ticket.rb               |   2 -
 .../requests/support/create_ticket.rb              |   2 -
 .../requests/support/get_active_alert.rb           |   2 -
 .../requests/support/get_ticket_details.rb         |   2 -
 .../requests/support/list_ticket_types.rb          |   2 -
 .../requests/support/list_tickets.rb               |   2 -
 .../requests/support/reopen_ticket.rb              |   2 -
 .../requests/support/reply_ticket.rb               |   2 -
 lib/fog/storm_on_demand/requests/vpn/create_vpn.rb |   2 -
 lib/fog/storm_on_demand/requests/vpn/get_vpn.rb    |   2 -
 .../storm_on_demand/requests/vpn/list_vpn_users.rb |   2 -
 lib/fog/storm_on_demand/requests/vpn/update_vpn.rb |   2 -
 lib/fog/storm_on_demand/shared.rb                  |   3 +-
 lib/fog/storm_on_demand/storage.rb                 |   5 -
 lib/fog/storm_on_demand/support.rb                 |   6 -
 lib/fog/storm_on_demand/vpn.rb                     |   4 -
 lib/fog/terremark/models/shared/address.rb         |   4 -
 lib/fog/terremark/models/shared/addresses.rb       |   4 -
 lib/fog/terremark/models/shared/image.rb           |   3 -
 lib/fog/terremark/models/shared/images.rb          |   7 -
 lib/fog/terremark/models/shared/internetservice.rb |   5 +-
 .../terremark/models/shared/internetservices.rb    |   3 -
 lib/fog/terremark/models/shared/network.rb         |   4 -
 lib/fog/terremark/models/shared/networks.rb        |   4 -
 lib/fog/terremark/models/shared/nodeservice.rb     |   6 +-
 lib/fog/terremark/models/shared/nodeservices.rb    |   3 -
 lib/fog/terremark/models/shared/server.rb          |   7 +-
 lib/fog/terremark/models/shared/servers.rb         |   4 -
 lib/fog/terremark/models/shared/task.rb            |   4 -
 lib/fog/terremark/models/shared/tasks.rb           |   6 +-
 lib/fog/terremark/models/shared/vdc.rb             |   4 -
 lib/fog/terremark/models/shared/vdcs.rb            |   4 -
 lib/fog/terremark/parser.rb                        |   2 -
 lib/fog/terremark/parsers/shared/get_catalog.rb    |   4 -
 .../terremark/parsers/shared/get_catalog_item.rb   |   4 -
 .../parsers/shared/get_internet_services.rb        |   3 -
 lib/fog/terremark/parsers/shared/get_keys_list.rb  |   3 -
 .../terremark/parsers/shared/get_network_ips.rb    |   5 -
 .../terremark/parsers/shared/get_node_services.rb  |   4 -
 .../terremark/parsers/shared/get_organization.rb   |   3 -
 .../terremark/parsers/shared/get_organizations.rb  |   2 -
 lib/fog/terremark/parsers/shared/get_public_ips.rb |   4 -
 lib/fog/terremark/parsers/shared/get_tasks_list.rb |   4 -
 .../terremark/parsers/shared/get_vapp_template.rb  |   4 -
 lib/fog/terremark/parsers/shared/get_vdc.rb        |   4 -
 .../parsers/shared/instantiate_vapp_template.rb    |   4 -
 .../terremark/parsers/shared/internet_service.rb   |   4 -
 lib/fog/terremark/parsers/shared/network.rb        |   8 +-
 lib/fog/terremark/parsers/shared/node_service.rb   |   4 -
 lib/fog/terremark/parsers/shared/public_ip.rb      |   4 -
 lib/fog/terremark/parsers/shared/task.rb           |   4 -
 lib/fog/terremark/parsers/shared/vapp.rb           |   5 -
 .../requests/shared/add_internet_service.rb        |   4 +-
 .../terremark/requests/shared/add_node_service.rb  |   4 +-
 .../terremark/requests/shared/configure_vapp.rb    |   2 -
 .../requests/shared/create_internet_service.rb     |   3 +-
 .../requests/shared/delete_internet_service.rb     |   2 -
 .../requests/shared/delete_node_service.rb         |   2 -
 .../terremark/requests/shared/delete_public_ip.rb  |   2 -
 lib/fog/terremark/requests/shared/delete_vapp.rb   |   2 -
 lib/fog/terremark/requests/shared/deploy_vapp.rb   |   2 -
 lib/fog/terremark/requests/shared/get_catalog.rb   |   2 -
 .../terremark/requests/shared/get_catalog_item.rb  |   2 -
 .../requests/shared/get_internet_services.rb       |   2 -
 lib/fog/terremark/requests/shared/get_keys_list.rb |   2 -
 lib/fog/terremark/requests/shared/get_network.rb   |   6 +-
 .../terremark/requests/shared/get_network_ips.rb   |   3 -
 .../terremark/requests/shared/get_node_services.rb |   2 -
 .../terremark/requests/shared/get_organization.rb  |   6 +-
 .../terremark/requests/shared/get_organizations.rb |   4 -
 lib/fog/terremark/requests/shared/get_public_ip.rb |   2 -
 .../terremark/requests/shared/get_public_ips.rb    |   6 +-
 lib/fog/terremark/requests/shared/get_task.rb      |   2 -
 .../terremark/requests/shared/get_tasks_list.rb    |   3 -
 lib/fog/terremark/requests/shared/get_vapp.rb      |   2 -
 .../terremark/requests/shared/get_vapp_template.rb |   2 -
 lib/fog/terremark/requests/shared/get_vdc.rb       |   6 +-
 .../requests/shared/instantiate_vapp_template.rb   |   2 -
 lib/fog/terremark/requests/shared/power_off.rb     |   2 -
 lib/fog/terremark/requests/shared/power_on.rb      |   2 -
 lib/fog/terremark/requests/shared/power_reset.rb   |   2 -
 .../terremark/requests/shared/power_shutdown.rb    |   2 -
 lib/fog/terremark/shared.rb                        |   7 -
 lib/fog/terremark/vcloud.rb                        |   6 -
 lib/fog/vcloud/compute.rb                          |  11 -
 lib/fog/vcloud/core.rb                             |   2 -
 lib/fog/vcloud/examples/README.md                  |   2 +-
 lib/fog/vcloud/models/compute/catalog.rb           |   2 -
 lib/fog/vcloud/models/compute/catalog_item.rb      |   1 -
 lib/fog/vcloud/models/compute/catalog_items.rb     |   2 -
 lib/fog/vcloud/models/compute/catalogs.rb          |   6 +-
 lib/fog/vcloud/models/compute/ip.rb                |   2 -
 lib/fog/vcloud/models/compute/ips.rb               |   2 -
 lib/fog/vcloud/models/compute/network.rb           |   1 -
 lib/fog/vcloud/models/compute/networks.rb          |   4 +-
 lib/fog/vcloud/models/compute/organization.rb      |   2 -
 lib/fog/vcloud/models/compute/organizations.rb     |   2 -
 lib/fog/vcloud/models/compute/server.rb            |  14 +-
 lib/fog/vcloud/models/compute/servers.rb           |   3 -
 lib/fog/vcloud/models/compute/tags.rb              |   2 -
 lib/fog/vcloud/models/compute/task.rb              |   2 -
 lib/fog/vcloud/models/compute/tasks.rb             |   3 -
 lib/fog/vcloud/models/compute/vapp.rb              |   1 -
 lib/fog/vcloud/models/compute/vapps.rb             |   3 -
 lib/fog/vcloud/models/compute/vdc.rb               |   2 -
 lib/fog/vcloud/models/compute/vdcs.rb              |   2 -
 lib/fog/vcloud/requests/compute/clone_vapp.rb      |   5 +-
 .../vcloud/requests/compute/configure_metadata.rb  |   4 +-
 .../vcloud/requests/compute/configure_network.rb   |   4 +-
 .../requests/compute/configure_network_ip.rb       |   2 +-
 lib/fog/vcloud/requests/compute/configure_node.rb  |   2 -
 .../requests/compute/configure_org_network.rb      |   4 +-
 lib/fog/vcloud/requests/compute/configure_vapp.rb  |   5 +-
 lib/fog/vcloud/requests/compute/configure_vm.rb    |   5 +-
 .../vcloud/requests/compute/configure_vm_cpus.rb   |   3 -
 .../compute/configure_vm_customization_script.rb   |   3 -
 .../vcloud/requests/compute/configure_vm_disks.rb  |   9 +-
 .../vcloud/requests/compute/configure_vm_memory.rb |   3 -
 .../compute/configure_vm_name_description.rb       |   4 -
 .../requests/compute/configure_vm_network.rb       |   3 -
 .../requests/compute/configure_vm_password.rb      |   3 -
 lib/fog/vcloud/requests/compute/delete_metadata.rb |   1 -
 lib/fog/vcloud/requests/compute/delete_node.rb     |   1 -
 lib/fog/vcloud/requests/compute/delete_vapp.rb     |   1 -
 lib/fog/vcloud/requests/compute/get_catalog.rb     |   1 -
 .../vcloud/requests/compute/get_catalog_item.rb    |   1 -
 .../requests/compute/get_customization_options.rb  |   1 -
 lib/fog/vcloud/requests/compute/get_metadata.rb    |   1 -
 lib/fog/vcloud/requests/compute/get_network.rb     |   1 -
 .../requests/compute/get_network_extensions.rb     |   2 -
 lib/fog/vcloud/requests/compute/get_network_ip.rb  |   2 -
 lib/fog/vcloud/requests/compute/get_network_ips.rb |   2 -
 .../vcloud/requests/compute/get_organization.rb    |   2 -
 lib/fog/vcloud/requests/compute/get_server.rb      |   1 -
 lib/fog/vcloud/requests/compute/get_task.rb        |   2 -
 lib/fog/vcloud/requests/compute/get_task_list.rb   |   2 -
 lib/fog/vcloud/requests/compute/get_vapp.rb        |   1 -
 .../vcloud/requests/compute/get_vapp_template.rb   |   2 -
 lib/fog/vcloud/requests/compute/get_vdc.rb         |   1 -
 lib/fog/vcloud/requests/compute/get_vm_disks.rb    |   1 -
 lib/fog/vcloud/requests/compute/get_vm_memory.rb   |   1 -
 .../requests/compute/instantiate_vapp_template.rb  |   4 +-
 lib/fog/vcloud/requests/compute/login.rb           |   4 -
 lib/fog/vcloud/requests/compute/power_off.rb       |   1 -
 lib/fog/vcloud/requests/compute/power_on.rb        |   2 -
 lib/fog/vcloud/requests/compute/power_reset.rb     |   2 -
 lib/fog/vcloud/requests/compute/power_shutdown.rb  |   2 -
 lib/fog/vcloud_director/README.md                  |   1 +
 lib/fog/vcloud_director/compute.rb                 | 109 ++-
 lib/fog/vcloud_director/core.rb                    |   2 +-
 .../vcloud_director/generators/compute/disks.rb    |   2 +-
 .../compute/edge_gateway_service_configuration.rb  |  84 +-
 .../generators/compute/org_vdc_network.rb          |   3 -
 lib/fog/vcloud_director/generators/compute/vapp.rb |   2 -
 lib/fog/vcloud_director/generators/compute/vm.rb   |   1 -
 lib/fog/vcloud_director/models/compute/catalog.rb  |   3 -
 .../vcloud_director/models/compute/catalog_item.rb |   3 -
 .../models/compute/catalog_items.rb                |   1 -
 lib/fog/vcloud_director/models/compute/catalogs.rb |   2 -
 .../vcloud_director/models/compute/custom_field.rb |  18 +
 .../models/compute/custom_fields.rb                |  67 ++
 lib/fog/vcloud_director/models/compute/disk.rb     |   3 -
 lib/fog/vcloud_director/models/compute/disks.rb    |   4 +-
 lib/fog/vcloud_director/models/compute/media.rb    |   3 -
 lib/fog/vcloud_director/models/compute/medias.rb   |   4 +-
 lib/fog/vcloud_director/models/compute/network.rb  |   3 -
 lib/fog/vcloud_director/models/compute/networks.rb |   9 +-
 .../vcloud_director/models/compute/organization.rb |   4 -
 .../models/compute/organizations.rb                |   2 -
 lib/fog/vcloud_director/models/compute/tag.rb      |   3 -
 lib/fog/vcloud_director/models/compute/tags.rb     |   4 +-
 lib/fog/vcloud_director/models/compute/task.rb     |   4 -
 lib/fog/vcloud_director/models/compute/tasks.rb    |   9 +-
 lib/fog/vcloud_director/models/compute/vapp.rb     |   8 +-
 lib/fog/vcloud_director/models/compute/vapps.rb    |  10 +-
 lib/fog/vcloud_director/models/compute/vdc.rb      |   3 -
 lib/fog/vcloud_director/models/compute/vdcs.rb     |   9 +-
 lib/fog/vcloud_director/models/compute/vm.rb       |   3 -
 .../models/compute/vm_customization.rb             |   3 -
 .../models/compute/vm_customizations.rb            |   2 -
 .../vcloud_director/models/compute/vm_network.rb   |   3 -
 .../vcloud_director/models/compute/vm_networks.rb  |   2 -
 lib/fog/vcloud_director/models/compute/vms.rb      |  11 +-
 lib/fog/vcloud_director/parsers/compute/disks.rb   |   4 -
 .../vcloud_director/parsers/compute/metadata.rb    |   2 -
 lib/fog/vcloud_director/parsers/compute/network.rb |   2 -
 lib/fog/vcloud_director/parsers/compute/vm.rb      |   5 -
 .../parsers/compute/vm_customization.rb            |   4 -
 .../vcloud_director/parsers/compute/vm_network.rb  |   2 -
 lib/fog/vcloud_director/parsers/compute/vms.rb     |   5 -
 .../parsers/compute/vms_by_metadata.rb             |   4 -
 lib/fog/vcloud_director/query.rb                   |  59 ++
 .../requests/compute/delete_network.rb             |   2 -
 .../requests/compute/get_catalogs_from_query.rb    |   2 +-
 .../requests/compute/get_cpu_rasd_item.rb          |  37 +
 .../requests/compute/get_disks_from_query.rb       |   2 +-
 .../requests/compute/get_disks_rasd_items_list.rb  |  64 ++
 .../requests/compute/get_execute_query.rb          | 183 ++++-
 .../requests/compute/get_groups_from_query.rb      |   2 +-
 .../get_guest_customization_system_section_vapp.rb |  44 ++
 .../compute/get_lease_settings_section_vapp.rb     |  34 +
 .../compute/get_media_drives_rasd_items_list.rb    |  66 ++
 .../requests/compute/get_medias_from_query.rb      |   2 +-
 .../requests/compute/get_memory_rasd_item.rb       |  36 +
 .../compute/get_network_cards_items_list.rb        |  45 ++
 .../requests/compute/get_network_complete.rb       |   2 -
 .../compute/get_network_config_section_vapp.rb     |  36 +
 .../get_network_connection_system_section_vapp.rb  |  43 +
 .../compute/get_operating_system_section.rb        |  34 +
 .../compute/get_organizations_from_query.rb        |   2 +-
 .../compute/get_runtime_info_section_type.rb       |  32 +
 .../requests/compute/get_snapshot_section.rb       |  30 +
 .../requests/compute/get_startup_section.rb        |  39 +
 .../requests/compute/get_users_from_query.rb       |   2 +-
 .../vcloud_director/requests/compute/get_vapp.rb   | 148 ++++
 .../requests/compute/get_vapp_metadata.rb          |  57 ++
 .../requests/compute/get_vapp_owner.rb             |  33 +
 .../compute/get_vapp_templates_from_query.rb       |   2 +-
 .../compute/get_vapps_in_lease_from_query.rb       |   2 +-
 .../vcloud_director/requests/compute/get_vdc.rb    |  18 +-
 .../requests/compute/get_vdcs_from_query.rb        |   2 +-
 .../requests/compute/get_vm_capabilities.rb        |  31 +
 .../requests/compute/get_vms_by_metadata.rb        |   1 -
 .../compute/get_vms_in_lease_from_query.rb         |  57 +-
 .../requests/compute/instantiate_vapp_template.rb  |   4 +-
 .../requests/compute/post_capture_vapp.rb          |  24 +
 .../post_configure_edge_gateway_services.rb        |  13 +-
 .../requests/compute/post_create_catalog_item.rb   |  56 ++
 .../compute/post_create_org_vdc_network.rb         |   5 -
 .../requests/compute/post_deploy_vapp.rb           |   6 +-
 .../compute/post_instantiate_vapp_template.rb      |  63 ++
 .../requests/compute/post_upload_disk.rb           |   2 +-
 .../requests/compute/post_upload_media.rb          |   2 +-
 .../requests/compute/post_upload_vapp_template.rb  |   2 +-
 .../vcloud_director/requests/compute/put_cpu.rb    |  43 +-
 .../vcloud_director/requests/compute/put_memory.rb |  44 +-
 .../requests/compute/put_network.rb                | 162 ++++
 .../requests/compute/put_product_sections.rb       |  43 +
 .../compute/put_vapp_metadata_item_metadata.rb     |  35 +
 .../compute/put_vapp_name_and_description.rb       |   1 -
 lib/fog/vcloud_director/requests/compute/put_vm.rb |  35 +-
 lib/fog/version.rb                                 |   2 +-
 lib/fog/vmfusion/compute.rb                        |   5 -
 lib/fog/vmfusion/core.rb                           |   2 -
 lib/fog/vmfusion/models/compute/server.rb          |   2 -
 lib/fog/vmfusion/models/compute/servers.rb         |   7 +-
 lib/fog/voxel/compute.rb                           |   2 -
 lib/fog/voxel/core.rb                              |   1 -
 lib/fog/voxel/models/compute/image.rb              |   2 -
 lib/fog/voxel/models/compute/images.rb             |   3 -
 lib/fog/voxel/models/compute/server.rb             |   5 -
 lib/fog/voxel/models/compute/servers.rb            |   3 -
 lib/fog/voxel/parsers/compute/basic.rb             |   4 -
 lib/fog/voxel/parsers/compute/devices_list.rb      |   4 -
 lib/fog/voxel/parsers/compute/images_list.rb       |   4 -
 lib/fog/voxel/parsers/compute/voxcloud_create.rb   |   4 -
 lib/fog/voxel/parsers/compute/voxcloud_delete.rb   |   4 -
 lib/fog/voxel/requests/compute/devices_list.rb     |   2 -
 lib/fog/voxel/requests/compute/devices_power.rb    |   2 -
 lib/fog/voxel/requests/compute/images_list.rb      |   2 -
 lib/fog/voxel/requests/compute/voxcloud_create.rb  |   4 +-
 lib/fog/voxel/requests/compute/voxcloud_delete.rb  |   2 -
 lib/fog/voxel/requests/compute/voxcloud_status.rb  |   2 -
 lib/fog/vsphere/compute.rb                         |   9 +-
 lib/fog/vsphere/core.rb                            |   1 -
 lib/fog/vsphere/models/compute/cluster.rb          |   4 -
 lib/fog/vsphere/models/compute/clusters.rb         |   3 -
 lib/fog/vsphere/models/compute/customfield.rb      |   3 -
 lib/fog/vsphere/models/compute/customfields.rb     |   3 -
 lib/fog/vsphere/models/compute/customvalue.rb      |   3 -
 lib/fog/vsphere/models/compute/customvalues.rb     |   3 -
 lib/fog/vsphere/models/compute/datacenter.rb       |   4 -
 lib/fog/vsphere/models/compute/datacenters.rb      |   3 -
 lib/fog/vsphere/models/compute/datastore.rb        |   4 -
 lib/fog/vsphere/models/compute/datastores.rb       |   3 -
 lib/fog/vsphere/models/compute/folder.rb           |   4 -
 lib/fog/vsphere/models/compute/folders.rb          |   3 -
 lib/fog/vsphere/models/compute/interface.rb        |   8 +-
 lib/fog/vsphere/models/compute/interfaces.rb       |  23 +-
 lib/fog/vsphere/models/compute/interfacetype.rb    |   4 -
 lib/fog/vsphere/models/compute/interfacetypes.rb   |   5 -
 lib/fog/vsphere/models/compute/network.rb          |   4 -
 lib/fog/vsphere/models/compute/networks.rb         |   2 -
 lib/fog/vsphere/models/compute/resource_pool.rb    |   4 -
 lib/fog/vsphere/models/compute/resource_pools.rb   |   3 -
 lib/fog/vsphere/models/compute/scsicontroller.rb   |   3 -
 lib/fog/vsphere/models/compute/server.rb           |  20 +-
 lib/fog/vsphere/models/compute/servers.rb          |   2 -
 lib/fog/vsphere/models/compute/servertype.rb       |   3 -
 lib/fog/vsphere/models/compute/servertypes.rb      |   5 -
 lib/fog/vsphere/models/compute/template.rb         |   4 -
 lib/fog/vsphere/models/compute/templates.rb        |   3 -
 lib/fog/vsphere/models/compute/volume.rb           |   3 +-
 lib/fog/vsphere/models/compute/volumes.rb          |  22 +-
 lib/fog/vsphere/requests/compute/create_folder.rb  |   2 +-
 lib/fog/vsphere/requests/compute/create_vm.rb      |   5 +-
 lib/fog/vsphere/requests/compute/current_time.rb   |   4 -
 lib/fog/vsphere/requests/compute/get_folder.rb     |   3 +-
 .../requests/compute/get_virtual_machine.rb        |   2 -
 .../compute/get_vm_first_scsi_controller.rb        |   2 +-
 lib/fog/vsphere/requests/compute/list_clusters.rb  |   1 -
 .../vsphere/requests/compute/list_customfields.rb  |   1 -
 .../vsphere/requests/compute/list_datacenters.rb   |   1 -
 .../vsphere/requests/compute/list_datastores.rb    |   1 -
 lib/fog/vsphere/requests/compute/list_folders.rb   |   1 -
 .../requests/compute/list_interface_types.rb       |   3 +-
 lib/fog/vsphere/requests/compute/list_networks.rb  |   1 -
 .../requests/compute/list_resource_pools.rb        |   1 -
 .../vsphere/requests/compute/list_server_types.rb  |   1 -
 lib/fog/vsphere/requests/compute/list_templates.rb |   1 -
 .../requests/compute/list_virtual_machines.rb      |   1 -
 .../requests/compute/list_vm_customvalues.rb       |   2 -
 .../vsphere/requests/compute/list_vm_interfaces.rb |   6 +-
 .../vsphere/requests/compute/list_vm_volumes.rb    |   1 -
 .../requests/compute/modify_vm_interface.rb        |   2 -
 .../vsphere/requests/compute/modify_vm_volume.rb   |   1 -
 .../vsphere/requests/compute/set_vm_customvalue.rb |   2 -
 lib/fog/vsphere/requests/compute/vm_clone.rb       |  45 +-
 lib/fog/vsphere/requests/compute/vm_config_vnc.rb  |   6 +-
 lib/fog/vsphere/requests/compute/vm_destroy.rb     |   8 +-
 lib/fog/vsphere/requests/compute/vm_migrate.rb     |   8 +-
 lib/fog/vsphere/requests/compute/vm_power_off.rb   |   8 +-
 lib/fog/vsphere/requests/compute/vm_power_on.rb    |   8 +-
 lib/fog/vsphere/requests/compute/vm_reboot.rb      |   8 +-
 .../vsphere/requests/compute/vm_reconfig_cpus.rb   |   8 +-
 .../requests/compute/vm_reconfig_hardware.rb       |   8 +-
 .../vsphere/requests/compute/vm_reconfig_memory.rb |   8 +-
 lib/fog/xenserver/compute.rb                       |   8 +-
 lib/fog/xenserver/core.rb                          |   8 +-
 lib/fog/xenserver/examples/networks-and-vlans.rb   |   1 -
 lib/fog/xenserver/models/compute/guest_metrics.rb  |   3 -
 lib/fog/xenserver/models/compute/host.rb           |   9 +-
 lib/fog/xenserver/models/compute/host_cpu.rb       |   4 -
 lib/fog/xenserver/models/compute/host_metrics.rb   |   3 -
 lib/fog/xenserver/models/compute/hosts.rb          |   4 -
 lib/fog/xenserver/models/compute/network.rb        |   2 -
 lib/fog/xenserver/models/compute/networks.rb       |   4 -
 lib/fog/xenserver/models/compute/pbd.rb            |   3 -
 lib/fog/xenserver/models/compute/pbds.rb           |   4 -
 lib/fog/xenserver/models/compute/pif.rb            |   3 -
 lib/fog/xenserver/models/compute/pifs.rb           |   4 -
 lib/fog/xenserver/models/compute/pool.rb           |   6 +-
 lib/fog/xenserver/models/compute/pools.rb          |   4 -
 lib/fog/xenserver/models/compute/server.rb         |  10 +-
 lib/fog/xenserver/models/compute/servers.rb        |   4 -
 .../models/compute/storage_repositories.rb         |   4 -
 .../xenserver/models/compute/storage_repository.rb |   7 +-
 lib/fog/xenserver/models/compute/vbd.rb            |   3 -
 lib/fog/xenserver/models/compute/vbd_metrics.rb    |   2 -
 lib/fog/xenserver/models/compute/vbds.rb           |   4 -
 lib/fog/xenserver/models/compute/vdi.rb            |   7 +-
 lib/fog/xenserver/models/compute/vdis.rb           |   4 -
 lib/fog/xenserver/models/compute/vif.rb            |   4 -
 lib/fog/xenserver/models/compute/vifs.rb           |   4 -
 lib/fog/xenserver/models/compute/vlan.rb           |   3 -
 lib/fog/xenserver/models/compute/vlans.rb          |   4 -
 lib/fog/xenserver/parser.rb                        |   2 -
 lib/fog/xenserver/parsers/get_hosts.rb             |   3 -
 lib/fog/xenserver/parsers/get_networks.rb          |   3 -
 lib/fog/xenserver/parsers/get_pools.rb             |   3 -
 lib/fog/xenserver/parsers/get_records.rb           |   3 -
 .../xenserver/parsers/get_storage_repositories.rb  |   3 -
 lib/fog/xenserver/parsers/get_vbds.rb              |   3 -
 lib/fog/xenserver/parsers/get_vifs.rb              |   3 -
 lib/fog/xenserver/parsers/get_vms.rb               |   4 -
 lib/fog/xenserver/requests/compute/clone_server.rb |   4 -
 .../xenserver/requests/compute/create_network.rb   |   5 -
 .../xenserver/requests/compute/create_server.rb    |  10 +-
 lib/fog/xenserver/requests/compute/create_sr.rb    |   6 -
 lib/fog/xenserver/requests/compute/create_vbd.rb   |   5 -
 lib/fog/xenserver/requests/compute/create_vdi.rb   |   5 -
 lib/fog/xenserver/requests/compute/create_vif.rb   |   5 -
 lib/fog/xenserver/requests/compute/create_vlan.rb  |   5 -
 .../xenserver/requests/compute/destroy_network.rb  |   5 -
 .../xenserver/requests/compute/destroy_server.rb   |   5 -
 lib/fog/xenserver/requests/compute/destroy_sr.rb   |   5 -
 lib/fog/xenserver/requests/compute/destroy_vdi.rb  |   5 -
 lib/fog/xenserver/requests/compute/destroy_vif.rb  |   5 -
 lib/fog/xenserver/requests/compute/destroy_vlan.rb |   5 -
 lib/fog/xenserver/requests/compute/disable_host.rb |   6 -
 lib/fog/xenserver/requests/compute/eject_vbd.rb    |   5 -
 lib/fog/xenserver/requests/compute/enable_host.rb  |   6 -
 lib/fog/xenserver/requests/compute/get_record.rb   |   6 -
 lib/fog/xenserver/requests/compute/get_records.rb  |   6 -
 lib/fog/xenserver/requests/compute/insert_vbd.rb   |   5 -
 .../xenserver/requests/compute/provision_server.rb |   4 -
 lib/fog/xenserver/requests/compute/reboot_host.rb  |   6 -
 .../xenserver/requests/compute/reboot_server.rb    |   6 -
 lib/fog/xenserver/requests/compute/scan_sr.rb      |   5 -
 lib/fog/xenserver/requests/compute/set_affinity.rb |   6 -
 .../xenserver/requests/compute/set_attribute.rb    |   6 -
 .../xenserver/requests/compute/shutdown_host.rb    |   6 -
 .../xenserver/requests/compute/shutdown_server.rb  |   6 -
 .../xenserver/requests/compute/snapshot_revert.rb  |   5 -
 .../xenserver/requests/compute/snapshot_server.rb  |   5 -
 lib/fog/xenserver/requests/compute/start_server.rb |   6 -
 lib/fog/xenserver/requests/compute/start_vm.rb     |   6 -
 lib/fog/xenserver/requests/compute/unplug_pbd.rb   |   5 -
 lib/fog/xenserver/requests/compute/unplug_vbd.rb   |   5 -
 lib/fog/xml.rb                                     |  27 +-
 lib/fog/xml/connection.rb                          |  13 +-
 lib/fog/xml/sax_parser_connection.rb               |   1 -
 lib/fog/zerigo/core.rb                             |   2 -
 lib/fog/zerigo/dns.rb                              |   8 +-
 lib/fog/zerigo/models/dns/record.rb                |   3 -
 lib/fog/zerigo/models/dns/records.rb               |   4 -
 lib/fog/zerigo/models/dns/zone.rb                  |   4 -
 lib/fog/zerigo/models/dns/zones.rb                 |   4 -
 lib/fog/zerigo/parsers/dns/count_hosts.rb          |   4 -
 lib/fog/zerigo/parsers/dns/count_zones.rb          |   4 -
 lib/fog/zerigo/parsers/dns/create_host.rb          |   4 -
 lib/fog/zerigo/parsers/dns/create_zone.rb          |   4 -
 lib/fog/zerigo/parsers/dns/find_hosts.rb           |   4 -
 lib/fog/zerigo/parsers/dns/get_host.rb             |   4 -
 lib/fog/zerigo/parsers/dns/get_zone.rb             |   5 -
 lib/fog/zerigo/parsers/dns/get_zone_stats.rb       |   4 -
 lib/fog/zerigo/parsers/dns/list_hosts.rb           |   4 -
 lib/fog/zerigo/parsers/dns/list_zones.rb           |   4 -
 lib/fog/zerigo/requests/dns/count_hosts.rb         |   2 -
 lib/fog/zerigo/requests/dns/count_zones.rb         |   2 -
 lib/fog/zerigo/requests/dns/create_host.rb         |   3 -
 lib/fog/zerigo/requests/dns/create_zone.rb         |   4 -
 lib/fog/zerigo/requests/dns/delete_host.rb         |   2 -
 lib/fog/zerigo/requests/dns/delete_zone.rb         |   2 -
 lib/fog/zerigo/requests/dns/find_hosts.rb          |   4 +-
 lib/fog/zerigo/requests/dns/get_host.rb            |   2 -
 lib/fog/zerigo/requests/dns/get_zone.rb            |   2 -
 lib/fog/zerigo/requests/dns/get_zone_stats.rb      |   2 -
 lib/fog/zerigo/requests/dns/list_hosts.rb          |  34 +-
 lib/fog/zerigo/requests/dns/list_zones.rb          |   4 -
 lib/fog/zerigo/requests/dns/update_host.rb         |   3 -
 lib/fog/zerigo/requests/dns/update_zone.rb         |   3 -
 lib/tasks/changelog_task.rb                        |   6 +-
 lib/tasks/github_release_task.rb                   |   5 +-
 metadata.yml                                       | 872 +++++++++++++++++++--
 tests/aws/credentials_tests.rb                     |   8 +-
 tests/aws/models/auto_scaling/groups_test.rb       |   4 +-
 tests/aws/models/auto_scaling/instance_tests.rb    |  15 +
 tests/aws/models/beanstalk/application_tests.rb    |   1 -
 tests/aws/models/beanstalk/environment_tests.rb    |   1 -
 tests/aws/models/beanstalk/environments_tests.rb   |   2 +-
 tests/aws/models/beanstalk/templates_tests.rb      |   2 +-
 tests/aws/models/beanstalk/versions_tests.rb       |   3 +-
 tests/aws/models/cdn/invalidation_tests.rb         |   1 -
 tests/aws/models/cdn/invalidations_tests.rb        |   1 -
 .../models/cloud_watch/metric_statistics_tests.rb  |  14 +-
 tests/aws/models/cloud_watch/metrics_tests.rb      |   4 +-
 tests/aws/models/compute/addresses_tests.rb        |   2 +-
 tests/aws/models/compute/dhcp_option_tests.rb      |   1 -
 tests/aws/models/compute/dhcp_options_tests.rb     |   1 -
 .../aws/models/compute/internet_gateways_tests.rb  |   1 -
 tests/aws/models/compute/key_pair_tests.rb         |   1 -
 tests/aws/models/compute/key_pairs_tests.rb        |   2 +-
 tests/aws/models/compute/network_acl_tests.rb      |   8 +-
 tests/aws/models/compute/network_acls_tests.rb     |  15 +-
 .../aws/models/compute/network_interfaces_test.rb  |   2 +-
 tests/aws/models/compute/security_group_tests.rb   |   6 +-
 tests/aws/models/compute/server_tests.rb           |   2 +-
 tests/aws/models/compute/snapshots_tests.rb        |   2 +-
 tests/aws/models/compute/subnets_tests.rb          |   1 -
 tests/aws/models/compute/volumes_tests.rb          |   2 +-
 tests/aws/models/compute/vpcs_tests.rb             |  15 +-
 tests/aws/models/dns/record_tests.rb               |   1 -
 tests/aws/models/dns/records_tests.rb              |   1 -
 .../models/elasticache/security_groups_tests.rb    |   4 +-
 .../aws/models/elasticache/subnet_groups_tests.rb  |   2 +-
 tests/aws/models/elb/model_tests.rb                |  48 +-
 tests/aws/models/glacier/model_tests.rb            |   4 +-
 tests/aws/models/iam/access_keys_tests.rb          |  24 +-
 tests/aws/models/iam/policies_tests.rb             |  28 +-
 tests/aws/models/iam/roles_tests.rb                |  16 +-
 tests/aws/models/iam/users_tests.rb                |  18 +-
 tests/aws/models/rds/parameter_group_tests.rb      |   2 +-
 tests/aws/models/rds/security_group_tests.rb       |   8 +-
 tests/aws/models/rds/snapshot_tests.rb             |   1 -
 tests/aws/models/rds/snapshots_tests.rb            |   1 -
 tests/aws/models/storage/file_tests.rb             |  11 +-
 tests/aws/models/storage/url_tests.rb              |   2 +-
 tests/aws/models/storage/version_tests.rb          |   2 +-
 tests/aws/models/storage/versions_tests.rb         |   8 +-
 tests/aws/requests/auto_scaling/helper.rb          |   2 -
 tests/aws/requests/auto_scaling/tag_tests.rb       |   2 +-
 .../cloud_watch/get_metric_statistics_tests.rb     |   2 +-
 .../requests/cloud_watch/put_metric_data_tests.rb  |   2 +-
 .../requests/compute/assign_private_ip_tests.rb    |   5 +-
 tests/aws/requests/compute/client_tests.rb         |   6 +-
 tests/aws/requests/compute/dhcp_options_tests.rb   |   1 -
 tests/aws/requests/compute/helper.rb               |   6 -
 tests/aws/requests/compute/image_tests.rb          |   8 +-
 tests/aws/requests/compute/instance_tests.rb       |  15 +-
 .../aws/requests/compute/internet_gateway_tests.rb |   4 +-
 tests/aws/requests/compute/network_acl_tests.rb    |  26 +
 .../requests/compute/network_interface_tests.rb    |  52 +-
 tests/aws/requests/compute/region_tests.rb         |  26 +-
 tests/aws/requests/compute/route_tests.rb          |   1 +
 tests/aws/requests/compute/security_group_tests.rb |   3 +
 tests/aws/requests/compute/snapshot_tests.rb       |   1 +
 tests/aws/requests/compute/subnet_tests.rb         |  52 +-
 tests/aws/requests/compute/tag_tests.rb            |  21 +
 tests/aws/requests/compute/volume_tests.rb         |  18 +-
 tests/aws/requests/compute/vpc_tests.rb            |  67 +-
 tests/aws/requests/data_pipeline/helper.rb         |   2 -
 tests/aws/requests/data_pipeline/pipeline_tests.rb |   2 +-
 tests/aws/requests/dns/dns_tests.rb                |   9 +-
 tests/aws/requests/dns/health_check_tests.rb       | 159 ++++
 tests/aws/requests/dynamodb/item_tests.rb          |   4 +-
 tests/aws/requests/elasticache/helper.rb           |   5 +-
 tests/aws/requests/elb/helper.rb                   |   2 -
 tests/aws/requests/elb/load_balancer_tests.rb      |  20 +-
 tests/aws/requests/elb/policy_tests.rb             |  11 +-
 tests/aws/requests/emr/helper.rb                   |  12 +-
 tests/aws/requests/glacier/archive_tests.rb        |   2 +-
 .../aws/requests/glacier/multipart_upload_tests.rb |   9 +-
 tests/aws/requests/glacier/tree_hash_tests.rb      |   3 +-
 tests/aws/requests/glacier/vault_tests.rb          |   2 +-
 tests/aws/requests/iam/account_policy_tests.rb     |  20 +
 tests/aws/requests/iam/helper.rb                   |   5 -
 tests/aws/requests/iam/login_profile_tests.rb      |   6 +-
 tests/aws/requests/iam/role_tests.rb               |  17 +-
 tests/aws/requests/iam/user_tests.rb               |   1 -
 tests/aws/requests/rds/describe_events.rb          |   2 +-
 tests/aws/requests/rds/helper.rb                   |  40 +-
 tests/aws/requests/rds/instance_tests.rb           |  51 +-
 tests/aws/requests/rds/parameter_group_tests.rb    |  26 +-
 tests/aws/requests/rds/parameter_request_tests.rb  |  15 +-
 tests/aws/requests/rds/security_group_tests.rb     |  60 +-
 .../redshift/cluster_parameter_group_tests.rb      |   9 +-
 .../redshift/cluster_security_group_tests.rb       |  10 +-
 .../requests/redshift/cluster_snapshot_tests.rb    |  22 +-
 tests/aws/requests/redshift/cluster_tests.rb       |  14 +-
 tests/aws/requests/ses/helper.rb                   |   6 -
 tests/aws/requests/simpledb/helper.rb              |   6 -
 tests/aws/requests/sqs/helper.rb                   |   6 -
 tests/aws/requests/sqs/message_tests.rb            |   2 +-
 tests/aws/requests/sqs/queue_tests.rb              |   2 +-
 tests/aws/requests/storage/bucket_tests.rb         |   6 +-
 tests/aws/requests/storage/versioning_tests.rb     |  14 +-
 tests/aws/requests/sts/assume_role_tests.rb        |   2 +-
 .../aws/requests/sts/get_federation_token_tests.rb |   2 +-
 tests/aws/requests/sts/session_token_tests.rb      |   2 +-
 tests/aws/signaturev4_tests.rb                     |   2 +-
 tests/bluebox/requests/blb/lb_tests.rb             |   2 +-
 tests/bluebox/requests/compute/helper.rb           |   8 +-
 tests/bluebox/requests/compute/location_tests.rb   |   6 +-
 tests/bluebox/requests/dns/dns_tests.rb            |   1 -
 tests/brightbox/compute/schema.rb                  |   1 -
 tests/brightbox/requests/compute/cloud_ip_tests.rb |   1 -
 .../requests/compute/collaboration_tests.rb        |   2 -
 tests/brightbox/requests/compute/helper.rb         |   2 +-
 tests/clodo/requests/compute/server_tests.rb       |   2 +-
 tests/cloudsigma/models/server_tests.rb            |   2 +-
 tests/cloudsigma/models/volume_tests.rb            |   2 +-
 tests/cloudsigma/models/volumes_tests.rb           |   2 +-
 tests/cloudsigma/requests/server_tests.rb          |   4 -
 tests/cloudsigma/requests/volumes_tests.rb         |   2 +-
 .../compute/models/security_group_rule_tests.rb    |   1 -
 .../compute/models/security_groups_tests.rb        |   1 -
 tests/cloudstack/compute/models/volumes_tests.rb   |   2 -
 tests/cloudstack/requests/disk_offering_tests.rb   |   2 +-
 tests/cloudstack/requests/os_type_tests.rb         |   4 +-
 tests/cloudstack/requests/security_group_tests.rb  |   2 +-
 .../cloudstack/requests/service_offering_tests.rb  |   2 +-
 tests/cloudstack/requests/snapshot_tests.rb        |   2 +-
 tests/cloudstack/requests/ssh_key_pair_tests.rb    |   2 +-
 tests/cloudstack/requests/template_tests.rb        |   4 +-
 tests/core/attribute_tests.rb                      |   4 +-
 tests/core/mocking_tests.rb                        |   2 +-
 tests/core/parser_tests.rb                         |   1 -
 tests/core/service_tests.rb                        |   2 +-
 tests/core/uuid_tests.rb                           |   2 +-
 tests/core/wait_for_tests.rb                       |   2 +-
 tests/digitalocean/models/compute/flavor_tests.rb  |   3 +-
 tests/digitalocean/models/compute/image_tests.rb   |   3 +-
 tests/digitalocean/models/compute/region_tests.rb  |   3 +-
 tests/digitalocean/models/compute/server_tests.rb  |   1 -
 tests/digitalocean/models/compute/ssh_key_tests.rb |   1 -
 .../requests/compute/create_ssh_key_tests.rb       |   2 +-
 .../requests/compute/destroy_ssh_key_tests.rb      |   4 +-
 .../requests/compute/list_servers_tests.rb         |   2 +-
 .../requests/compute/power_cycle_server_tests.rb   |   4 +-
 .../requests/compute/power_state_tests.rb          |   6 +-
 .../requests/compute/reboot_server_tests.rb        |   4 +-
 tests/dreamhost/dns_tests.rb                       |   3 +-
 tests/dreamhost/helper.rb                          |   2 +-
 tests/dreamhost/models/dns/record_tests.rb         |   9 +-
 tests/dreamhost/models/dns/records_tests.rb        |   5 +-
 tests/dreamhost/models/dns/zone_tests.rb           |   7 +-
 tests/dreamhost/models/dns/zones_tests.rb          |   7 +-
 .../dreamhost/requests/dns/create_record_tests.rb  |   8 +-
 .../dreamhost/requests/dns/delete_record_tests.rb  |   2 +-
 tests/dreamhost/requests/dns/list_records_tests.rb |   4 +-
 .../compute/models/internet_service_tests.rb       |   4 +-
 tests/ecloud/compute/models/server_tests.rb        |  18 +-
 tests/fogdocker/models/compute/image_tests.rb      |   2 +-
 tests/fogdocker/models/compute/server_tests.rb     |   2 +-
 .../requests/compute/container_action_tests.rb     |   1 -
 .../requests/compute/container_commit_tests.rb     |   1 -
 tests/glesys/requests/compute/helper.rb            |  10 +-
 tests/glesys/requests/compute/ip_tests.rb          |   1 -
 tests/glesys/requests/compute/server_tests.rb      |  11 +-
 tests/google/helpers/disk_helper.rb                |  12 -
 tests/google/helpers/google_tests_helper.rb        |  89 +++
 .../google/models/compute/backend_service_tests.rb |   6 +
 .../models/compute/backend_services_tests.rb       |   8 +
 tests/google/models/compute/disk_tests.rb          |   6 +-
 tests/google/models/compute/disk_types_tests.rb    |  22 +
 tests/google/models/compute/disks_tests.rb         |   6 +-
 .../google/models/compute/forwarding_rule_tests.rb |   8 +
 .../models/compute/forwarding_rules_tests.rb       |   8 +
 .../models/compute/global_forwarding_rule_tests.rb |   7 +
 .../compute/global_forwarding_rules_tests.rb       |   7 +
 .../models/compute/http_health_check_tests.rb      |   5 +
 .../models/compute/http_health_checks_tests.rb     |   5 +
 tests/google/models/compute/image_tests.rb         |   6 +
 tests/google/models/compute/images_tests.rb        |   6 +
 tests/google/models/compute/region_tests.rb        |  10 +
 tests/google/models/compute/regions_tests.rb       |  19 +
 tests/google/models/compute/server_tests.rb        |  12 +-
 tests/google/models/compute/servers_tests.rb       |   8 +-
 .../models/compute/target_http_proxies_tests.rb    |   7 +
 .../models/compute/target_http_proxy_test.rb       |   6 +
 .../google/models/compute/target_instance_tests.rb |   7 +
 .../models/compute/target_instances_tests.rb       |   7 +
 tests/google/models/compute/target_pool_tests.rb   |  12 +
 tests/google/models/compute/target_pools_tests.rb  |  11 +
 tests/google/models/compute/url_map_tests.rb       |   6 +
 tests/google/models/compute/url_maps_tests.rb      |   7 +
 .../models/monitoring/metric_descriptors_tests.rb  |  12 +
 .../monitoring/timeseries_collection_tests.rb      |  12 +
 .../monitoring/timeseries_descriptors_tests.rb     |  13 +
 tests/google/models/sql/flags_tests.rb             |  12 +
 tests/google/models/sql/instance_tests.rb          |  56 ++
 tests/google/models/sql/instances_tests.rb         |  32 +
 tests/google/models/sql/operation_tests.rb         |  25 +
 tests/google/models/sql/operations_tests.rb        |  38 +
 tests/google/models/sql/ssl_cert_tests.rb          |  24 +
 tests/google/models/sql/ssl_certs_tests.rb         |  39 +
 tests/google/models/sql/tiers_tests.rb             |  12 +
 .../requests/compute/backend_service_tests.rb      |  83 ++
 tests/google/requests/compute/disk_tests.rb        |   7 +-
 tests/google/requests/compute/disk_type_tests.rb   |  45 ++
 tests/google/requests/compute/firewall_tests.rb    |   6 +-
 .../requests/compute/forwarding_rules_tests.rb     |  83 ++
 .../compute/global_forwarding_rules_tests.rb       |  83 ++
 .../requests/compute/http_health_checks_tests.rb   |  83 ++
 tests/google/requests/compute/image_tests.rb       |   9 +-
 tests/google/requests/compute/region_tests.rb      |  39 +
 .../requests/compute/target_http_proxies_test.rb   |  79 ++
 .../requests/compute/target_instances_tests.rb     |  83 ++
 .../google/requests/compute/target_pools_tests.rb  |  82 ++
 tests/google/requests/compute/url_maps_tests.rb    |  82 ++
 tests/google/requests/compute/zone_tests.rb        |   8 +-
 tests/google/requests/dns/managed_zone_tests.rb    |  66 ++
 .../requests/monitoring/metric_descriptor_tests.rb |  25 +
 .../monitoring/timeseries_collection_tests.rb      |  25 +
 .../monitoring/timeseries_descriptor_tests.rb      |  26 +
 tests/google/requests/sql/flag_tests.rb            |  27 +
 tests/google/requests/sql/instance_tests.rb        | 129 +++
 tests/google/requests/sql/operation_tests.rb       |  42 +
 tests/google/requests/sql/ssl_cert_tests.rb        |  61 ++
 tests/google/requests/sql/tier_tests.rb            |  25 +
 tests/google/requests/storage/object_tests.rb      |   7 +-
 tests/helper.rb                                    |  15 +-
 tests/helpers/collection_helper.rb                 |   9 +-
 tests/helpers/compute/flavors_helper.rb            |   2 -
 tests/helpers/compute/server_helper.rb             |   2 -
 tests/helpers/compute/servers_helper.rb            |   2 -
 tests/helpers/formats_helper.rb                    |   1 -
 tests/helpers/formats_helper_tests.rb              |   1 -
 tests/helpers/mock_helper.rb                       |   4 +
 tests/helpers/model_helper.rb                      |   6 +-
 tests/helpers/responds_to_helper.rb                |   2 -
 tests/helpers/succeeds_helper.rb                   |   2 -
 .../block_storage_v2/volume_backups_tests.rb       |   2 +-
 tests/hp/models/compute/addresses_tests.rb         |   2 +-
 tests/hp/models/compute/key_pair_tests.rb          |   1 -
 tests/hp/models/compute/key_pairs_tests.rb         |   2 +-
 tests/hp/models/compute_v2/addresses_tests.rb      |   2 +-
 .../models/compute_v2/availability_zone_tests.rb   |   2 -
 .../models/compute_v2/availability_zones_tests.rb  |   2 +-
 tests/hp/models/compute_v2/key_pair_tests.rb       |   3 +-
 tests/hp/models/compute_v2/key_pairs_tests.rb      |   2 +-
 tests/hp/models/compute_v2/servers_tests.rb        |   2 +-
 .../models/compute_v2/volume_attachments_tests.rb  |   2 +-
 tests/hp/models/dns/domains_tests.rb               |   2 +-
 tests/hp/models/dns/records_tests.rb               |   2 +-
 tests/hp/models/lb/algorithms_tests.rb             |   2 +-
 tests/hp/models/lb/load_balancer_node_tests.rb     |   2 +-
 tests/hp/models/lb/load_balancer_nodes_tests.rb    |   2 +-
 tests/hp/models/lb/load_balancer_tests.rb          |   2 +-
 .../models/lb/load_balancer_virtual_ips_tests.rb   |   2 +-
 tests/hp/models/lb/load_balancers_tests.rb         |   2 +-
 tests/hp/models/lb/protocols_tests.rb              |   2 +-
 tests/hp/models/network/floating_ips_tests.rb      |   2 +-
 tests/hp/models/network/networks_tests.rb          |   2 +-
 tests/hp/models/network/ports_tests.rb             |   2 +-
 tests/hp/models/network/routers_tests.rb           |   2 +-
 .../models/network/security_group_rules_tests.rb   |   2 +-
 tests/hp/models/network/security_groups_tests.rb   |   2 +-
 tests/hp/models/network/subnets_tests.rb           |   2 +-
 tests/hp/models/storage/directories_tests.rb       |   2 +-
 tests/hp/models/storage/directory_tests.rb         |   1 -
 tests/hp/models/storage/file_tests.rb              |   2 +-
 tests/hp/models/storage/files_tests.rb             |   2 +-
 tests/hp/requests/compute/metadata_tests.rb        |   2 +-
 tests/hp/requests/compute/security_group_tests.rb  |   1 -
 tests/hp/requests/compute/server_volume_tests.rb   |   1 -
 .../requests/compute_v2/availability_zone_tests.rb |   2 +-
 tests/hp/requests/compute_v2/metadata_tests.rb     |   2 +-
 .../compute_v2/server_security_group_tests.rb      |   1 -
 .../hp/requests/compute_v2/server_volume_tests.rb  |   1 -
 tests/hp/requests/dns/domain_tests.rb              |   2 +-
 tests/hp/requests/dns/records_tests.rb             |   3 +-
 tests/hp/requests/lb/algorithms_tests.rb           |   3 +-
 tests/hp/requests/lb/limits_tests.rb               |   4 +-
 tests/hp/requests/lb/load_balancer_nodes_tests.rb  |   3 +-
 tests/hp/requests/lb/load_balancer_tests.rb        |   2 +-
 tests/hp/requests/lb/protocols_tests.rb            |   3 +-
 tests/hp/requests/lb/versions_tests.rb             |   3 +-
 tests/hp/requests/lb/virtual_ips_tests.rb          |   2 +-
 tests/hp/requests/network/floating_ip_tests.rb     |   2 +-
 tests/hp/requests/network/network_tests.rb         |   2 +-
 tests/hp/requests/network/port_tests.rb            |   2 +-
 tests/hp/requests/network/router_tests.rb          |   2 +-
 tests/hp/requests/network/subnet_tests.rb          |   2 +-
 tests/hp/requests/storage/object_tests.rb          |   4 +-
 tests/hp/storage_tests.rb                          |  49 +-
 tests/hp/user_agent_tests.rb                       |   2 +-
 .../models/storage/directory_tests.rb              |   1 -
 tests/internet_archive/models/storage/url_tests.rb |   2 +-
 .../requests/storage/bucket_tests.rb               |   6 +-
 tests/internet_archive/signaturev4_tests.rb        |   2 +-
 tests/joyent/requests/compute/machines_tests.rb    |   1 -
 tests/libvirt/models/compute/interface_tests.rb    |   2 +-
 tests/libvirt/models/compute/network_tests.rb      |   2 +-
 tests/libvirt/models/compute/nic_tests.rb          |   2 +-
 tests/libvirt/models/compute/pool_tests.rb         |   2 +-
 tests/libvirt/models/compute/server_tests.rb       |   2 +-
 tests/libvirt/models/compute/volume_tests.rb       |   2 +-
 tests/linode/requests/compute/datacenter_tests.rb  |   2 +-
 .../linode/requests/compute/distribution_tests.rb  |   2 +-
 tests/linode/requests/compute/helper.rb            |   6 -
 tests/linode/requests/compute/kernel_tests.rb      |   2 +-
 tests/linode/requests/compute/linode_tests.rb      |   8 +-
 tests/linode/requests/compute/linodeplans_tests.rb |   5 +-
 .../linode/requests/compute/stackscripts_tests.rb  |   8 +-
 tests/linode/requests/dns/dns_tests.rb             |  54 +-
 tests/ninefold/models/storage/file_update_tests.rb |   2 +-
 .../models/storage/nested_directories_tests.rb     |   2 +-
 tests/ninefold/requests/compute/helper.rb          |   1 -
 tests/ninefold/requests/compute/nat_tests.rb       |   1 -
 .../requests/compute/virtual_machine_tests.rb      |   1 -
 tests/opennebula/compute_tests.rb                  |  16 +
 tests/opennebula/models/compute/group_tests.rb     |  27 +
 tests/opennebula/models/compute/groups_tests.rb    |  16 +
 tests/opennebula/models/compute/network_tests.rb   |  27 +
 tests/opennebula/models/compute/networks_tests.rb  |  13 +
 .../requests/compute/vm_allocate_tests.rb          |  59 ++
 tests/openstack/authenticate_tests.rb              |  23 +-
 tests/openstack/models/compute/images_tests.rb     |   1 -
 .../models/compute/security_group_tests.rb         |  10 +-
 tests/openstack/models/compute/server_tests.rb     |   5 +-
 tests/openstack/models/identity/role_tests.rb      |   1 -
 tests/openstack/models/image/images_tests.rb       |   2 +-
 .../openstack/models/network/floating_ip_tests.rb  |   8 -
 .../openstack/models/network/floating_ips_tests.rb |   8 -
 .../models/network/lb_health_monitor_tests.rb      |   2 +-
 .../models/network/lb_health_monitors_tests.rb     |   2 +-
 tests/openstack/models/network/lb_member_tests.rb  |   2 +-
 tests/openstack/models/network/lb_members_tests.rb |   2 +-
 tests/openstack/models/network/lb_pool_tests.rb    |   2 +-
 tests/openstack/models/network/lb_pools_tests.rb   |   2 +-
 tests/openstack/models/network/lb_vip_tests.rb     |   2 +-
 tests/openstack/models/network/lb_vips_tests.rb    |   2 +-
 tests/openstack/models/network/network_tests.rb    |   8 +-
 tests/openstack/models/network/networks_tests.rb   |   2 +-
 tests/openstack/models/network/port_tests.rb       |   2 +-
 tests/openstack/models/network/ports_tests.rb      |   2 +-
 tests/openstack/models/network/subnet_tests.rb     |   2 +-
 tests/openstack/models/network/subnets_tests.rb    |   2 +-
 tests/openstack/models/storage/file_tests.rb       |  31 +-
 tests/openstack/requests/compute/address_tests.rb  |   4 +-
 tests/openstack/requests/compute/helper.rb         |   6 -
 tests/openstack/requests/compute/limit_tests.rb    |   1 -
 tests/openstack/requests/compute/quota_tests.rb    |   1 -
 tests/openstack/requests/compute/server_tests.rb   |  31 +-
 tests/openstack/requests/identity/helper.rb        |   4 -
 tests/openstack/requests/identity/role_tests.rb    |   1 -
 .../requests/network/lb_health_monitor_tests.rb    |   2 +-
 .../openstack/requests/network/lb_member_tests.rb  |   2 +-
 tests/openstack/requests/network/lb_pool_tests.rb  |   2 +-
 tests/openstack/requests/network/lb_vip_tests.rb   |   2 +-
 tests/openstack/requests/network/port_tests.rb     |   2 +-
 tests/openstack/requests/network/router_tests.rb   |   8 +-
 tests/openstack/requests/network/subnet_tests.rb   |   2 +-
 tests/openstack/requests/volume/quota_tests.rb     |   1 -
 tests/openstack/storage_tests.rb                   |   1 -
 tests/openstack/version_tests.rb                   |   2 +-
 tests/openstack/volume_tests.rb                    |   1 -
 tests/openvz/models/compute/server_tests.rb        |   1 -
 tests/ovirt/models/compute/cluster_tests.rb        |   2 +-
 tests/ovirt/models/compute/interface_tests.rb      |   2 +-
 tests/ovirt/models/compute/server_tests.rb         |   2 +-
 tests/ovirt/models/compute/template_tests.rb       |   2 +-
 tests/rackspace/auto_scale_tests.rb                |   5 +-
 tests/rackspace/block_storage_tests.rb             |   4 +-
 tests/rackspace/cdn_tests.rb                       |  69 +-
 tests/rackspace/compute_tests.rb                   |   2 +-
 tests/rackspace/compute_v2_tests.rb                |   2 +-
 tests/rackspace/databases_tests.rb                 |   3 +-
 tests/rackspace/dns_tests.rb                       |   4 +-
 tests/rackspace/helper.rb                          |  13 +
 tests/rackspace/identity_tests.rb                  |   2 +-
 tests/rackspace/load_balancer_tests.rb             |   3 +-
 tests/rackspace/models/auto_scale/group_tests.rb   |   3 +-
 tests/rackspace/models/auto_scale/groups_tests.rb  |   2 +-
 .../rackspace/models/auto_scale/policies_tests.rb  |   3 +-
 tests/rackspace/models/auto_scale/policy_tests.rb  |   2 +-
 tests/rackspace/models/auto_scale/webhook_tests.rb |   2 +-
 .../rackspace/models/auto_scale/webhooks_tests.rb  |   2 +-
 tests/rackspace/models/compute_v2/image_tests.rb   |   1 -
 .../rackspace/models/compute_v2/keypairs_tests.rb  |   2 +-
 .../rackspace/models/compute_v2/metadata_tests.rb  |  18 +-
 tests/rackspace/models/compute_v2/server_tests.rb  |  14 +-
 tests/rackspace/models/databases/database_tests.rb |  12 +
 .../models/identity/service_catalog_tests.rb       |  18 +-
 .../models/load_balancers/load_balancer_tests.rb   |  62 +-
 .../models/monitoring/alarm_examples_tests.rb      |   2 +-
 tests/rackspace/models/monitoring/alarm_tests.rb   |   2 +-
 tests/rackspace/models/monitoring/check_tests.rb   |   1 -
 .../models/monitoring/check_types_tests.rb         |   4 +-
 .../models/monitoring/data_points_tests.rb         |   4 +-
 tests/rackspace/models/monitoring/metric_tests.rb  |   4 +-
 tests/rackspace/models/monitoring/metrics_tests.rb |   2 +-
 .../models/monitoring/notification_tests.rb        |   2 +-
 tests/rackspace/models/storage/account_tests.rb    |   4 +-
 .../rackspace/models/storage/directories_tests.rb  |   8 +-
 tests/rackspace/models/storage/directory_tests.rb  |  46 +-
 tests/rackspace/models/storage/file_tests.rb       |  71 +-
 tests/rackspace/models/storage/files_tests.rb      |   4 +-
 tests/rackspace/models/storage/metadata_tests.rb   |  96 ++-
 tests/rackspace/monitoring_tests.rb                |   5 +-
 tests/rackspace/queues_tests.rb                    |   2 +-
 tests/rackspace/rackspace_tests.rb                 |   2 +-
 .../rackspace/requests/auto_scale/config_tests.rb  |   4 +-
 tests/rackspace/requests/auto_scale/group_tests.rb |   8 +-
 tests/rackspace/requests/auto_scale/helper.rb      |  34 +-
 .../rackspace/requests/auto_scale/policy_tests.rb  |   8 +-
 .../rackspace/requests/auto_scale/webhook_tests.rb |   2 +-
 .../requests/block_storage/volume_tests.rb         |  28 +-
 tests/rackspace/requests/cdn/cdn_tests.rb          |  17 +-
 tests/rackspace/requests/compute/address_tests.rb  |   6 +-
 tests/rackspace/requests/compute/flavor_tests.rb   |   2 +-
 tests/rackspace/requests/compute/helper.rb         |   6 -
 tests/rackspace/requests/compute/image_tests.rb    |   2 +-
 tests/rackspace/requests/compute/server_tests.rb   |   4 +-
 .../rackspace/requests/compute_v2/address_tests.rb |  12 +-
 .../requests/compute_v2/attachment_tests.rb        |   1 -
 tests/rackspace/requests/compute_v2/image_tests.rb |   6 +-
 .../requests/compute_v2/metadata_tests.rb          |  30 +-
 .../rackspace/requests/compute_v2/server_tests.rb  |  41 +-
 tests/rackspace/requests/dns/dns_tests.rb          |   2 +-
 tests/rackspace/requests/dns/helper.rb             |   4 +-
 tests/rackspace/requests/dns/records_tests.rb      |   2 +-
 tests/rackspace/requests/identity/token_tests.rb   |   2 +-
 .../requests/load_balancers/get_stats_tests.rb     |   2 +-
 tests/rackspace/requests/load_balancers/helper.rb  |   4 +-
 .../requests/load_balancers/load_balancer_tests.rb |  22 +-
 tests/rackspace/requests/monitoring/agent_tests.rb |  11 +-
 .../requests/monitoring/alarm_example_tests.rb     |   2 +-
 tests/rackspace/requests/monitoring/alarm_tests.rb |   2 +-
 tests/rackspace/requests/monitoring/helper.rb      |   7 +-
 tests/rackspace/requests/monitoring/list_tests.rb  |   9 +-
 .../requests/monitoring/notification_tests.rb      |   2 +-
 tests/rackspace/requests/queues/helper.rb          |   2 +-
 tests/rackspace/requests/storage/account_tests.rb  |   1 -
 .../rackspace/requests/storage/container_tests.rb  |   2 +-
 tests/rackspace/storage_tests.rb                   |   3 +-
 tests/rage4/requests/dns/dns_tests.rb              |   3 -
 tests/riakcs/requests/usage/usage_tests.rb         |  10 +-
 tests/sakuracloud/helper.rb                        |   7 -
 tests/sakuracloud/requests/compute/plans_tests.rb  |  32 -
 .../sakuracloud/requests/compute/servers_tests.rb  |  46 --
 .../sakuracloud/requests/compute/ssh_keys_tests.rb |  30 -
 tests/sakuracloud/requests/compute/zones_tests.rb  |  30 -
 .../sakuracloud/requests/volume/archives_tests.rb  |  31 -
 tests/sakuracloud/requests/volume/disks_tests.rb   |  47 --
 tests/sakuracloud/requests/volume/plans_tests.rb   |  30 -
 tests/serverlove/requests/compute/image_tests.rb   |  12 +-
 tests/serverlove/requests/compute/server_tests.rb  |  22 +-
 .../util/compute/password_generator_tests.rb       |   8 +-
 tests/storage/models/directories_tests.rb          |   2 +-
 .../requests/compute/server_tests.rb               |   4 +-
 tests/vcloud/data/api_+_vdc_+_1                    |   1 +
 tests/vcloud/models/compute/helper.rb              |   3 -
 tests/vcloud/models/compute/network_tests.rb       |  16 +-
 tests/vcloud/models/compute/networks_tests.rb      |  10 +-
 tests/vcloud/models/compute/organization_tests.rb  |   2 +-
 tests/vcloud/models/compute/organizations_tests.rb |   2 +-
 tests/vcloud/models/compute/server_tests.rb        |  18 +-
 tests/vcloud/models/compute/servers_tests.rb       |   2 +-
 tests/vcloud/models/compute/vapp_tests.rb          |   6 +-
 tests/vcloud/models/compute/vapps_tests.rb         |   2 +-
 tests/vcloud/models/compute/vdc_tests.rb           |  10 +-
 tests/vcloud/models/compute/vdcs_tests.rb          |   2 +-
 .../requests/compute/disk_configure_tests.rb       |   2 +-
 tests/vcloud_director/models/compute/helper.rb     |   2 +-
 .../models/compute/network_tests.rb                |  21 +-
 .../vcloud_director/models/compute/tasks_tests.rb  |  36 +-
 tests/vcloud_director/models/compute/vapp_tests.rb |  22 +-
 tests/vcloud_director/models/compute/vdcs_tests.rb |  15 +-
 tests/vcloud_director/models/compute/vms_tests.rb  |  15 +-
 .../requests/compute/catalog_tests.rb              |   2 +-
 .../vcloud_director/requests/compute/disk_tests.rb |  16 +-
 .../requests/compute/edge_gateway_tests.rb         | 115 ++-
 tests/vcloud_director/requests/compute/helper.rb   |   6 +-
 .../requests/compute/media_tests.rb                |  16 +-
 .../requests/compute/network_tests.rb              |  98 ++-
 .../requests/compute/organization_tests.rb         |   2 +-
 .../requests/compute/ovf_descriptor_tests.rb       |   6 +-
 .../requests/compute/query_tests.rb                |   6 +-
 .../requests/compute/schema_helper.rb              |   9 +-
 .../vcloud_director/requests/compute/task_tests.rb |   2 +-
 .../vcloud_director/requests/compute/vapp_tests.rb |  46 +-
 .../vcloud_director/requests/compute/vdc_tests.rb  |   2 +-
 .../requests/compute/versions_tests.rb             |   2 +-
 tests/vcloud_director/requests/compute/vm_tests.rb |  84 +-
 tests/vsphere/compute_tests.rb                     |   2 -
 tests/vsphere/models/compute/server_tests.rb       |   2 +-
 .../vsphere/requests/compute/current_time_tests.rb |   2 +-
 .../requests/compute/set_vm_customvalue_tests.rb   |   1 -
 tests/vsphere/requests/compute/vm_clone_tests.rb   |   6 +-
 .../requests/compute/vm_config_vnc_tests.rb        |   4 +-
 tests/vsphere/requests/compute/vm_destroy_tests.rb |   2 +-
 tests/vsphere/requests/compute/vm_migrate_tests.rb |   4 +-
 .../vsphere/requests/compute/vm_power_off_tests.rb |   4 +-
 .../vsphere/requests/compute/vm_power_on_tests.rb  |   2 +-
 tests/vsphere/requests/compute/vm_reboot_tests.rb  |   4 +-
 .../requests/compute/vm_reconfig_cpus_tests.rb     |   2 +-
 .../requests/compute/vm_reconfig_hardware_tests.rb |   2 +-
 .../requests/compute/vm_reconfig_memory_tests.rb   |   2 +-
 tests/xenserver/compute_tests.rb                   |   1 -
 tests/xenserver/helper.rb                          |   4 +-
 tests/xenserver/models/compute/console_test.rb     |   2 +-
 tests/xenserver/models/compute/host_cpu_tests.rb   |  10 +-
 .../xenserver/models/compute/host_metrics_tests.rb |  16 +-
 tests/xenserver/models/compute/host_tests.rb       |  23 +-
 tests/xenserver/models/compute/hosts_tests.rb      |   4 +-
 tests/xenserver/models/compute/network_tests.rb    |  14 +-
 tests/xenserver/models/compute/networks_tests.rb   |   4 +-
 tests/xenserver/models/compute/pbd_tests.rb        |   4 +-
 tests/xenserver/models/compute/pbds_tests.rb       |   4 +-
 tests/xenserver/models/compute/pif_tests.rb        |   4 +-
 tests/xenserver/models/compute/pifs_tests.rb       |   4 +-
 tests/xenserver/models/compute/pool_tests.rb       |   4 +-
 tests/xenserver/models/compute/pools_tests.rb      |   8 +-
 tests/xenserver/models/compute/server_tests.rb     |   4 +-
 tests/xenserver/models/compute/servers_tests.rb    |  14 +-
 .../models/compute/storage_repositories_tests.rb   |   8 +-
 .../models/compute/storage_repository_tests.rb     |  10 +-
 tests/xenserver/models/compute/vbd_tests.rb        |  12 +-
 tests/xenserver/models/compute/vbds_tests.rb       |   4 +-
 tests/xenserver/models/compute/vif_tests.rb        |   4 +-
 tests/xenserver/models/compute/vifs_tests.rb       |   4 +-
 tests/xenserver/models/compute/vlan_tests.rb       |   6 +-
 tests/xenserver/models/compute/vlans_tests.rb      |   6 +-
 .../requests/compute/clone_server_tests.rb         |   2 +-
 .../requests/compute/create_network_tests.rb       |   2 +-
 .../requests/compute/create_server_tests.rb        |  14 +-
 .../xenserver/requests/compute/create_sr_tests.rb  |   2 +-
 .../xenserver/requests/compute/create_vdi_tests.rb |  38 +-
 .../xenserver/requests/compute/create_vif_tests.rb |   6 +-
 .../requests/compute/create_vlan_tests.rb          |   4 +-
 .../requests/compute/destroy_network_tests.rb      |   2 +-
 .../xenserver/requests/compute/destroy_sr_tests.rb |   4 +-
 .../requests/compute/destroy_vdi_tests.rb          |   8 +-
 .../requests/compute/destroy_vlan_tests.rb         |   4 +-
 .../requests/compute/disable_host_tests.rb         |   4 +-
 .../requests/compute/enable_host_tests.rb          |   4 +-
 .../xenserver/requests/compute/get_record_tests.rb |   2 +-
 .../requests/compute/set_attribute_tests.rb        |   6 +-
 .../xenserver/requests/compute/unplug_pbd_tests.rb |   4 +-
 tests/xenserver/xenserver_tests.rb                 |   1 -
 tests/zerigo/requests/dns/dns_tests.rb             | 131 ++--
 4882 files changed, 32603 insertions(+), 17045 deletions(-)

diff --git a/.rubocop.yml b/.rubocop.yml
new file mode 100644
index 0000000..0bd1c9c
--- /dev/null
+++ b/.rubocop.yml
@@ -0,0 +1,20 @@
+inherit_from: .rubocop_todo.yml
+
+HashSyntax:
+  EnforcedStyle: hash_rockets
+
+LineLength:
+  Max: 100
+  Enabled: false
+
+StringLiterals:
+  EnforcedStyle: double_quotes
+
+Encoding:
+  Description: 'Use UTF-8 as the source file encoding.'
+  Enabled: false
+
+SignalException:
+  Description: 'Do not enforce use of fail when raising exceptions.'
+  # Valid values are: semantic, only_raise and only_fail
+  EnforcedStyle: only_raise
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
new file mode 100644
index 0000000..9f2b1c9
--- /dev/null
+++ b/.rubocop_todo.yml
@@ -0,0 +1,606 @@
+# This configuration was generated by `rubocop --auto-gen-config`
+# on 2014-05-26 15:23:01 +0100 using RuboCop version 0.22.0.
+# The point is for the user to remove these configuration records
+# one by one as the offenses are removed from the code base.
+# Note that changes in the inspected code, or installation of new
+# versions of RuboCop, may require this file to be generated again.
+
+# Offense count: 85
+AccessorMethodName:
+  Enabled: false
+
+# Offense count: 139
+# Cop supports --auto-correct.
+AlignArray:
+  Enabled: false
+
+# Offense count: 449
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
+AlignHash:
+  Enabled: false
+
+# Offense count: 104
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+AlignParameters:
+  Enabled: false
+
+# Offense count: 3
+AmbiguousOperator:
+  Enabled: false
+
+# Offense count: 4
+AmbiguousRegexpLiteral:
+  Enabled: false
+
+# Offense count: 221
+# Cop supports --auto-correct.
+AndOr:
+  Enabled: false
+
+# Offense count: 1
+ArrayJoin:
+  Enabled: false
+
+# Offense count: 9
+AsciiComments:
+  Enabled: false
+
+# Offense count: 594
+# Configuration parameters: AllowSafeAssignment.
+AssignmentInCondition:
+  Enabled: false
+
+# Offense count: 3
+# Cop supports --auto-correct.
+Attr:
+  Enabled: false
+
+# Offense count: 35
+BlockAlignment:
+  Enabled: false
+
+# Offense count: 56
+BlockNesting:
+  Max: 7
+
+# Offense count: 230
+# Cop supports --auto-correct.
+Blocks:
+  Enabled: false
+
+# Offense count: 1366
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+BracesAroundHashParameters:
+  Enabled: false
+
+# Offense count: 9
+CaseEquality:
+  Enabled: false
+
+# Offense count: 291
+# Configuration parameters: IndentWhenRelativeTo, SupportedStyles, IndentOneStep.
+CaseIndentation:
+  Enabled: false
+
+# Offense count: 2
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+ClassAndModuleChildren:
+  Enabled: false
+
+# Offense count: 99
+# Configuration parameters: CountComments.
+ClassLength:
+  Max: 1131
+
+# Offense count: 46
+ClassVars:
+  Enabled: false
+
+# Offense count: 41
+# Cop supports --auto-correct.
+ColonMethodCall:
+  Enabled: false
+
+# Offense count: 33
+# Configuration parameters: Keywords.
+CommentAnnotation:
+  Enabled: false
+
+# Offense count: 82
+# Cop supports --auto-correct.
+CommentIndentation:
+  Enabled: false
+
+# Offense count: 1
+ConstantName:
+  Enabled: false
+
+# Offense count: 450
+CyclomaticComplexity:
+  Max: 46
+
+# Offense count: 29
+# Cop supports --auto-correct.
+DefWithParentheses:
+  Enabled: false
+
+# Offense count: 6310
+Documentation:
+  Enabled: false
+
+# Offense count: 42
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+DotPosition:
+  Enabled: false
+
+# Offense count: 34
+DoubleNegation:
+  Enabled: false
+
+# Offense count: 16
+EachWithObject:
+  Enabled: false
+
+# Offense count: 2
+ElseLayout:
+  Enabled: false
+
+# Offense count: 13
+# Cop supports --auto-correct.
+EmptyLines:
+  Enabled: false
+
+# Offense count: 64
+EmptyLinesAroundAccessModifier:
+  Enabled: false
+
+# Offense count: 4
+# Cop supports --auto-correct.
+EmptyLinesAroundBody:
+  Enabled: false
+
+# Offense count: 40
+# Cop supports --auto-correct.
+EmptyLiteral:
+  Enabled: false
+
+# Offense count: 101
+# Configuration parameters: AlignWith, SupportedStyles.
+EndAlignment:
+  Enabled: false
+
+# Offense count: 8
+Eval:
+  Enabled: false
+
+# Offense count: 1
+EvenOdd:
+  Enabled: false
+
+# Offense count: 7
+# Configuration parameters: Exclude.
+FileName:
+  Enabled: false
+
+# Offense count: 175
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+For:
+  Enabled: false
+
+# Offense count: 16
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+FormatString:
+  Enabled: false
+
+# Offense count: 143
+# Configuration parameters: MinBodyLength.
+GuardClause:
+  Enabled: false
+
+# Offense count: 27
+HandleExceptions:
+  Enabled: false
+
+# Offense count: 21
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+HashSyntax:
+  Enabled: false
+
+# Offense count: 486
+# Configuration parameters: MaxLineLength.
+IfUnlessModifier:
+  Enabled: false
+
+# Offense count: 54
+# Cop supports --auto-correct.
+IndentArray:
+  Enabled: false
+
+# Offense count: 990
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+IndentHash:
+  Enabled: false
+
+# Offense count: 285
+# Cop supports --auto-correct.
+IndentationConsistency:
+  Enabled: false
+
+# Offense count: 310
+# Cop supports --auto-correct.
+IndentationWidth:
+  Enabled: false
+
+# Offense count: 7
+Lambda:
+  Enabled: false
+
+# Offense count: 655
+# Cop supports --auto-correct.
+LeadingCommentSpace:
+  Enabled: false
+
+# Offense count: 10
+# Cop supports --auto-correct.
+LineEndConcatenation:
+  Enabled: false
+
+# Offense count: 6
+Loop:
+  Enabled: false
+
+# Offense count: 66
+# Cop supports --auto-correct.
+MethodCallParentheses:
+  Enabled: false
+
+# Offense count: 87
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+MethodDefParentheses:
+  Enabled: false
+
+# Offense count: 2036
+# Configuration parameters: CountComments.
+MethodLength:
+  Max: 1129
+
+# Offense count: 13
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+MethodName:
+  Enabled: false
+
+# Offense count: 21
+MultilineBlockChain:
+  Enabled: false
+
+# Offense count: 66
+MultilineIfThen:
+  Enabled: false
+
+# Offense count: 13
+MultilineTernaryOperator:
+  Enabled: false
+
+# Offense count: 85
+# Cop supports --auto-correct.
+NegatedIf:
+  Enabled: false
+
+# Offense count: 2
+# Cop supports --auto-correct.
+NegatedWhile:
+  Enabled: false
+
+# Offense count: 121
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Next:
+  Enabled: false
+
+# Offense count: 28
+# Cop supports --auto-correct.
+NilComparison:
+  Enabled: false
+
+# Offense count: 89
+# Cop supports --auto-correct.
+# Configuration parameters: IncludeSemanticChanges.
+NonNilCheck:
+  Enabled: false
+
+# Offense count: 56
+# Cop supports --auto-correct.
+Not:
+  Enabled: false
+
+# Offense count: 220
+# Cop supports --auto-correct.
+NumericLiterals:
+  MinDigits: 14
+
+# Offense count: 3
+OneLineConditional:
+  Enabled: false
+
+# Offense count: 33
+# Configuration parameters: CountKeywordArgs.
+ParameterLists:
+  Max: 9
+
+# Offense count: 63
+# Cop supports --auto-correct.
+# Configuration parameters: AllowSafeAssignment.
+ParenthesesAroundCondition:
+  Enabled: false
+
+# Offense count: 17
+ParenthesesAsGroupedExpression:
+  Enabled: false
+
+# Offense count: 189
+# Cop supports --auto-correct.
+# Configuration parameters: PreferredDelimiters.
+PercentLiteralDelimiters:
+  Enabled: false
+
+# Offense count: 24
+# Cop supports --auto-correct.
+PerlBackrefs:
+  Enabled: false
+
+# Offense count: 8
+# Configuration parameters: NamePrefixBlacklist.
+PredicateName:
+  Enabled: false
+
+# Offense count: 7
+# Cop supports --auto-correct.
+Proc:
+  Enabled: false
+
+# Offense count: 640
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+RaiseArgs:
+  Enabled: false
+
+# Offense count: 25
+# Cop supports --auto-correct.
+RedundantBegin:
+  Enabled: false
+
+# Offense count: 4
+RedundantException:
+  Enabled: false
+
+# Offense count: 32
+# Cop supports --auto-correct.
+# Configuration parameters: AllowMultipleReturnValues.
+RedundantReturn:
+  Enabled: false
+
+# Offense count: 1939
+# Cop supports --auto-correct.
+RedundantSelf:
+  Enabled: false
+
+# Offense count: 66
+# Configuration parameters: MaxSlashes.
+RegexpLiteral:
+  Enabled: false
+
+# Offense count: 1
+RequireParentheses:
+  Enabled: false
+
+# Offense count: 5
+# Cop supports --auto-correct.
+RescueException:
+  Enabled: false
+
+# Offense count: 52
+RescueModifier:
+  Enabled: false
+
+# Offense count: 29
+SelfAssignment:
+  Enabled: false
+
+# Offense count: 62
+# Cop supports --auto-correct.
+# Configuration parameters: AllowAsExpressionSeparator.
+Semicolon:
+  Enabled: false
+
+# Offense count: 78
+ShadowingOuterLocalVariable:
+  Enabled: false
+
+# Offense count: 2
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+SignalException:
+  Enabled: false
+
+# Offense count: 10
+# Configuration parameters: Methods.
+SingleLineBlockParams:
+  Enabled: false
+
+# Offense count: 9
+# Cop supports --auto-correct.
+# Configuration parameters: AllowIfMethodIsEmpty.
+SingleLineMethods:
+  Enabled: false
+
+# Offense count: 909
+# Cop supports --auto-correct.
+SingleSpaceBeforeFirstArg:
+  Enabled: false
+
+# Offense count: 4
+# Cop supports --auto-correct.
+SpaceAfterColon:
+  Enabled: false
+
+# Offense count: 581
+# Cop supports --auto-correct.
+SpaceAfterComma:
+  Enabled: false
+
+# Offense count: 15
+# Cop supports --auto-correct.
+SpaceAfterControlKeyword:
+  Enabled: false
+
+# Offense count: 1
+# Cop supports --auto-correct.
+SpaceAfterMethodName:
+  Enabled: false
+
+# Offense count: 19
+# Cop supports --auto-correct.
+SpaceAfterNot:
+  Enabled: false
+
+# Offense count: 1332
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+SpaceAroundEqualsInParameterDefault:
+  Enabled: false
+
+# Offense count: 4362
+# Cop supports --auto-correct.
+SpaceAroundOperators:
+  Enabled: false
+
+# Offense count: 441
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+SpaceBeforeBlockBraces:
+  Enabled: false
+
+# Offense count: 11
+# Cop supports --auto-correct.
+SpaceBeforeComment:
+  Enabled: false
+
+# Offense count: 19
+SpaceBeforeFirstArg:
+  Enabled: false
+
+# Offense count: 1946
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
+SpaceInsideBlockBraces:
+  Enabled: false
+
+# Offense count: 146
+# Cop supports --auto-correct.
+SpaceInsideBrackets:
+  Enabled: false
+
+# Offense count: 6159
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
+SpaceInsideHashLiteralBraces:
+  Enabled: false
+
+# Offense count: 720
+# Cop supports --auto-correct.
+SpaceInsideParens:
+  Enabled: false
+
+# Offense count: 3
+# Cop supports --auto-correct.
+SpecialGlobalVars:
+  Enabled: false
+
+# Offense count: 91
+# Cop supports --auto-correct.
+StringConversionInInterpolation:
+  Enabled: false
+
+# Offense count: 45608
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+StringLiterals:
+  Enabled: false
+
+# Offense count: 197
+Tab:
+  Enabled: false
+
+# Offense count: 592
+# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
+TrailingComma:
+  Enabled: false
+
+# Offense count: 125
+# Cop supports --auto-correct.
+# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, Whitelist.
+TrivialAccessors:
+  Enabled: false
+
+# Offense count: 94
+UnderscorePrefixedVariableName:
+  Enabled: false
+
+# Offense count: 42
+UnlessElse:
+  Enabled: false
+
+# Offense count: 278
+# Cop supports --auto-correct.
+UnusedBlockArgument:
+  Enabled: false
+
+# Offense count: 1010
+# Cop supports --auto-correct.
+UnusedMethodArgument:
+  Enabled: false
+
+# Offense count: 6
+UselessAccessModifier:
+  Enabled: false
+
+# Offense count: 405
+UselessAssignment:
+  Enabled: false
+
+# Offense count: 3
+UselessSetterCall:
+  Enabled: false
+
+# Offense count: 13
+# Cop supports --auto-correct.
+VariableInterpolation:
+  Enabled: false
+
+# Offense count: 29
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+VariableName:
+  Enabled: false
+
+# Offense count: 23
+Void:
+  Enabled: false
+
+# Offense count: 6
+# Cop supports --auto-correct.
+WhileUntilDo:
+  Enabled: false
+
+# Offense count: 1
+# Configuration parameters: MaxLineLength.
+WhileUntilModifier:
+  Enabled: false
+
+# Offense count: 521
+# Cop supports --auto-correct.
+WordArray:
+  MinSize: 29
diff --git a/.travis.yml b/.travis.yml
index c4eb308..620ec9e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,7 +15,6 @@ matrix:
       gemfile: Gemfile
     - rvm: 2.1.1
       gemfile: Gemfile
-      env: COVERAGE=true
     - rvm: 2.1.1
       gemfile: gemfiles/Gemfile-edge
     - rvm: jruby-18mode
diff --git a/CHANGELOG.md b/CHANGELOG.md
index add1c53..8e1968f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,654 @@
+## 1.24.0 10/09/2014
+*Hash* 1bc78346c02294a0aa3e114f02e89143e0f25a4f
+
+Statistic     | Value
+------------- | --------:
+Collaborators | 30
+Downloads     | 6923953
+Forks         | 1302
+Open Issues   | 220
+Watchers      | 3232
+
+**MVP!** Michael Hale
+
+#### [AWS]
+*   Setup a fog keypair only if not supplied. thanks Timur Alperovich
+
+#### [AWS|Beanstalk]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|CDN]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|CloudFormation]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|DNS]
+*   Add  instrumentor. thanks Michael Hale
+
+#### [AWS|DataPipeline]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|DynamoDB]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|EMR]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|Elasticache]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|Glacier]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|RDS]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|Redshift]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|SES]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|SNS]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|SQS]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|STS]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|SimpleDB]
+*   Add instrumentor. thanks Michael Hale
+
+#### [AWS|Storage]
+*   Add instrumentor. thanks Michael Hale
+
+#### [GH-3156]
+*   Fix fog binary dependencies. thanks Paul Thornthwaite
+
+#### [GH-3157]
+*   Replace 1.9 hashes with Hash rockets. thanks Paul Thornthwaite
+*   Fixed additional 1.9 hash. thanks Paul Thornthwaite
+
+#### [aws|compute]
+*   fix mock az filtering. thanks geemus
+
+#### [aws|dns]
+*   Fix some syntax errors. thanks Nat Welch
+*   mark mocked tests as pending. thanks geemus
+*   1.8 compat fix. thanks geemus
+
+#### [aws|iam]
+*   mock fixes. thanks geemus
+
+#### [dynect|dns]
+*   Let job_poll_timeout be specified. thanks Dan Peterson
+
+#### [google|compute]
+*   added centos, opensuse images. thanks Eric Johnson
+*   Refactor Compute to use the new Shared module. thanks Ferran Rodenas
+*   Change how get_region works for mocks. thanks Nat Welch
+*   Make get_region look the same for real and mock. thanks Nat Welch
+*   Change target pool code to be correct and consistent with fog. thanks Nat Welch
+*   mark target pool tests as pending to fix travis. thanks geemus
+
+#### [google|dns]
+*   Add initial support for Google Cloud DNS. thanks Marcin Owsiany
+*   Let non-mocked tests run by setting an env variable. thanks Marcin Owsiany
+*   Add support for get_managed_zone, with tests. thanks Marcin Owsiany
+
+#### [google|monitoring]
+*   Add support for Google Cloud Monitoring. thanks Ferran Rodenas
+
+#### [google|sql]
+*   Initial support for Google Cloud SQL. thanks Ferran Rodenas
+*   Add support for Flags. thanks Ferran Rodenas
+*   Add support for Operations. thanks Ferran Rodenas
+*   Add support for Instances. thanks Ferran Rodenas
+*   Add support for SslCerts. thanks Ferran Rodenas
+*   Add support for BackupRuns. thanks Ferran Rodenas
+*   Add examples. thanks Ferran Rodenas
+*   Use the correct directory for Google Cloud SQL examples. thanks Ferran Rodenas
+
+#### [google|storage]
+*   workaround excon headers issue. thanks geemus
+*   fix for failing mocked object tests. thanks geemus
+
+#### [hp|storage]
+*   workaround excon headers issue. thanks geemus
+*   fix storage tests to use new excon headers stuff. thanks geemus
+
+#### [linode|compute]
+*   Get number of CPU cores from the API. thanks Keefe
+
+#### [misc]
+*   openstack storage: add possibility to set publicity to containers. thanks  Lomoff
+*   make public option of container attr_reader. thanks  Lomoff
+*   fix mistyping in openstack storage directory model. thanks  Lomoff
+*   Adding dnsSuffixList support. thanks Ahmed Elsabbahy
+*   Reworded dnsSuffixList comment. thanks Ahmed Elsabbahy
+*   warning: mismatched indentations at 'end' with 'def'. thanks Akira Matsuda
+*   warning: assigned but unused variable - reponse. thanks Akira Matsuda
+*   Remove region defaults from Rackspace services. thanks Ash Wilson
+*   Remove the deprecation notices. thanks Ash Wilson
+*   :lipstick: Whitespace. thanks Ash Wilson
+*   Test different means of creating load balancers. thanks Ash Wilson
+*   Yard docs and optional parameters for lbs. thanks Ash Wilson
+*   Add deprecation notices to storage and queues. thanks Ash Wilson
+*   Consistently use :rackspace_queues_url. thanks Ash Wilson
+*   The "nodes" element is actually nullable. thanks Ash Wilson
+*   Whitespace touchups. thanks Ash Wilson
+*   Reorganize clb fixtures, add a minimal case. thanks Ash Wilson
+*   Port and nodes are *not* required for LB creation. thanks Ash Wilson
+*   Formatting stick!. thanks Ash Wilson
+*   Test for creating a bootable volume. thanks Ash Wilson
+*   Accept `:image_id` to create bootable volumes. thanks Ash Wilson
+*   Wait for volumes to become available. thanks Ash Wilson
+*   create_server request and test. thanks Ash Wilson
+*   Allow manual specification of :block_device_mapping. thanks Ash Wilson
+*   :block_device_mapping_v2 needs to be an Array. thanks Ash Wilson
+*   Give the BFV servers different names. thanks Ash Wilson
+*   Create bootable volumes from the Volume model. thanks Ash Wilson
+*   Boot-from-volume doesn't work from standard flavors. thanks Ash Wilson
+*   servers.create(:boot_volume_id or :boot_image_id). thanks Ash Wilson
+*   Missed an accessor there. thanks Ash Wilson
+*   Warn if you specify both boot_volume_id and boot_image_id. thanks Ash Wilson
+*   Add an image id to mock volumes when appropriate. thanks Ash Wilson
+*   All flavors are bootable if you're mocking. thanks Ash Wilson
+*   add ebs optimization. thanks Ben Chadwick
+*   remove leading slash from Rackspace compute_v2 request paths. thanks Ben Sandberg
+*   catch invalid uri. thanks Chris Thompson
+*   Require docker-api in Gemfile. thanks Daniel Lobato
+*   added ready? for sshable. thanks Denis Barishev
+*   Add support for granting and revoking DB access to Cloud Databases. thanks Evan Light
+*   Handle host specification on database users. thanks Evan Light
+*   create_user, grant_user_access, and revoke_user_access now support host access restrictions. thanks Evan Light
+*   Oops. Added that initializer just so I could pry inside of it. Don't need it now!. thanks Evan Light
+*   Oops another pry call to remove... thanks Evan Light
+*   Check region against static list, only if host is a subdomain of amazonaws.com. thanks Fabian Wiesel
+*   removing the depreciation warning when calling key_pair from an aws server. thanks Graeme Wilson
+*   adding the get and put methods for the aws amazon password policy commands. thanks Graeme Wilson
+*   rename put_account_password_policy to update_account_password_policy. thanks Graeme Wilson
+*   cleaning up extra spaces. thanks Graeme Wilson
+*   updating to the correct url for reference. thanks Graeme Wilson
+*   adding the delete method for the aws account_password_policy. thanks Graeme Wilson
+*   Show failure for Openstack Storate service_type. thanks Greg Blomquist
+*   Update the Openstack Storage service type. thanks Greg Blomquist
+*   Fix parsing of SpotInstanceRequests responce when we also specify NetworkInterface. thanks Igor Rodionov
+*   Fix to follow ruby code style. thanks Igor Rodionov
+*   Updating the HP connect docs. thanks JJ Asghar
+*   Updated to CloudStack 4.3 and re-added historical function behavior. thanks Jeff Moody
+*   Revert "Updated to CloudStack 4.4 API and re-added historical function behavior.". thanks Jeff Moody
+*   Redux of update to CloudStack 4.4 API and supporting "overloaded" methods to support old and new styles of calling     CloudStack API functions.     This should allow all options to be passed as a single hash or as an ordered list of parameters. thanks Jeff Moody
+*   Depend on fog-radosgw. thanks Jon K Hellan
+*   Fix AWS::AutoScaling::Instance#healthy?. thanks Jordan Running
+*   Allow get_object_https_url to accept a method. thanks Kieran Pilkington
+*   Adjust get_object_https_url method documentation. thanks Kieran Pilkington
+*   Local storage: Always try to create directories, handle already existing. thanks Mark Yen
+*   remove hack for linode not filtering avail.linodeplans by planid. thanks Marques Johansson
+*   rescue with correct Linode::NotFound namespace. thanks Marques Johansson
+*   Error if FOG_CREDENTIAL doesn't match session. thanks Matt Bostock
+*   Add vertical spacing for readability. thanks Matt Bostock
+*   Clean up Excon::Errors::SocketError::EOFError warning in vcloud_directory. thanks Matt Ray
+*   Correct typos. thanks Riordan
+*   Support for core Route53 HealthChecks API calls. thanks Riordan
+*   Add missing fields from DNS server requests. thanks Riordan
+*   Add missing fields to DNS record model. thanks Riordan
+*   change service catalog lookup to be type based. thanks Mike Hagedorn
+*   change to OS type request on failure. thanks Mike Hagedorn
+*   make default lookup key in ServiceCatalog type and not name. thanks Mike Hagedorn
+*   dont run a real test if the mocks are enabled. thanks Mike Hagedorn
+*   vaguely working Query mixin. thanks Mike Pountney
+*   Solid query API mixin, with tests. thanks Mike Pountney
+*   Mock vdc model tests are passing. thanks Mike Pountney
+*   find_by_query support for vdcs collection. thanks Mike Pountney
+*   Fix failing test -- Description is optional. thanks Mike Pountney
+*   Add Query support to Vms. thanks Mike Pountney
+*   Enable model vapp_tests in Mock mode. thanks Mike Pountney
+*   Enable Mock support for Model task tests. thanks Mike Pountney
+*   Add query support to tasks model, inc Mock. thanks Mike Pountney
+*   Fix up tasks_tests; add missing data from Mock. thanks Mike Pountney
+*   no mock for custom_fields. thanks Mike Pountney
+*   vApp get_execute_query 'get by name' mock. thanks Mike Pountney
+*   Fix error in assumption about TaskRecord queries. thanks Mike Pountney
+*   Replace Fog::Time with Time. thanks Mike Pountney
+*   Make task record translation more robust. thanks Mike Pountney
+*   TaskRecord ObjectName is optional. thanks Mike Pountney
+*   Empty commit to prompt Travis run. thanks Mike Pountney
+*   Not specifying Owner details caused issue in Query Mock. thanks Mike Pountney
+*   Whitespace cleanup of #3069. thanks Nat Welch
+*   add missing HEAD Bucket request, with a basic test in there. thanks Nathan Sullivan
+*   adding support for network interfaces and public IP association (non-default VPCs) for EC2 spot instances. thanks Nathan Sullivan
+*   Revert "adding support for network interfaces and public IP association (non-default VPCs) for EC2 spot instances". thanks Nathan Sullivan
+*   added public? and acl method to s3 file and minor refactoring. thanks Nico
+*   adding tests for aws file acl and public? method. thanks Nico
+*   Move chunk_size parameter to the connection_options table. thanks Pierre Massat
+*   Vcloud director: Add static routing support to Edge Gateway. thanks Simas Cepaitis
+*   Improve test a bit. thanks Simas Cepaitis
+*   Fix typo. thanks Simas Cepaitis
+*   :GatewayInterface is located 1 level deeper. thanks Simas Cepaitis
+*   allow userdata to be passed to Rackspace AutoScale. thanks Thom May
+*   Accept Block For Get Requests. thanks Tim
+*   resolve conflicts. thanks Tim
+*   remove Git Markup. thanks Tim
+*   Revert "S3 invalid signature generation". thanks Wesley Beary
+*   Make possible to get credentials value, since it's needed to start a console connection. thanks com
+*   fixes around MVP. thanks geemus
+*   update contributors. thanks geemus
+*   remove files duplicated from fog-core. thanks geemus
+*   fix signature to properly escape. thanks lawrence
+*   Update signaturev4.rb. thanks lawrence
+*   remove sakuracloud libs and add fog sakura-cloud to gem depends. thanks sawanoboly
+*   remove fog/bin/sakuracloud and copy it to fog_sakuracloud. thanks sawanoboly
+*   Added backend services resource to gce compute. thanks snyquist2
+*   Added backend services example and model classes. thanks snyquist2
+*   added 'add backend services backend', global forwarding rules, target http proxies, and url maps. thanks snyquist2
+*   ]fixed bug in global forwarding rules get. thanks snyquist2
+*   fixed whitespace issues. thanks snyquist2
+*   fixed whitespace issues. thanks snyquist2
+*   correct files changes accidentally. thanks snyquist2
+*   correct issues in previous commit. thanks snyquist2
+*   fixed previous commit. thanks snyquist2
+*   remove excess file. thanks snyquist2
+*   added tests for list requests. thanks snyquist2
+*   corrected naming on tests. thanks snyquist2
+*   fixed image create. thanks snyquist2
+*   added tests for http health checks, images, target pools, and forwarding rules. thanks snyquist2
+*   modified l7 load balancing example. thanks snyquist2
+
+#### [oVirt]
+*   expose ips attribute. thanks Erik van Pienbroek
+
+#### [openstack]
+*   should allow endpoint_type on storage for authentication. thanks Guilherme Souza
+*   fix network.rb. thanks Naoto TAKAHASHI
+
+#### [rackspace]
+*   Add support for httpsRedirect flag. thanks Mike Dillon
+*   Fetch https_redirect on demand if it is nil. thanks Mike Dillon
+*   set default region in mock helper for tests. thanks geemus
+
+
+## 1.23.0 07/17/2014
+*Hash* 19c712a0b0d449c0e0cceaf94e3ee8703814db32
+
+Statistic     | Value
+------------- | --------:
+Collaborators | 30
+Downloads     | 6050760
+Forks         | 1243
+Open Issues   | 192
+Watchers      | 3129
+
+**MVP!** Achim Ledermüller
+
+#### [#3048]
+*   Lock down rest-client version. thanks Paul Thornthwaite
+*   Don't drop 1.8.7 checking yet. thanks Paul Thornthwaite
+
+#### [AWS]
+*   add describe_vpc_attribute. thanks Konstantinos Natsakis
+
+#### [AWS|Compute]
+*   support for modify_subnet_attribute. thanks Frederick Cheung
+
+#### [GH-2932]
+*   Disable brittle test. thanks Paul Thornthwaite
+
+#### [aws]
+*   add mock tagging for acls and vpcs, refactor types. thanks Ben House
+*   support `xvd` based devices (HVM). thanks Jason Hansen
+*   update refs to ec2_compatibility_mode. thanks Michael Hale
+
+#### [aws/security_group]
+*   Support mock of group from another account. thanks Greg Burek
+
+#### [aws|compute]
+*   adding support for t2 instance class. thanks Yousef Ourabi
+
+#### [aws|elb]
+*   add support for ELB connection draining. thanks Blake Gentry
+*   Fix tests so that they work with FOG_MOCK=false for both EC2-Classic and VPC style AWS accounts. thanks Michael Hale
+
+#### [cloudsigma]
+*   remove meaningless 'related' attribute type. thanks geemus
+
+#### [dynect|dns]
+*   Fixes exception behavior for 307's. thanks Nick Janus
+
+#### [glesys]
+*   API change, new attribute :bandwidth added. thanks  and Tomas Skogberg
+
+#### [google | compute]
+*   add google-containers project for images. thanks Eric Johnson
+
+#### [google|compute]
+*   remove hard-coded references to /projects/google/. thanks Eric Johnson
+*   Some fixes for Images. thanks Ferran Rodenas
+*   Improve Server support. thanks Ferran Rodenas
+*   Enable passing the google key as a String. thanks Ferran Rodenas
+*   Add disk_size_gb to 'Image' model. thanks Ferran Rodenas
+*   Add DiskType resource. thanks Ferran Rodenas
+*   Add support for DiskTypes in Disks. thanks Ferran Rodenas
+*   Fix operations scopes for compute engine. thanks ashmrtnz
+
+#### [misc]
+*   remove :url param from get_service request for google storage. thanks  Lomoff
+*   fix disks and servers live tests. thanks  Lomoff
+*   remove some test output, add size_gb as a required field for disk creation. thanks  Lomoff
+*   rewrite the way model is waited in live tests. thanks  Lomoff
+*   fix asynchronious disks collection tests. thanks  Lomoff
+*   fix object test (it already was shared object with such name somewhere). thanks  Lomoff
+*   fix live tests for google engine. thanks  Lomoff
+*   add new line to the end of google_tests_helper.rb. thanks  Lomoff
+*   refactor to remove backoff-if-unfound function from google compute service. thanks  Lomoff
+*   fix 1.8.7 compatibility. thanks  Lomoff
+*   merge with master. thanks  Lomoff
+*   one: changed name nic to interface. thanks ller
+*   one server: added interfaces_attributes. thanks ller
+*   one: added nil defaults for interfaces. thanks ller
+*   one: added to_label to flavor. thanks ller
+*   one: added vlan and to_label for network. thanks ller
+*   one: added groupid for servers. thanks ller
+*   one: raise one errors if vm allocation fails. thanks ller
+*   Revert "[opennebula] ruby 1.8.7: add gem require_relativ". thanks ller
+*   Move PrivateIpAddress to the NetworkInterface structure. thanks Andrew Hodges
+*   Link catalog item to a catalog in Mock. thanks Anna Shipman
+*   Add Mock for a vAppTemplate. thanks Anna Shipman
+*   Add a Mock for post_instantiate_vapp_template. thanks Anna Shipman
+*   Do not return a network from sample config. thanks Anna Shipman
+*   Add Mock for put_memory. thanks Anna Shipman
+*   Add Mock for put_vm. thanks Anna Shipman
+*   Add Mock for put_cpu. thanks Anna Shipman
+*   Add Mock for get_vapp_metadata. thanks Anna Shipman
+*   Add Mock for put metadata. thanks Anna Shipman
+*   Add Mock for get_vms_in_lease_from_query. thanks Anna Shipman
+*   Add Mock for edgeGateway query. thanks Anna Shipman
+*   Make name of network less generic. thanks Anna Shipman
+*   Add Mock for orgVdc in get_execute_query. thanks Anna Shipman
+*   Add support for tags for Data Pipeline. thanks Anthony Accardi
+*   allow to instantiate template without network_id. thanks Barrett Jones
+*   promote read replica test (pending), style cleanup. thanks Ben Chadwick
+*   fix EngineVersion for PendingModifiedValues (plus minor cleanup). thanks Ben Chadwick
+*   add tagSet to describe_network_acls. thanks Ben House
+*   pass tags when creating network acl. thanks Ben House
+*   remove tag setting from describe_network_acls. thanks Ben House
+*   apply tag filters to network acls. thanks Ben House
+*   add tests for acl tag filtering. thanks Ben House
+*   clean up acl test tag. thanks Ben House
+*   update delete_tags request to match create_tags. thanks Ben House
+*   add tagging for vpcs. thanks Ben House
+*   move tagged_resources method to compute. thanks Ben House
+*   tag vpc after it is created. thanks Ben House
+*   tag acl after it is created. thanks Ben House
+*   merge tags if present, reset mocks after acl/vpc tests. thanks Ben House
+*   promote read replicas. thanks Benjamin Chadwick
+*   fix. thanks Benjamin Chadwick
+*   fix parser. thanks Benjamin Chadwick
+*   update to mocking code. thanks Benjamin Chadwick
+*   rename Fog::Compute::OpenStack::Tenants#find_by_id to #get for consistency. thanks Brett Lentz
+*   add ability to replace existing Dyn records. thanks Brett Lentz
+*   Typo in fog.io link. thanks ltje
+*   Content type to upload vAppTemplates is application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml'. thanks Daniel Aragao
+*   Fixes attributes when generating xml body for post deploy vapps. thanks Daniel Aragao
+*   Adds VPN section to edge gateway service configuration. thanks Daniel Aragao
+*   Adds DHCP to edge gateway service configuration. thanks Daniel Aragao
+*   Using end_point rather than static IP 10.194.1.65 on xsi. thanks Daniel Aragao
+*   mock wasn't being set with FOG_MOCK env variable. thanks Daniel Aragao
+*   updated regions list. thanks Dave Benvenuti
+*   Behave more like DO when private_networking flag is passed in.  Include a private_ip_address in the response only if the region supports private networking. thanks Dave Benvenuti
+*   fixed whitespace. thanks Dave Benvenuti
+*   Fixing uniq_id issue with create_load_balancer mock. thanks Dejan Menges
+*   Forgot to commit uniq_id. thanks Dejan Menges
+*   Fixing uniq_id issue with create_load_balancer mock. thanks Dejan Menges
+*   Forgot to commit uniq_id. thanks Dejan Menges
+*   Deduplicating, using Fog::Mock.random_numbers(). thanks Dejan Menges
+*   Add pretend networking and interface association to the network interface mocking. thanks Eric Herot
+*   sub double for single quotes. thanks Eric Herot
+*   Treat device index as string instead of int. thanks Eric Herot
+*   Set instance vpcId based on subnet vpcId. thanks Eric Herot
+*   More aggressively reset the mocking environment. thanks Eric Herot
+*   Add ipaddress gem requirement. thanks Eric Herot
+*   Add some line breaks to duplicate interface failure test. thanks Eric Herot
+*   Reset mocking environment before acl test. thanks Eric Herot
+*   Reset mocking environment in ELB model tests. thanks Eric Herot
+*   Reset mocking environment in internet gateway tests. thanks Eric Herot
+*   Reset mocking environment in route tests. thanks Eric Herot
+*   Reset mock environment in assign private ip tests. thanks Eric Herot
+*   Allow subnets with same CIDR but different IP (and test for it). thanks Eric Herot
+*   support r3 instances & expose virtualization type. thanks Eugene Howe
+*   properly initialize compute object inside elb methods. thanks Eugene Howe
+*   fix for 1.8.7. thanks Eugene Howe
+*   allow files in personality to have symbol keys. thanks Gabe Conradi
+*   Use latest AWS EC2 API version. thanks Greg Burek
+*   Adds encrypted EBS snapshots. thanks Greg Burek
+*   Adds encrypted EBS volumes. thanks Greg Burek
+*   Adds parsing for encrypted block devices to create_image. thanks Greg Burek
+*   Adds comment about using encrypted flag with block device mapping on run_instances. thanks Greg Burek
+*   Updates volume mocks to reflect new IOPs to size ratio of 30:1. thanks Greg Burek
+*   Get to green. thanks Greg Burek
+*   Correct AWS API version to one in the past. thanks Greg Burek
+*   Full API coverage of the CloudStack 4.2.X API. thanks Jeff Moody
+*   Updated to no longer change historical method signatures. thanks Jeff Moody
+*   Add Fog::Compute.create_many and bootstrap_many. thanks John Keiser
+*   Move save_many to servers, reuse save_many in save. thanks John Keiser
+*   Fix describe_internet_gateways calls for >1 igw. thanks Jon Topper
+*   AWS Ensure NetworkInterface model exposes private ip addresses. thanks Jonathan Serafini
+*   AWS Ensure allocation_id is set on private ip address. thanks Jonathan Serafini
+*   Add the DisableApiTermination flag to the AWS Server model, so it can be sent on instance creation. thanks Jordan Day
+*   hardcoded linode flavor cores until they add it to their api. thanks Josh Blancett
+*   update for new linode flavor ids. thanks Josh Blancett
+*   add request for linode.config.delete. thanks Josh Blancett
+*   add request for linode.config.update. thanks Josh Blancett
+*   Denser code style. thanks Konstantinos Natsakis
+*   Updated setup method to retry once on disconnect to try to address issues with Ubuntu 12.04 images. thanks Kyle Rames
+*   rebasing with master. thanks Kyle Rames
+*   Fix #2892: "rake travis" fails with can't modify frozen String. thanks Marcin Owsiany
+*   Added ip_address methods consistent with openstack. thanks Marcus Nilsson
+*   Add fog-softlayer module . thanks Matt Eldridge
+*   Update links to DigitalOcean SSH-key docs. thanks Matthew Breeden
+*   remove www subdomain from digital ocean ssh-key links. thanks Matthew Breeden
+*   Support for required EvaluateTargetHealth for ALIAS records. thanks Matthew O'Riordan
+*   took out os_account_meta_temp_url_key as a required parameter and marked it as deprecated.  this code does not belong in the hp provider. thanks Mike Hagedorn
+*   added exception for using temp urls with no key. thanks Mike Hagedorn
+*   Add basic mock data for vapp/vm. thanks Mike Pountney
+*   add Mock for get_vapp. thanks Mike Pountney
+*   extend get_vdc mock to return contained vApps. thanks Mike Pountney
+*   add vApps-in-vDC support in Mock. thanks Mike Pountney
+*   Add LeaseSettingSection Mocks for vApps. thanks Mike Pountney
+*   Add Owner Mocks for vApps. thanks Mike Pountney
+*   Add Mocks for VM VirtualHardwareSection GET methods. thanks Mike Pountney
+*   Mock for get_snapshot_section. thanks Mike Pountney
+*   Mock for get_network_connection_system_section_vapp. thanks Mike Pountney
+*   Mock for get_operating_system_section. thanks Mike Pountney
+*   Add Mock for get_startup_section. thanks Mike Pountney
+*   Add (crap) Mock for get_network_config_section_vapp. thanks Mike Pountney
+*   Add Mock for get_runtime_info_section_type. thanks Mike Pountney
+*   Add Mock support in get_vm_capabilities. thanks Mike Pountney
+*   Fix 1.8.7 bug - trailing comma in arg list. thanks Mike Pountney
+*   Fix 1.8.7 bug - trailing comma in arg list. thanks Mike Pountney
+*   Workaround for Hash.select in Ruby 1.8. thanks Mike Pountney
+*   Remove coveralls. thanks Nat Welch
+*   Remove coveralls from test helper. thanks Nat Welch
+*   second attempt to fix issue# 2748, plus fix the same problem for the volume/s and spot request/s models as well. thanks Nathan Sullivan
+*   Change signature of stop method. thanks Olle Lundberg
+*   Add support for expunging node in cloudstack. thanks Olle Lundberg
+*   Remove COVERAGE env setup on Travis. thanks Paul Thornthwaite
+*   Add Rubocop and checklist. thanks Paul Thornthwaite
+*   Guard Ruby 1.8.7 against Rubocop in short term. thanks Paul Thornthwaite
+*   Standardise empty lines throughout codebase. thanks Paul Thornthwaite
+*   Standardise indentation of access modifiers. thanks Paul Thornthwaite
+*   Remove trailing blank lines. thanks Paul Thornthwaite
+*   Remove trailing whitespace. thanks Paul Thornthwaite
+*   Update rubocop todo list. thanks Paul Thornthwaite
+*   Replace `alias` with `alias_method`. thanks Paul Thornthwaite
+*   Standardise on collection methods. thanks Paul Thornthwaite
+*   Replace deprecated File.exists? method. thanks Paul Thornthwaite
+*   Replace deprecated Hash methods. thanks Paul Thornthwaite
+*   Update rubocop todo list. thanks Paul Thornthwaite
+*   Remove providers directory. thanks Paul Thornthwaite
+*   Remove edge check for fog-brightbox. thanks Paul Thornthwaite
+*   Make job polling requests for Dyn retryable within exconn by passing the idempotent option. thanks Peter Drake
+*   initial opennebula fog class and directories. thanks Sebastian Saemann
+*   dynect: dns: dramatically improve speed of 'get_all_records' request and 'records.all' method. thanks Shawn Catanzarite
+*   Add custom_fields support to vcloud_director. thanks Simas Cepaitis
+*   Fix typo. thanks Simas Cepaitis
+*   Add custom_fields to vapp, remove debug info. thanks Simas Cepaitis
+*   Add couple of functions and tests. thanks Simas Cepaitis
+*   Rename method to put_product_sections and update it's documentation. thanks Simas Cepaitis
+*   Add custom_fields support to vcloud_director. thanks Simas Cepaitis
+*   Fix typo. thanks Simas Cepaitis
+*   Add custom_fields to vapp, remove debug info. thanks Simas Cepaitis
+*   Add couple of functions and tests. thanks Simas Cepaitis
+*   Rename method to put_product_sections and update it's documentation. thanks Simas Cepaitis
+*   remove :host from request parameters, stopping excon errors. thanks Tom Armitage
+*   Add options support. thanks Tom Noonan II
+*   Add options argument to all() method. thanks Tom Noonan II
+*   Add pagination markers (#2908). thanks Tom Noonan II
+*   Fix variable name error. thanks Tom Noonan II
+*   Resolve copypasta error. thanks Tom Noonan II
+*   Resolve issue where metadata was being discarded too early. thanks Tom Noonan II
+*   Create volume in specific availability zone. thanks sig
+*   remove jekyll dependency. thanks geemus
+*   allow 1.8.7 failures. thanks geemus
+*   remove duplication in fog/xml connection stuff. thanks geemus
+*   fix 2.1.1 syntax error with updated attributes. thanks geemus
+*   bump fog-core dep. thanks geemus
+*   remove explicit call for 'type' hash, fallback to default. thanks geemus
+*   fix erroneous date_time type. thanks geemus
+*   Update create_server.rb. thanks georgyous
+*   pass options to zerigo list_hosts. thanks joe morgan
+*   Add options for listing hosts     Options include     - Per_page     - Page     - FQDN. thanks joe morgan
+*   update styling per rubocop. thanks joe morgan
+*   update indentation. thanks joe morgan
+
+#### [opennebula]
+*   adapted the new require structure and added uuid for server model. thanks ller
+*   removed debug infos. thanks ller
+*   raise an ArgumentError if VM name is empty/nil. thanks ller
+*   add gem dependencies and require. thanks ller
+*   add vm_allocate and network tests. thanks ller
+*   make one provider available to fog. thanks ller
+*   added README and some examples for opennebula provider. thanks ller
+*   Added several mocks for fit live testing. thanks ller
+*   fixed indentation and changed string interpolation. thanks ller
+*   typo in raise. thanks ller
+*   interface model: attributes are nil by default; added persisted?. thanks ller
+*   network model: removed default definition of attribute description. thanks ller
+*   fixed indentation. thanks ller
+*   VNC console cleanup. thanks ller
+*   fixed indentation. thanks ller
+*   interface model: added method persisted?. thanks ller
+*   server model: comments and rename of methods (for compability to foreman). thanks ller
+*   removed opennebula dependecies. thanks ller
+*   gemspec: moved opennebula to  development_dependency. thanks ller
+*   fixed indentation. thanks ller
+*   add credentials to mock_helper. thanks ller
+*   ruby 1.8.7: add gem require_relativ. thanks ller
+*   fix link in readme. thanks ller
+*   VNC: require local file compatible to ruby 1.8.7. thanks ller
+*   flavor model: minor simplifications. thanks ller
+*   fixed indentations. thanks ller
+*   model flavor: lowercase attributes. thanks ller
+*   added groups.get and groups.get_by_name filters. thanks ller
+*   added flavors.get_by_name. thanks ller
+*   code cleanup, indentations. thanks ller
+*   use flavors.get_by_name for live tests. thanks ller
+*   clean up and code simplification. thanks ller
+*   use id instead of uid for groups. thanks ller
+*   interface: use persisted? instead of new?; remove constructor. thanks ller
+*   use id instead of uuid for network. thanks ller
+*   network tests: use id not uuid. thanks ller
+*   Added live/mock tests for group/s. thanks ller
+*   network: removed unnecessary constructor. thanks ller
+*   fix for #3003 - soft load the opennebula gem. thanks ller
+
+#### [openstack | server]
+*   start/stop/pause/suspend actions. thanks Marek Kasztelnik
+
+#### [openstack|compute]
+*   added descriptions to returns blocks in the security_groups tests in hopes of trying to track down the cause of issue #2874. thanks Kyle Rames
+
+#### [openstack|storage]
+*    fixing bug metadata indifferent access implementation. thanks Kyle Rames
+
+#### [ovirt]
+*   force volumes reload on volume locked? check. thanks Amos Benari
+
+#### [rackspace]
+*   updating authentication endpoints. thanks Kyle Rames
+
+#### [rackspace|autoscale]
+*   fixing typo in docs. thanks Kyle Rames
+*   call clear on collection if group has not been persisted in order to prevent fog from lazy loading non-existent collections. thanks Kyle Rames
+*   updating getting started docs. thanks Kyle Rames
+*   fixing broken tests. thanks Kyle Rames
+
+#### [rackspace|compute_v2]
+*   escaping flavor_id and image_id in get operations. thanks Kyle Rames
+
+#### [rackspace|load balancers]
+*   updating node handling so it is similar to PR#3010. thanks Kyle Rames
+
+#### [rackspace|loadbalancers]
+*   updated code so that you did not need to pass nodes in during load balancer creation. thanks Kyle Rames
+*   updated to only call clear on newly created nodes and access rule collections for unpersisted load balancers. thanks Kyle Rames
+*   The id, and ipVersion were not being populated when making a create load balancer call. Fixes #3008. thanks Kyle Rames
+
+#### [rackspace|storage]
+*   made the index operator use indifferent access in order to fix issue #2881. thanks Kyle Rames
+
+#### [stormondemand|dns]
+*   fixing typo in require statement. thanks Kyle Rames
+
+#### [vcloud_director]
+*   Add :put_network request. thanks Mike Pountney
+*   missing post_capture_vapp functionality. thanks Nick Osborn
+*   Implement post_create_catalog_item. thanks Nick Osborn
+*   gateway should be nullable in network. thanks geemus
+*   allow nullable FenceMode. thanks geemus
+
+#### [vsphere]
+*   Fixed bug in which clients are forced to wait for instance.     The 'wait' option was being forced to true in clone_vm. thanks Cyrus Team
+*   Fixed bug in which clients are forced to wait for instance.     The 'wait' option was being forced to true in clone_vm. thanks Cyrus Team
+*   expose VM virtual hardware version. thanks Michael Moll
+*   Remove the relative_path attribute. thanks Timur Alperovich
+*   Use the server_id in interfaces. thanks Timur Alperovich
+*   Use server_id in the Volumes collection. thanks Timur Alperovich
+
+#### [zerigo]
+*   Fix Invalid Excon request warning. thanks Phil Kates
+
+
+## 1.22.1 05/29/2014
+*Hash* ca603769c940481885d60cda68288eb124c49cd6
+
+Statistic     | Value
+------------- | --------:
+Collaborators | 30
+Downloads     | 5483958
+Forks         | 1181
+Open Issues   | 180
+Watchers      | 3056
+
+**MVP!** Ferran Rodenas
+
+#### [GH-2873]
+*   Ensure fog is using fog-core 1.22+. thanks Paul Thornthwaite
+
+#### [google|compute]
+*   Add Region tests. thanks Ferran Rodenas
+*   Update Images support. thanks Ferran Rodenas
+*   Update Servers support. thanks Ferran Rodenas
+*   Improve Disks support. thanks Ferran Rodenas
+*   Update Addresses suport. thanks Ferran Rodenas
+
+#### [misc]
+*   Enabled :path_style for Google Cloud Storage for allowing CNAME buckets. thanks Romain Haenni
+
+
 ## 1.22.0 04/17/2014
 *Hash* 6d2c2d0575f9f7337bd01d17428dc12b7105329a
 
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 6a94974..58ceab6 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -1,6 +1,8 @@
+* A.S. Lomoff <lomov.as at gmail.com>
 * Aaron Bell <aarontbell at gmail.com>
 * Aaron Suggs <aaron at ktheory.com>
 * Abhishek Chanda <abhishek.becs at gmail.com>
+* Achim Ledermüller <achim.ledermueller at netways.de>
 * Adam Bozanich <adam.boz at gmail.com>
 * Adam Greene <adam at sweetspotdiabetes.com>
 * Adam Heinz <amh at metricwise.net>
@@ -9,6 +11,7 @@
 * Adam Tucker <adam.j.tucker at gmail.com>
 * Adan Saenz <asaenz at momentumsi.com>
 * Ahmed Al Hafoudh <alhafoudh at freevision.sk>
+* Ahmed Elsabbahy <aelsabbahy at promnetwork.com>
 * Akira Matsuda <ronnie at dio.jp>
 * Akshay Joshi <me at akshayjoshi.com>
 * Akshay Moghe <amoghe at maginatics.com>
@@ -43,6 +46,7 @@
 * Andrei Serdeliuc <andrei at serdeliuc.ro>
 * Andrew Bruce <andrew at camelpunch.com>
 * Andrew Donald Kennedy <andrew.kennedy at cloudsoftcorp.com>
+* Andrew Hodges <betawaffle at gmail.com>
 * Andrew Kuklewicz <andrew at beginsinwonder.com>
 * Andrew Leonard <andy at hurricane-ridge.com>
 * Andrew Newman <andrew.newman at sdx.com.au>
@@ -52,7 +56,9 @@
 * Andy Delcambre <adelcambre at engineyard.com>
 * Andy Lindeman <andy at andylindeman.com>
 * Angelo Marletta <angelo.marletta at gmail.com>
+* Anna Shipman <anna at annashipman.co.uk>
 * Anshul Khandelwal <anshul at anshulkhandelwal.com>
+* Anthony Accardi <anthony at swipely.com>
 * Anthony Eden <anthonyeden at gmail.com>
 * Anton Lindstrom <anton at glesys.se>
 * Anton Lindström <lindztr at gmail.com>
@@ -68,13 +74,17 @@
 * Athir Nuaimi <anuaimi at devfoundry.com>
 * Avrohom Katz <iambpentameter at gmail.com>
 * BK Box <bk at theboxes.org>
+* Barrett Jones <barretthjones at gmail.com>
 * Bart Vercammen <bart.vercammen at portico.io>
 * Ben Bleything <ben at bleything.net>
 * Ben Burkert <ben at benburkert.com>
 * Ben Butler-Cole <ben at bridesmere.com>
 * Ben Chadwick <bchadwick at mdsol.com>
+* Ben House <ben at benhouse.io>
 * Ben Hundley <ben.hundley at gmail.com>
+* Ben Sandberg <ben at pdxfixit.com>
 * Ben Turley <ben at scan.me>
+* Benjamin Chadwick <bchadwick at mdsol.com>
 * Benjamin Manns <benmanns at gmail.com>
 * Benson Kalahar <bensonk42 at gmail.com>
 * Benton Roberts <benton at bentonroberts.com>
@@ -91,12 +101,14 @@
 * Bradley Schaefer <bradley.schaefer at gmail.com>
 * Brandon Dunne <bdunne at redhat.com>
 * Brendan Fosberry <brendan.fosberry at rackspace.com>
+* Brett Lentz <blentz at redhat.com>
 * Brett Porter <brett at apache.org>
 * Brian D. Burns <iosctr at gmail.com>
 * Brian Dorry <bdorry at Brian-Dorrys-MacBook-Pro.local>
 * Brian Hartsock <brian.hartsock at gmail.com>
 * Brian Hartsock <brian.hartsock at rackspace.com>
 * Brian Nelson <bnelson at sugarcrm.com>
+* Brian O'Keefe <brianok at linode.com>
 * Brian Palmer <brianp at instructure.com>
 * Brice Figureau <brice-puppet at daysofwonder.com>
 * Bruno Enten <bruno at enten-itc.ch>
@@ -125,9 +137,11 @@
 * Chris Kershaw <ckershaw at 6fusion.com>
 * Chris Mague <github at mague.com>
 * Chris Roberts <chrisroberts.code at gmail.com>
+* Chris Thompson <chris.thompson at govdelivery.com>
 * Chris Wuest <chris.wuest at rackspace.com>
 * Chris Wuest <chris at chriswuest.com>
 * Christian Berendt <berendt at b1-systems.de>
+* Christian Höltje <docwhat at gerf.org>
 * Christian Paredes <cp at redbluemagenta.com>
 * Christoph Schiessl <chs at proactive.cc>
 * Christoph Witzany <christoph at web.crofting.com>
@@ -141,6 +155,7 @@
 * Cody Herriges <c.a.herriges at gmail.com>
 * Curtis Stewart <cstewart at momentumsi.com>
 * Curtis Stewart <cstewart at transcendcomputing.com>
+* Cyrus Team <cyrusteam at cyruslists.com>
 * Dan Abel <dan.abel at digital.cabinet-office.gov.uk>
 * Dan Bode <dan at puppetlabs.com>
 * Dan Carley <dan.carley at gmail.com>
@@ -149,12 +164,14 @@
 * Dan Prince <dprince at redhat.com>
 * Dan Prince <princepd at alumni.jmu.edu>
 * Dan Simpson <dan.simpson at gmail.com>
+* Daniel Aragao <daragao at thoughtworks.com>
 * Daniel Libanori <daniellibanori at gmail.com>
 * Daniel Lobato <elobatocs at gmail.com>
 * Daniel Reichert <Daniel.Reichert at rackspace.com>
 * Daniel Schweighoefer <daniel at netsteward.net>
 * Danny Garcia <dannygarcia.me at gmail.com>
 * Darrin Eden <darrin.eden at gmail.com>
+* Dave Benvenuti <davebenvenuti at gmail.com>
 * Dave Donahue <dave at 12spokes.com>
 * Dave Myron <therealdave.myron at gmail.com>
 * Dave Ungerer <daveungerer at gmail.com>
@@ -168,6 +185,8 @@
 * David Prater <dprater at cisco.com>
 * David Wittman <david at wittman.com>
 * Decklin Foster <decklin at red-bean.com>
+* Dejan Menges <dejan.menges at 9cookies.com>
+* Denis Barishev <denz at twiket.com>
 * Diego Desani <diego at newservers.com>
 * Dmitry Dedov <dmitry.dedov at tut.by>
 * Dmitry Gutov <dgutov at yandex.ru>
@@ -203,6 +222,7 @@
 * Erik Mackdanz <erik at infochimps.com>
 * Erik Michaels-Ober <sferik at gmail.com>
 * Erik Terpstra <erterpstra at gmail.com>
+* Erik van Pienbroek <erik.vanpienbroek at prorail.nl>
 * Eugene Howe & Josh Lane <ehowe at engineyard.com>
 * Eugene Howe <ehowe at engineyard.com>
 * Eugene Howe <eugene at xtreme-computers.net>
@@ -211,12 +231,14 @@
 * Evan Petrie <ep873k at att.com>
 * Evan Smith <evans at n2uitive.com>
 * Ewoud Kohl van Wijngaarden <ewoud at kohlvanwijngaarden.nl>
+* Fabian Wiesel <fabian.wiesel at gmx.net>
 * Fabio Lessa <flessa at gmail.com>
 * Ferran Rodenas <frodenas at gmail.com>
 * Fletcher Nichol <fnichol at nichol.ca>
 * Frederic Jean <fred at fredjean.net>
 * Frederick Cheung <frederick.cheung at gmail.com>
 * Fujimura Daisuke <ffujimurah at gmail.com>
+* Gabe Conradi <gabe at tumblr.com>
 * Gabriel Horner <gabriel.horner at gmail.com>
 * Gabriel Rosendorf <gabriel.rosendorf at weather.com>
 * Garima Singh <igarimasingh at gmail.com>
@@ -229,11 +251,14 @@
 * Geraud <geraud at cardspring.net>
 * Gerred Dillon <gerred at quickleft.com>
 * Glenn Tweedie <glenn.tweedie at agworld.com.au>
+* Graeme Wilson <graeme.wilson at whitelabelled.com>
 * Greg Blomquist <gblomqui at redhat.com>
+* Greg Burek <greg.burek at gmail.com>
 * Greg Sutcliffe <greg.Sutcliffe at gmail.com>
 * Greg Sutcliffe <gsutclif at redhat.com>
 * Grégory Karékinian <greg at karekinian.com>
 * Grzesiek Kolodziejczyk <gkolodziejczyk at gmail.com>
+* Guilherme Souza <guivideojob at gmail.com>
 * Gustavo Villalta <gvillalta99 at gmail.com>
 * H. Wade Minter <minter at lunenburg.org>
 * H. Wade Minter <minter at teamsnap.com>
@@ -247,10 +272,13 @@
 * Hunter Nield <hunternield at gmail.com>
 * Ian Downes <ian at ubalo.com>
 * Igor Bolotin <i at x.com>
+* Igor Rodionov <goruha at gmail.com>
+* Igor Rodionov <rodionov.ig at gmail.com>
 * Ijonas Kisselbach <ijonas.kisselbach at gmail.com>
 * Irio Irineu Musskopf Junior <irio.musskopf at caixadeideias.com.br>
 * Istvan Hoka <istvan.hoka at gmail.com>
 * JD Huntington & Jason Hansen <jdhuntington at engineyard.com>
+* JJ Asghar <jj at getchef.com>
 * Jacob Burkhart & Shai Rosenfeld <jburkhart at engineyard.com>
 * Jacob Mattingley <jem at ubalo.com>
 * Jade Tucker <jadeatucker at gmail.com>
@@ -268,12 +296,14 @@
 * Jamie Paton <jamiep at activestate.com>
 * Jason Faulkner <jay at jvf.cc>
 * Jason Hansen & Josh Lane <jhansen at engineyard.com>
+* Jason Hansen <jason at slack.io>
 * Jason Montleon <jmontleo at redhat.com>
 * Jason Roelofs <jameskilton at gmail.com>
 * Jason Smith <jsmith at gold-sonata.com>
 * Jay Faulkner <jay.faulkner at rackspace.com>
 * Jay Perry <jperry at brightcove.com>
 * Jeff McCune <jeff at puppetlabs.com>
+* Jeff Moody <fifthecho at gmail.com>
 * Jeffrey C. Ollie <jeff at ocjtech.us>
 * Jens Braeuer <jens at numberfour.eu>
 * Jeremy Deininger <jeremy at rightscale.com>
@@ -285,6 +315,7 @@
 * Jim Berlage <jberlage at mdsol.com>
 * Jim Salinas <jim.salinas at rackspace.com>
 * Joachim Nolten <joachim at viewbook.com>
+* Joakim Kolsjö and Tomas Skogberg <all+jocke+tomas at barsoom.se>
 * Joe Kinsella <joe.kinsella at gmail.com>
 * Joe Topjian <joe at topjian.net>
 * Joe Yates <joe.g.yates at gmail.com>
@@ -294,6 +325,7 @@
 * John Feminella <johnf at fluxcrux.com>
 * John Ferlito <johnf at inodes.org>
 * John Hawthorn <john.hawthorn at gmail.com>
+* John Keiser <jkeiser at opscode.com>
 * John Nishinaga <jingoro at casa-z.org>
 * John Parker <jparker at urgetopunt.com>
 * John Wang <john at johntwang.com>
@@ -301,14 +333,18 @@
 * Jon Crosby <jon at joncrosby.me>
 * Jon Frisby <jfrisby at mrjoy.com>
 * Jon Holt <jonmholt at gmail.com>
+* Jon K Hellan <jon.kare.hellan at uninett.no>
 * Jon Palmer <jmpalme4 at gmail.com>
 * Jon Palmer <jmpalmer at mitre.org>
 * Jon Topper <jon at scalefactory.com>
 * Jon-Erik Schneiderhan <jschneiderhan at gmail.com>
 * Jonas Pfenniger <jonas at pfenniger.name>
 * Jonas Pfenniger <zimbatm at zimbatm.com>
+* Jonathan Serafini <jonathan.serafini at lightspeedretail.com>
 * Jonathon Scanes <me at jscanes.com>
 * Joonas Reynders <joonas.reynders at iki.fi>
+* Jordan Day <jordan.day at perceptivesoftware.com>
+* Jordan Running <jr at getchef.com>
 * Jose Diaz-Gonzalez <josegonzalez at users.noreply.github.com>
 * Jose Luis Salas <josacar at gmail.com>
 * Josef Stribny <jstribny at redhat.com>
@@ -350,9 +386,11 @@
 * Kenny Johnston <kjohnston.ca at gmail.com>
 * Kevin Chan <kevin at yinkei.com>
 * Kevin McFadden <kmcfadden at gmail.com>
+* Kevin Menard <kevin at nirvdrum.com>
 * Kevin Menard <nirvdrum at gmail.com>
 * Kevin Moore <kevin at thinkpixellab.com>
 * Kevin Olbrich <kolbrich at 6fusion.com>
+* Kieran Pilkington <kieran776 at gmail.com>
 * Konstantin Haase <konstantin.mailinglists at googlemail.com>
 * Konstantinos Natsakis <k.natsakis at xe.gr>
 * Kunal Parikh <kunal at techthumb.in>
@@ -386,6 +424,9 @@
 * Marc Grimme <marc.grimme at googlemail.com>
 * Marc Seeger <mail at marc-seeger.de>
 * Marc Seeger <marc.seeger at caperwhite.com>
+* Marcin Owsiany <porridge at google.com>
+* Marcus Nilsson <marcus.nilsson at klarna.com>
+* Marek Kasztelnik <mkasztelnik at gmail.com>
 * Mariusz Pietrzyk <wijet at wijet.pl>
 * Marjun Pagalan <mpagalan at gmail.com>
 * Mark A. Miller <mmiller at homeaway.com>
@@ -394,7 +435,9 @@
 * Mark Phillips <mark.phillips2 at bskyb.com>
 * Mark Rushakoff <mark.rushakoff at gmail.com>
 * Mark Turner <mark at amerine.net>
+* Mark Yen <marky at activestate.com>
 * Markus Schwed <maschwed at anynines.com>
+* Marques Johansson <marques at linode.com>
 * Marshall Yount <marshall at yountlabs.com>
 * Martin Emde <martin.emde at gmail.com>
 * Martin Englund <martin at englund.nu>
@@ -403,6 +446,8 @@
 * Mateusz Juraszek <meceo00 at gmail.com>
 * Matheus Mina <mfbmina at gmail.com>
 * Mathias Meyer <meyer at paperplanes.de>
+* Matt Bostock <matt at mattbostock.com>
+* Matt Eldridge <matt.eldridge at us.ibm.com>
 * Matt Gillooly <matt at swipely.com>
 * Matt Griffin <matt at griffinonline.org>
 * Matt Pokress <matt.pokress at imagefortress.com>
@@ -413,6 +458,8 @@
 * Matt Todd <chiology at gmail.com>
 * Matthew Black <matthew.black at sap.com>
 * Matthew Black <matthewblack at successfactors.com>
+* Matthew Breeden <matt at integrallis.com>
+* Matthew O'Riordan <matthew.oriordan at gmail.com>
 * Matthias Gröbner <m.groebner at me.com>
 * Matthieu Huin <mhu at enovance.com>
 * Max Lincoln <max at devopsy.com>
@@ -428,12 +475,14 @@
 * Michael Jackson <michael.jackson at rackspace.com>
 * Michael Keirnan <mgk at noteflight.com>
 * Michael Linderman <mlinderm at stanford.edu>
+* Michael Moll <kvedulv at kvedulv.de>
 * Michael Rykov <mrykov at gmail.com>
 * Michael Sprauer <Sprauer at Inline.de>
 * Michael Zeng <michaelzeng at swipely.com>
 * Michał Krzyżanowski <michal.krzyzanowski+github at gmail.com>
 * Michiel Sikkes <michiel.sikkes at gmail.com>
 * Mick Pollard <aussielunix at gmail.com>
+* Mike Dillon <mike.dillon at synctree.com>
 * Mike Fiedler <miketheman at gmail.com>
 * Mike Gehard <mgehard at pivotallabs.com>
 * Mike Hagedorn <mike at silverchairsolutions.com>
@@ -443,6 +492,7 @@
 * Mike Pountney <Mike.Pountney at gmail.com>
 * Ming Jin <skyairmj at gmail.com>
 * Mitchell Hashimoto <mitchell.hashimoto at gmail.com>
+* Naoto TAKAHASHI <tnaoto at gmail.com>
 * Nassos Antoniou <nassos.antoniou at gimiscale.com>
 * Nat Welch <nat at natwelch.com>
 * Nathan Sullivan <nsullivan at kixeye.com>
@@ -456,12 +506,14 @@
 * Nicholas Ricketts <nightshade427 at gmail.com>
 * Nick Huanca <nhuanca at pingidentity.com>
 * Nick Huanuca <nhuanca at pingidentity.com>
+* Nick Janus <nickjanus at gmail.com>
 * Nick Merwin <nick at lemurheavy.com>
 * Nick Osborn <nick.osborn at digital.cabinet-office.gov.uk>
 * Nick Osborn <nick at osborn.io>
 * Nick Osborn <nick at osborn.ws>
 * Nick Osborn <nickosborn at redzebraconsulting.com>
 * Nick Osborn <nosborn at users.noreply.github.com>
+* Nico <nico.ritsche at gmail.com>
 * Nik Wakelin <nik at codetocustomer.com>
 * Nikita Pomyashchiy <pomnikita at gmail.com>
 * Niko Felger <niko.felger at gmail.com>
@@ -472,6 +524,7 @@
 * Ohad Levy <ohadlevy at gmail.com>
 * Ohad Levy <ohadlevy at redhat.com>
 * Oleg <shtepsel_duhast at mail.ru>
+* Olle Lundberg <olle.lundberg at klarna.com>
 * Omar Reiss <omar.reiss at innovationfactory.eu>
 * Ozgur Akan <ozgurakan at gmail.com>
 * Pablo Baños López <pablo at besol.es>
@@ -498,12 +551,14 @@
 * Peter Weldon <peter.weldon at null.net>
 * Peter Weldon <peter at lautus.net>
 * Phil Cohen <github at phlippers.net>
+* Phil Kates <me at philkates.com>
 * Phil Kates <phil.kates at cloudkick.com>
 * Philip Mark Deazeta <pdeazeta at morphlabs.com>
 * Philip Mark Deazeta <pmdeazeta at gmail.com>
 * Philip Mark M. Deazeta <pdeazeta at morphlabs.com>
 * Philip Potter <philip.potter at digital.cabinet-office.gov.uk>
 * Pierre Carrier <pierre at gcarrier.fr>
+* Pierre Massat <pierre at dakis.com>
 * Pieter van de Bruggen <pieter at puppetlabs.com>
 * Pieter van de Bruggen <pvande at gmail.com>
 * Piotr Kedziora <piotr.kedziora27 at gmail.com>
@@ -522,6 +577,7 @@
 * Robert Bousquet <rbousquet at newleaders.com>
 * Robert Clark <rbclark at mitre.org>
 * Rodrigo Estebanez <restebanez at mdsol.com>
+* Romain Haenni <admin at zlabs.ch>
 * Romain Vrignaud <romain at yakaz.com>
 * Romain Vrignaud <rvrignaud at gmail.com>
 * Ruben Koster <ruben.koster at innovationfactory.eu>
@@ -550,6 +606,7 @@
 * Sean Hart <boardnutz at blacklight.net>
 * Sean Hart <sean.hart at gree.co.jp>
 * Sean Porter <portertech at gmail.com>
+* Sebastian Saemann <ssaemann at netways.de>
 * Sergio Rubio <rubiojr at frameos.org>
 * Sergio Rubio <sergio.rubio at github.com>
 * Seth Chisamore <schisamo at opscode.com>
@@ -559,6 +616,8 @@
 * Shaun Davis <davissp14 at gmail.com>
 * Shawn Catanzarite <me at shawncatz.com>
 * Shay Bergmann <shayb at panaya.com>
+* Simas Cepaitis <simas.cepaitis at pearson.com>
+* Simas Cepaitis <simas.cepaitis at snc.lt>
 * Simon Gate <simon at smgt.me>
 * Simon Josi <me at yokto.net>
 * Simon Rozet <simon at rozet.name>
@@ -588,10 +647,12 @@
 * Thom Mahoney & Eugene Howe <tmahoney at engineyard.com>
 * Thom Mahoney <tmahoney at engineyard.com>
 * Thom May <thom at digital-science.com>
+* Thom May <thom_may at external.mckinsey.com>
 * Thomas Cate <tcate at workstation.rackspace>
 * Thomas Cate <thomascate at gmail.com>
 * Thomas Kadauke <thomas.kadauke at googlemail.com>
 * Thomas Wright <tfwright at gmail.com>
+* Tim <tim.lawrence1984 at gmail.com>
 * Tim Carey-Smith <tim at spork.in>
 * Tim Carey-Smith and Andy Delcambre <tcareysmith at engineyard.com>
 * Timothy Klim <klimtimothy at gmail.com>
@@ -600,8 +661,10 @@
 * Toby Hede <tobyhede at info-architects.net>
 * Todd Willey <todd at rubidine.com>
 * Todd Willey <xtoddx at gmail.com>
+* Tom Armitage <tom at infovore.org>
 * Tom Hulihan <hulihan.tom159 at gmail.com>
 * Tom Mornini <tmornini at engineyard.com>
+* Tom Noonan II <thomas.noonan at rackspace.com>
 * Tom Stuart <tom at experthuman.com>
 * Tomasz Bak <tomasz.bak at nsn.com>
 * Tomokazu Hirai <tomokazu.hirai at kddi-web.com>
@@ -636,6 +699,7 @@
 * Yann Hamon <Yann at trailburning.com>
 * Yauheni Kryudziuk <yauheni.kryudziuk at xing.com>
 * Your Name <seanhart at funzio.com>
+* Yousef Ourabi <yourabi at gmail.com>
 * Zachary Danger Campbell <zacharydangercampbell at gmail.com>
 * Ziyad Mir <ziyadm at google.com>
 * Ziyad Mir <ziyadmir at gmail.com>
@@ -649,6 +713,7 @@
 * angus <ags at sdx.com.au>
 * anomalousthought <joseph at anomalousthought.com>
 * arnab <arnab.deka at gmail.com>
+* ashmrtnz <ashmrtnz at google.com>
 * atlantacs <bc at atlantacs.com>
 * avic85 <avi.cohen.20 at gmail.com>
 * bdorry <bdorry at bdorry-thinkpad.(none)>
@@ -667,15 +732,18 @@
 * dJason <jasonwalp at yahoo.com>
 * dblock <dblock at dblock.org>
 * deepj <deepjungle.maca at gmail.com>
+* dennis-sig <d.bijlsma at sig.eu>
 * dm1try <dmitry.dedov at tut.by>
 * endzyme <nick.huanca at gmail.com>
 * epdejager <eliza.dejager at statpro.com>
+* fbiete at gmail.com <fbiete at gmail.com>
 * fred-secludit <fred at secludit.com>
 * freeformz <emuller at engineyard.com>
 * gavin <gavin at gavin02.(none)>
 * geemus (Wesley Beary) <geemus at gmail.com>
 * geemus (Wesley Beary) <wbeary at engineyard.com>
 * geemus <geemus at gmail.com>
+* georgyous <boss_geo2005 at yahoo.com>
 * ggoodale <ggoodale at gmail.com>
 * ggoodale <grant at moreblinktag.com>
 * gilles <gilles at peerpong.com>
@@ -684,6 +752,7 @@
 * heyryanw <ryanw at ryanws-MacBook-Pro.local>
 * howete <thowe at hp.com>
 * irdan <daniel.reichert at rackspace.com>
+* james-lawrence <james-lawrence at users.noreply.github.com>
 * jamiehannaford <jamie at limetree.org>
 * jblancett <josh at firma8.com>
 * jc00ke <jesse at jc00ke.com>
@@ -720,6 +789,7 @@
 * sawanoboly <sawanoboriyu at higanworks.com>
 * seanhandley <seanhandley at hackmanchester.com>
 * seeingidog <ian at ruby-code.com>
+* snyquist2 <snyquist at google.com>
 * thattommyhall <thattommyhall at gmail.com>
 * tipt0e <topo-2 at charter.net>
 * torake.fransson <torake.fransson at klarna.com>
diff --git a/Gemfile b/Gemfile
index 01bcb0c..23db6d7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,7 +2,6 @@ source "https://rubygems.org"
 
 group :development, :test do
   # This is here because gemspec doesn't support require: false
-  gem 'coveralls', :require => false
   gem "netrc", :require => false
   gem "octokit", :require => false
 end
diff --git a/README.md b/README.md
index cdf6d0a..b008061 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,6 @@ fog is the Ruby cloud services library, top to bottom:
 [![Build Status](https://secure.travis-ci.org/fog/fog.png?branch=master)](http://travis-ci.org/fog/fog)
 [![Dependency Status](https://gemnasium.com/fog/fog.png)](https://gemnasium.com/fog/fog)
 [![Code Climate](https://codeclimate.com/github/fog/fog.png)](https://codeclimate.com/github/fog/fog)
-[![Coverage Status](https://coveralls.io/repos/fog/fog/badge.png?branch=master)](https://coveralls.io/r/fog/fog?branch=master)
 [![Gem Version](https://fury-badge.herokuapp.com/rb/fog.png)](http://badge.fury.io/rb/fog)
 [![Gittip](http://img.shields.io/gittip/geemus.png)](https://www.gittip.com/geemus/)
 
diff --git a/Rakefile b/Rakefile
index e954d16..ef5058a 100644
--- a/Rakefile
+++ b/Rakefile
@@ -48,17 +48,15 @@ end
 
 GEM_NAME = "#{name}"
 task :default => :test
-task :travis  => ['test', 'test:travis', 'coveralls_push_workaround']
+task :travis  => ['test', 'test:travis']
 
 Rake::TestTask.new do |t|
-  t.pattern = File.join("**", "spec", "**", "*_spec.rb")
+  t.pattern = File.join("spec", "**", "*_spec.rb")
 end
 
 namespace :test do
-  mock = 'true' || ENV['FOG_MOCK']
+  mock = ENV['FOG_MOCK'] || 'true'
   task :travis do
-      # jruby coveralls causes an OOM in travis
-      ENV['COVERAGE'] = 'false' if RUBY_PLATFORM == 'java'
       sh("export FOG_MOCK=#{mock} && bundle exec shindont")
   end
   task :vsphere do
@@ -212,12 +210,3 @@ Fog::Rake::ChangelogTask.new
 
 require "tasks/github_release_task"
 Fog::Rake::GithubReleaseTask.new
-
-task :coveralls_push_workaround do
-  use_coveralls = (Gem::Version.new(RUBY_VERSION) > Gem::Version.new('1.9.2'))
-  if (ENV['COVERAGE'] != 'false') && use_coveralls
-    require 'coveralls/rake/task'
-    Coveralls::RakeTask.new
-    Rake::Task["coveralls:push"].invoke
-  end
-end
diff --git a/benchs/parse_vs_push.rb b/benchs/parse_vs_push.rb
index 01bd998..b700a31 100644
--- a/benchs/parse_vs_push.rb
+++ b/benchs/parse_vs_push.rb
@@ -3,7 +3,6 @@ require 'rubygems'
 require 'nokogiri'
 
 class Parser < Nokogiri::XML::SAX::Document
-
   attr_reader :response
 
   def initialize
@@ -37,7 +36,6 @@ class Parser < Nokogiri::XML::SAX::Document
   def value
     @value.dup
   end
-
 end
 
 data = <<-DATA
diff --git a/checksums.yaml.gz b/checksums.yaml.gz
deleted file mode 100644
index 41eaa09..0000000
Binary files a/checksums.yaml.gz and /dev/null differ
diff --git a/fog.gemspec b/fog.gemspec
index 703f007..e1f1844 100644
--- a/fog.gemspec
+++ b/fog.gemspec
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
   ## If your rubyforge_project name is different, then edit it and comment out
   ## the sub! line in the Rakefile
   s.name              = 'fog'
-  s.version           = '1.22.0'
-  s.date              = '2014-04-17'
+  s.version           = '1.24.0'
+  s.date              = '2014-10-09'
   s.rubyforge_project = 'fog'
 
   ## Make sure your summary is short. The description may be as long
@@ -41,18 +41,21 @@ Gem::Specification.new do |s|
 
   ## List your runtime dependencies here. Runtime dependencies are those
   ## that are needed for an end user to actually USE your code.
-  s.add_dependency("fog-core", "~> 1.21", ">= 1.21.1")
+  s.add_dependency("fog-core", "~> 1.23")
   s.add_dependency("fog-json")
 
   s.add_dependency('nokogiri', '~> 1.5', '>= 1.5.11')
+  s.add_dependency('ipaddress', '~>0.5')
 
   # Modular providers
   s.add_dependency("fog-brightbox")
+  s.add_dependency("fog-softlayer")
+  s.add_dependency("fog-sakuracloud", ">= 0.0.4")
+  s.add_dependency("fog-radosgw", ">=0.0.2")
 
   ## List your development dependencies here. Development dependencies are
   ## those that are only needed during development
   s.add_development_dependency('minitest')
-  s.add_development_dependency('jekyll') unless RUBY_PLATFORM == 'java'
   s.add_development_dependency('rake')
   s.add_development_dependency('rbvmomi')
   s.add_development_dependency('yard')
@@ -61,12 +64,15 @@ Gem::Specification.new do |s|
   s.add_development_dependency('shindo', '~> 0.3.4')
   s.add_development_dependency('fission')
   s.add_development_dependency('pry')
+  s.add_development_dependency('opennebula', '>=4.4.0')
   s.add_development_dependency('google-api-client', '~> 0.6', '>= 0.6.2')
+  s.add_development_dependency('docker-api', '>= 1.8.0')
+  s.add_development_dependency('rubocop') if RUBY_VERSION > "1.9"
 
   if ENV["FOG_USE_LIBVIRT"]
     s.add_development_dependency('ruby-libvirt','~> 0.5.0')
   end
 
-  s.files = `git ls-files`.split("\n") - `git ls-files -- providers/`.split("\n")
+  s.files = `git ls-files`.split("\n")
   s.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
 end
diff --git a/gemfiles/Gemfile-edge b/gemfiles/Gemfile-edge
index 26c4f00..bd5433c 100644
--- a/gemfiles/Gemfile-edge
+++ b/gemfiles/Gemfile-edge
@@ -1,8 +1,5 @@
 source "https://rubygems.org"
 
-# Embedded provider gems
-gem "fog-brightbox", :path => "../providers/brightbox"
-
 # Shared components
 gem "fog-core", :github => "fog/fog-core"
 gem "fog-json", :github => "fog/fog-json"
diff --git a/gemfiles/Gemfile-ruby-1.8.7 b/gemfiles/Gemfile-ruby-1.8.7
index 7e98322..199b2fd 100644
--- a/gemfiles/Gemfile-ruby-1.8.7
+++ b/gemfiles/Gemfile-ruby-1.8.7
@@ -2,6 +2,7 @@ source "https://rubygems.org"
 
 gem 'nokogiri', '~>1.5.11'
 gem 'mime-types', '~>1.16'
+gem 'rest-client', '~> 1.6.7'
 
 group :development, :test do
   # This is here because gemspec doesn't support require: false
diff --git a/lib/fog.rb b/lib/fog.rb
index 87b869c..47db4b8 100644
--- a/lib/fog.rb
+++ b/lib/fog.rb
@@ -50,6 +50,7 @@ require 'fog/openstack'
 require 'fog/ovirt'
 require 'fog/sakuracloud'
 require 'fog/serverlove'
+require 'fog/softlayer'
 require 'fog/storm_on_demand'
 require 'fog/terremark'
 require 'fog/vcloud'
@@ -61,4 +62,4 @@ require 'fog/xenserver'
 require 'fog/zerigo'
 require 'fog/cloudsigma'
 require 'fog/openvz'
-
+require 'fog/opennebula'
diff --git a/lib/fog/atmos/core.rb b/lib/fog/atmos/core.rb
index cd98333..aff4700 100644
--- a/lib/fog/atmos/core.rb
+++ b/lib/fog/atmos/core.rb
@@ -2,10 +2,8 @@ require 'fog/core'
 
 module Fog
   module Atmos
-
     extend Fog::Provider
 
     service(:storage, 'Storage')
-
   end
 end
diff --git a/lib/fog/atmos/models/storage/directories.rb b/lib/fog/atmos/models/storage/directories.rb
index a7f22d1..28b984d 100644
--- a/lib/fog/atmos/models/storage/directories.rb
+++ b/lib/fog/atmos/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/atmos/models/storage/directory'
 module Fog
   module Storage
     class Atmos
-
       class Directories < Fog::Collection
-
         attribute :directory
 
         model Fog::Storage::Atmos::Directory
@@ -40,9 +38,7 @@ module Fog
           attributes = {:directory => directory}.merge(attributes) if directory
           super(attributes)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/atmos/models/storage/directory.rb b/lib/fog/atmos/models/storage/directory.rb
index e26a5ba..f212b90 100644
--- a/lib/fog/atmos/models/storage/directory.rb
+++ b/lib/fog/atmos/models/storage/directory.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class Atmos
-
       class Directory < Fog::Model
-
         identity :key, :aliases => :Filename
         attribute :objectid, :aliases => :ObjectID
 
@@ -44,10 +42,7 @@ module Fog
           end
           service.delete_namespace key
         end
-
-
       end
-
     end
   end
 end
diff --git a/lib/fog/atmos/models/storage/file.rb b/lib/fog/atmos/models/storage/file.rb
index 782746e..7507b64 100644
--- a/lib/fog/atmos/models/storage/file.rb
+++ b/lib/fog/atmos/models/storage/file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class Atmos
-
       class File < Fog::Model
-
         identity  :key,             :aliases => :Filename
 
         attribute :content_length,  :aliases => ['bytes', 'Content-Length'], :type => :integer
@@ -104,9 +102,7 @@ module Fog
         def directory=(new_directory)
           @directory = new_directory
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/atmos/models/storage/files.rb b/lib/fog/atmos/models/storage/files.rb
index 7b800b9..c44d599 100644
--- a/lib/fog/atmos/models/storage/files.rb
+++ b/lib/fog/atmos/models/storage/files.rb
@@ -4,9 +4,7 @@ require 'fog/atmos/models/storage/file'
 module Fog
   module Storage
     class Atmos
-
       class Files < Fog::Collection
-
         attribute :directory
         attribute :limit
         attribute :marker
@@ -25,7 +23,7 @@ module Fog
           files = data[:DirectoryEntry].select {|de| de[:FileType] == 'regular'}
           files.each do |s|
             data = service.head_namespace(directory.key + s[:Filename], :parse => false)
-            headers = Hash[data.headers["x-emc-meta"].split(", ").collect{|s|s.split("=")}]
+            headers = Hash[data.headers["x-emc-meta"].split(", ").map{|s|s.split("=")}]
             s[:content_length] = data.headers["Content-Length"]
             s[:content_type] = data.headers["Content-Type"]
             s[:created_at] = headers["ctime"]
@@ -37,7 +35,7 @@ module Fog
 
         def get(key, &block)
           requires :directory
-          data = service.get_namespace(directory.key + key, :parse => false)#, &block)
+          data = service.get_namespace(directory.key + key, :parse => false, &block)
           file_data = data.headers.merge({
             :body => data.body,
             :key  => key
@@ -70,9 +68,7 @@ module Fog
           requires :directory
           super({ :directory => directory }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/atmos/requests/storage/delete_namespace.rb b/lib/fog/atmos/requests/storage/delete_namespace.rb
index 6235380..b977388 100644
--- a/lib/fog/atmos/requests/storage/delete_namespace.rb
+++ b/lib/fog/atmos/requests/storage/delete_namespace.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Atmos
       class Real
-
         def delete_namespace(namespace = '', options = {})
           options = options.reject {|key, value| value.nil?}
           request({
@@ -12,7 +11,6 @@ module Fog
                     :query    => options
                   }.merge(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/atmos/requests/storage/get_namespace.rb b/lib/fog/atmos/requests/storage/get_namespace.rb
index e133963..8c3200d 100644
--- a/lib/fog/atmos/requests/storage/get_namespace.rb
+++ b/lib/fog/atmos/requests/storage/get_namespace.rb
@@ -2,9 +2,13 @@ module Fog
   module Storage
     class Atmos
       class Real
-
-        def get_namespace(namespace = '', options = {})
+        def get_namespace(namespace = '', options = {}, &block)
           options = options.reject {|key, value| value.nil?}
+
+          if block_given?
+            options[:response_block] = Proc.new
+          end
+
           request({
                     :expects  => 200,
                     :method   => 'GET',
@@ -13,7 +17,6 @@ module Fog
                     :parse => true
                   }.merge(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/atmos/requests/storage/head_namespace.rb b/lib/fog/atmos/requests/storage/head_namespace.rb
index 82b7b9c..b797cbf 100644
--- a/lib/fog/atmos/requests/storage/head_namespace.rb
+++ b/lib/fog/atmos/requests/storage/head_namespace.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Atmos
       class Real
-
         def head_namespace(namespace = '', options = {})
           options = options.reject {|key, value| value.nil?}
           request({
@@ -13,7 +12,6 @@ module Fog
                     :parse => true
                   }.merge(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/atmos/requests/storage/post_namespace.rb b/lib/fog/atmos/requests/storage/post_namespace.rb
index f8d6117..97aba5d 100644
--- a/lib/fog/atmos/requests/storage/post_namespace.rb
+++ b/lib/fog/atmos/requests/storage/post_namespace.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Atmos
       class Real
-
         def post_namespace(namespace = '', options = {})
           options = options.reject {|key, value| value.nil?}
           request({
@@ -13,7 +12,6 @@ module Fog
                     :parse => true
                   }.merge(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/atmos/requests/storage/put_namespace.rb b/lib/fog/atmos/requests/storage/put_namespace.rb
index cc7a42e..8509856 100644
--- a/lib/fog/atmos/requests/storage/put_namespace.rb
+++ b/lib/fog/atmos/requests/storage/put_namespace.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Atmos
       class Real
-
         def put_namespace(namespace = '', options = {})
           options = options.reject {|key, value| value.nil?}
           request({
@@ -13,7 +12,6 @@ module Fog
                     :parse => true
                   }.merge(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/atmos/storage.rb b/lib/fog/atmos/storage.rb
index 3ef9150..b00327e 100644
--- a/lib/fog/atmos/storage.rb
+++ b/lib/fog/atmos/storage.rb
@@ -71,7 +71,6 @@ module Fog
         def request(options)
           raise "Atmos Storage mocks not implemented"
         end
-
       end
 
       class Real
@@ -156,8 +155,8 @@ module Fog
 
           params.delete(:host) #invalid excon request parameter
 
-          parse = params.delete(:parse)        
-        
+          parse = params.delete(:parse)
+
           begin
             response = @connection.request(params, &block)
           rescue Excon::Errors::HTTPStatusError => error
@@ -179,7 +178,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/auto_scaling.rb b/lib/fog/aws/auto_scaling.rb
index 2ec273c..85b4567 100644
--- a/lib/fog/aws/auto_scaling.rb
+++ b/lib/fog/aws/auto_scaling.rb
@@ -177,7 +177,6 @@ module Fog
         end
       end
 
-
       class Mock
         include Fog::AWS::CredentialFetcher::ConnectionMethods
 
@@ -274,9 +273,7 @@ module Fog
         def setup_credentials(options)
           @aws_access_key_id = options[:aws_access_key_id]
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/beanstalk.rb b/lib/fog/aws/beanstalk.rb
index eb7ca48..ac89e15 100644
--- a/lib/fog/aws/beanstalk.rb
+++ b/lib/fog/aws/beanstalk.rb
@@ -4,11 +4,11 @@ module Fog
   module AWS
     class ElasticBeanstalk < Fog::Service
       extend Fog::AWS::CredentialFetcher::ServiceMethods
-      
+
       class InvalidParameterError < Fog::Errors::Error; end
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/beanstalk'
 
@@ -56,11 +56,9 @@ module Fog
       collection  :versions
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -79,6 +77,8 @@ module Fog
           @port       = options[:port]        || 443
           @scheme     = options[:scheme]      || 'https'
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.beanstalk'
         end
 
         def reload
@@ -120,31 +120,35 @@ module Fog
               }
           )
 
-          begin
-            @connection.request({
-                :body       => body,
-                :expects    => 200,
-                :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
-                :idempotent => idempotent,
-                :host       => @host,
-                :method     => 'POST',
-                :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError => error
-            match = Fog::AWS::Errors.match_error(error)
-            raise if match.empty?
-            raise case match[:code]
-                  when 'InvalidParameterValue'
-                    Fog::AWS::ElasticBeanstalk::InvalidParameterError.slurp(error, match[:message])
-                  else
-                    Fog::AWS::ElasticBeanstalk::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
-                  end
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
           end
+        end
 
+        def _request(body, idempotent, parser)
+          @connection.request({
+              :body       => body,
+              :expects    => 200,
+              :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
+              :idempotent => idempotent,
+              :method     => 'POST',
+              :parser     => parser
+          })
+        rescue Excon::Errors::HTTPStatusError => error
+          match = Fog::AWS::Errors.match_error(error)
+          raise if match.empty?
+          raise case match[:code]
+                when 'InvalidParameterValue'
+                  Fog::AWS::ElasticBeanstalk::InvalidParameterError.slurp(error, match[:message])
+                else
+                  Fog::AWS::ElasticBeanstalk::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
+                end
         end
       end
-
-
     end
   end
 end
diff --git a/lib/fog/aws/cdn.rb b/lib/fog/aws/cdn.rb
index 911f3cb..dd9c620 100644
--- a/lib/fog/aws/cdn.rb
+++ b/lib/fog/aws/cdn.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :host, :path, :port, :scheme, :version, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :host, :path, :port, :scheme, :version, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       model_path 'fog/aws/models/cdn'
       model       :distribution
@@ -30,7 +30,6 @@ module Fog
       request 'put_streaming_distribution_config'
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] =  {
@@ -147,6 +146,8 @@ EOF
 
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
+          @instrumentor      = options[:instrumentor]
+          @instrumentor_name = options[:instrumentor_name] || 'fog.aws.cdn'
           @connection_options = options[:connection_options] || {}
           @host       = options[:host]      || 'cloudfront.amazonaws.com'
           @path       = options[:path]      || '/'
@@ -180,6 +181,17 @@ EOF
           params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
           params[:headers]['Authorization'] = "AWS #{@aws_access_key_id}:#{signature(params)}"
           params[:path] = "/#{@version}/#{params[:path]}"
+
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(params, &block)
+            end
+          else
+            _request(params, &block)
+          end
+        end
+
+        def _request(params, &block)
           @connection.request(params, &block)
         end
 
diff --git a/lib/fog/aws/cloud_formation.rb b/lib/fog/aws/cloud_formation.rb
index 35c6fad..0133425 100644
--- a/lib/fog/aws/cloud_formation.rb
+++ b/lib/fog/aws/cloud_formation.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/cloud_formation'
       request :create_stack
@@ -21,11 +21,9 @@ module Fog
       request :list_stack_resources
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -53,6 +51,8 @@ module Fog
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
 
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.cloud_formation'
           @connection_options = options[:connection_options] || {}
           options[:region] ||= 'us-east-1'
           @host = options[:host] || "cloudformation.#{options[:region]}.amazonaws.com"
@@ -97,28 +97,34 @@ module Fog
             }
           )
 
-          begin
-            @connection.request({
-              :body       => body,
-              :expects    => 200,
-              :idempotent => idempotent,
-              :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
-              :method     => 'POST',
-              :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError => error
-            match = Fog::AWS::Errors.match_error(error)
-            raise if match.empty?
-            raise case match[:code]
-                  when 'NotFound', 'ValidationError'
-                    Fog::AWS::CloudFormation::NotFound.slurp(error, match[:message])
-                  else
-                    Fog::AWS::CloudFormation::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
-                  end
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
           end
-
         end
 
+        def _request(body, idempotent, parser)
+          @connection.request({
+            :body       => body,
+            :expects    => 200,
+            :idempotent => idempotent,
+            :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
+            :method     => 'POST',
+            :parser     => parser
+          })
+        rescue Excon::Errors::HTTPStatusError => error
+          match = Fog::AWS::Errors.match_error(error)
+          raise if match.empty?
+          raise case match[:code]
+                when 'NotFound', 'ValidationError'
+                  Fog::AWS::CloudFormation::NotFound.slurp(error, match[:message])
+                else
+                  Fog::AWS::CloudFormation::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
+                end
+        end
       end
     end
   end
diff --git a/lib/fog/aws/cloud_watch.rb b/lib/fog/aws/cloud_watch.rb
index 17c4c7d..06692af 100644
--- a/lib/fog/aws/cloud_watch.rb
+++ b/lib/fog/aws/cloud_watch.rb
@@ -35,7 +35,6 @@ module Fog
       collection  :alarms
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, region|
             hash[region] = Hash.new do |region_hash, key|
@@ -159,7 +158,6 @@ module Fog
             :parser     => parser
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/compute.rb b/lib/fog/aws/compute.rb
index 900d998..5e5b5a2 100644
--- a/lib/fog/aws/compute.rb
+++ b/lib/fog/aws/compute.rb
@@ -120,6 +120,7 @@ module Fog
       request :describe_volumes
       request :describe_volume_status
       request :describe_vpcs
+      request :describe_vpc_attribute
       request :detach_network_interface
       request :detach_internet_gateway
       request :detach_volume
@@ -132,6 +133,7 @@ module Fog
       request :modify_instance_attribute
       request :modify_network_interface_attribute
       request :modify_snapshot_attribute
+      request :modify_subnet_attribute
       request :modify_volume_attribute
       request :modify_vpc_attribute
       request :purchase_reserved_instances_offering
@@ -151,17 +153,32 @@ module Fog
       request :monitor_instances
       request :unmonitor_instances
 
+      class InvalidURIError < Exception; end
+
       # deprecation
       class Real
-
         def modify_image_attributes(*params)
           Fog::Logger.deprecation("modify_image_attributes is deprecated, use modify_image_attribute instead [light_black](#{caller.first})[/]")
           modify_image_attribute(*params)
         end
 
+        # http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html
+        def supported_platforms
+          describe_account_attributes.body["accountAttributeSet"].find{ |h| h["attributeName"] == "supported-platforms" }["values"]
+        end
       end
 
       class Mock
+        MOCKED_TAG_TYPES = {
+          'ami' => 'image',
+          'i' => 'instance',
+          'snap' => 'snapshot',
+          'vol' => 'volume',
+          'igw' => 'internet_gateway',
+          'acl' => 'network_acl',
+          'vpc' => 'vpc'
+        }
+
         include Fog::AWS::CredentialFetcher::ConnectionMethods
         include Fog::AWS::RegionMethods
 
@@ -279,7 +296,21 @@ module Fog
           @aws_credentials_expire_at = Time::now + 20
           setup_credentials(options)
           @region = options[:region] || 'us-east-1'
-          validate_aws_region @region
+
+          if @endpoint = options[:endpoint]
+            endpoint = URI.parse(@endpoint)
+            @host = endpoint.host or raise InvalidURIError.new("could not parse endpoint: #{@endpoint}")
+            @path = endpoint.path
+            @port = endpoint.port
+            @scheme = endpoint.scheme
+          else
+            @host = options[:host] || "ec2.#{options[:region]}.amazonaws.com"
+            @path       = options[:path]        || '/'
+            @persistent = options[:persistent]  || false
+            @port       = options[:port]        || 443
+            @scheme     = options[:scheme]      || 'https'
+          end
+          validate_aws_region(@host, @region)
         end
 
         def region_data
@@ -295,7 +326,7 @@ module Fog
         end
 
         def visible_images
-          images = self.data[:images].values.inject({}) do |h, image|
+          images = self.data[:images].values.reduce({}) do |h, image|
             h.update(image['imageId'] => image)
           end
 
@@ -310,22 +341,66 @@ module Fog
           images
         end
 
-        def ec2_compatibility_mode(enabled=true)
-          values = enabled ? ["EC2", "VPC"] : ["VPC"]
-          self.data[:account_attributes].detect { |h| h["attributeName"] == "supported-platforms" }["values"] = values
+        def supported_platforms
+          describe_account_attributes.body["accountAttributeSet"].find{ |h| h["attributeName"] == "supported-platforms" }["values"]
+        end
+
+        def enable_ec2_classic
+          set_supported_platforms(%w[EC2 VPC])
         end
 
+        def disable_ec2_classic
+          set_supported_platforms(%w[VPC])
+        end
+
+        def set_supported_platforms(values)
+          self.data[:account_attributes].find { |h| h["attributeName"] == "supported-platforms" }["values"] = values
+        end
+
+        def tagged_resources(resources)
+          Array(resources).map do |resource_id|
+            if match = resource_id.match(/^(\w+)-[a-z0-9]{8}/i)
+              id = match.captures.first
+            else
+              raise(Fog::Service::NotFound.new("Unknown resource id #{resource_id}"))
+            end
+
+            if MOCKED_TAG_TYPES.has_key? id
+              type = MOCKED_TAG_TYPES[id]
+            else
+              raise(Fog::Service::NotFound.new("Mocking tags of resource #{resource_id} has not been implemented"))
+            end
+
+            case type
+              when 'image'
+                unless visible_images.has_key? resource_id
+                 raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the image does not exist"))
+                end
+              when 'vpc'
+                if self.data[:vpcs].select {|v| v['vpcId'] == resource_id }.empty?
+                  raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the vpc does not exist"))
+                end
+              else
+                unless self.data[:"#{type}s"][resource_id]
+                 raise(Fog::Service::NotFound.new("Cannot tag #{resource_id}, the #{type} does not exist"))
+                end
+            end
+            { 'resourceId' => resource_id, 'resourceType' => type }
+          end
+        end
+
+
         def apply_tag_filters(resources, filters, resource_id_key)
           tag_set_fetcher = lambda {|resource| self.data[:tag_sets][resource[resource_id_key]] }
 
           # tag-key: match resources tagged with this key (any value)
-          if filters.has_key?('tag-key')
+          if filters.key?('tag-key')
             value = filters.delete('tag-key')
-            resources = resources.select{|r| tag_set_fetcher[r].has_key?(value)}
+            resources = resources.select{|r| tag_set_fetcher[r].key?(value)}
           end
 
           # tag-value: match resources tagged with this value (any key)
-          if filters.has_key?('tag-value')
+          if filters.key?('tag-value')
             value = filters.delete('tag-value')
             resources = resources.select{|r| tag_set_fetcher[r].values.include?(value)}
           end
@@ -336,7 +411,7 @@ module Fog
             tag_filters[key.gsub('tag:', '')] = filters.delete(key) if /^tag:/ =~ key
           end
           for tag_key, tag_value in tag_filters
-            resources = resources.select{|r| tag_value.include?(tag_set_fetcher[r][tag_key])}
+            resources = resources.select{|r| tag_value == tag_set_fetcher[r][tag_key]}
           end
 
           resources
@@ -382,13 +457,11 @@ module Fog
           @region                 = options[:region] ||= 'us-east-1'
           @instrumentor           = options[:instrumentor]
           @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.compute'
-          @version                = options[:version]     ||  '2013-10-01'
-
-          validate_aws_region @region
+          @version                = options[:version]     ||  '2014-06-15'
 
           if @endpoint = options[:endpoint]
             endpoint = URI.parse(@endpoint)
-            @host = endpoint.host
+            @host = endpoint.host or raise InvalidURIError.new("could not parse endpoint: #{@endpoint}")
             @path = endpoint.path
             @port = endpoint.port
             @scheme = endpoint.scheme
@@ -399,6 +472,8 @@ module Fog
             @port       = options[:port]        || 443
             @scheme     = options[:scheme]      || 'https'
           end
+
+          validate_aws_region(@host, @region)
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
         end
 
@@ -462,7 +537,6 @@ module Fog
                   Fog::Compute::AWS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
                 end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/core.rb b/lib/fog/aws/core.rb
index 635fcba..4018f02 100644
--- a/lib/fog/aws/core.rb
+++ b/lib/fog/aws/core.rb
@@ -69,7 +69,7 @@ module Fog
 
     def self.indexed_request_param(name, values)
       idx = -1
-      Array(values).inject({}) do |params, value|
+      Array(values).reduce({}) do |params, value|
         params["#{name}.#{idx += 1}"] = value
         params
       end
@@ -121,7 +121,6 @@ module Fog
     end
 
     class Mock
-
       def self.arn(vendor, account_id, path, region = nil)
         "arn:aws:#{vendor}:#{region}:#{account_id}:#{path}"
       end
@@ -219,10 +218,10 @@ module Fog
         request_id.join('-')
       end
       class << self
-        alias :reserved_instances_id :request_id
-        alias :reserved_instances_offering_id :request_id
-        alias :sqs_message_id :request_id
-        alias :sqs_sender_id :request_id
+        alias_method :reserved_instances_id, :request_id
+        alias_method :reserved_instances_offering_id, :request_id
+        alias_method :sqs_message_id, :request_id
+        alias_method :sqs_sender_id, :request_id
       end
 
       def self.reservation_id
diff --git a/lib/fog/aws/credential_fetcher.rb b/lib/fog/aws/credential_fetcher.rb
index 1fb6dda..fe23625 100644
--- a/lib/fog/aws/credential_fetcher.rb
+++ b/lib/fog/aws/credential_fetcher.rb
@@ -32,7 +32,6 @@ module Fog
       end
 
       module ConnectionMethods
-
         def refresh_credentials_if_expired
           refresh_credentials if credentials_expired?
         end
diff --git a/lib/fog/aws/data_pipeline.rb b/lib/fog/aws/data_pipeline.rb
index c1ddab0..d898167 100644
--- a/lib/fog/aws/data_pipeline.rb
+++ b/lib/fog/aws/data_pipeline.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/data_pipeline'
       request :activate_pipeline
@@ -53,8 +53,9 @@ module Fog
         # * DataPipeline object with connection to AWS.
         def initialize(options={})
           @use_iam_profile = options[:use_iam_profile]
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.data_pipeline'
           @connection_options     = options[:connection_options] || {}
-
           @version    = '2012-10-29'
           @region     = options[:region]      || 'us-east-1'
           @host       = options[:host]        || "datapipeline.#{@region}.amazonaws.com"
@@ -107,8 +108,17 @@ module Fog
           params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
           params[:headers]['Authorization'] = @signer.sign(params, date)
 
-          response = @connection.request(params)
-          response
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(params)
+            end
+          else
+            _request(params)
+          end
+        end
+
+        def _request(params)
+          @connection.request(params)
         end
       end
     end
diff --git a/lib/fog/aws/dns.rb b/lib/fog/aws/dns.rb
index 5af807f..bc25ff4 100644
--- a/lib/fog/aws/dns.rb
+++ b/lib/fog/aws/dns.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :host, :path, :port, :scheme, :version, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :host, :path, :port, :scheme, :version, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       model_path 'fog/aws/models/dns'
       model       :record
@@ -15,16 +15,19 @@ module Fog
       collection  :zones
 
       request_path 'fog/aws/requests/dns'
+      request :create_health_check
       request :create_hosted_zone
+      request :delete_health_check
+      request :get_health_check
       request :get_hosted_zone
       request :delete_hosted_zone
+      request :list_health_checks
       request :list_hosted_zones
       request :change_resource_record_sets
       request :list_resource_record_sets
       request :get_change
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, region|
             hash[region] = Hash.new do |region_hash, key|
@@ -91,13 +94,15 @@ module Fog
 
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.dns'
           @connection_options     = options[:connection_options] || {}
           @host       = options[:host]        || 'route53.amazonaws.com'
           @path       = options[:path]        || '/'
           @persistent = options.fetch(:persistent, true)
           @port       = options[:port]        || 443
           @scheme     = options[:scheme]      || 'https'
-          @version    = options[:version]     || '2012-02-29'
+          @version    = options[:version]     || '2013-04-01'
 
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
         end
@@ -119,11 +124,23 @@ module Fog
 
         def request(params, &block)
           refresh_credentials_if_expired
+
           params[:headers] ||= {}
           params[:headers]['Date'] = Fog::Time.now.to_date_header
           params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
           params[:headers]['X-Amzn-Authorization'] = "AWS3-HTTPS AWSAccessKeyId=#{@aws_access_key_id},Algorithm=HmacSHA1,Signature=#{signature(params)}"
           params[:path] = "/#{@version}/#{params[:path]}"
+
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(params, &block)
+            end
+          else
+            _request(params, &block)
+          end
+        end
+
+        def _request(params, &block)
           @connection.request(params, &block)
         end
 
diff --git a/lib/fog/aws/dynamodb.rb b/lib/fog/aws/dynamodb.rb
index 2812b06..eb9ffd1 100644
--- a/lib/fog/aws/dynamodb.rb
+++ b/lib/fog/aws/dynamodb.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :aws_session_token, :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_credentials_expire_at
+      recognizes :aws_session_token, :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/dynamodb'
       request :batch_get_item
@@ -24,7 +24,6 @@ module Fog
       request :update_table
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -81,6 +80,8 @@ module Fog
           setup_credentials(options)
 
           @connection_options     = options[:connection_options] || {}
+          @instrumentor           = options[:instrumentor]
+          @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.dynamodb'
 
           @host       = options[:host]        || "dynamodb.#{@region}.amazonaws.com"
           @path       = options[:path]        || '/'
@@ -126,6 +127,16 @@ module Fog
           params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
           params[:headers]['Authorization'] = @signer.sign(params, date)
 
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(params)
+            end
+          else
+            _request(params)
+          end
+        end
+
+        def _request(params)
           response = @connection.request(params)
 
           unless response.body.empty?
diff --git a/lib/fog/aws/elasticache.rb b/lib/fog/aws/elasticache.rb
index 45dd598..f9d2feb 100644
--- a/lib/fog/aws/elasticache.rb
+++ b/lib/fog/aws/elasticache.rb
@@ -10,7 +10,7 @@ module Fog
       class AuthorizationAlreadyExists < Fog::Errors::Error; end
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/elasticache'
 
@@ -57,6 +57,8 @@ module Fog
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
 
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.elasticache'
           options[:region] ||= 'us-east-1'
           @host = options[:host] || "elasticache.#{options[:region]}.amazonaws.com"
           @path       = options[:path]      || '/'
@@ -101,32 +103,38 @@ module Fog
           }
           )
 
-          begin
-            @connection.request({
-              :body       => body,
-              :expects    => 200,
-              :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
-              :idempotent => idempotent,
-              :method     => 'POST',
-              :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError => error
-            match = Fog::AWS::Errors.match_error(error)
-            raise if match.empty?
-            raise case match[:code]
-                  when 'CacheSecurityGroupNotFound', 'CacheParameterGroupNotFound', 'CacheClusterNotFound'
-                    Fog::AWS::Elasticache::NotFound.slurp(error, match[:message])
-                  when 'CacheSecurityGroupAlreadyExists'
-                    Fog::AWS::Elasticache::IdentifierTaken.slurp(error, match[:message])
-                  when 'InvalidParameterValue'
-                    Fog::AWS::Elasticache::InvalidInstance.slurp(error, match[:message])
-                  else
-                    Fog::AWS::Elasticache::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
-                  end
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
           end
-
         end
 
+        def _request(body, idempotent, parser)
+          @connection.request({
+            :body       => body,
+            :expects    => 200,
+            :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
+            :idempotent => idempotent,
+            :method     => 'POST',
+            :parser     => parser
+          })
+        rescue Excon::Errors::HTTPStatusError => error
+          match = Fog::AWS::Errors.match_error(error)
+          raise if match.empty?
+          raise case match[:code]
+                when 'CacheSecurityGroupNotFound', 'CacheParameterGroupNotFound', 'CacheClusterNotFound'
+                  Fog::AWS::Elasticache::NotFound.slurp(error, match[:message])
+                when 'CacheSecurityGroupAlreadyExists'
+                  Fog::AWS::Elasticache::IdentifierTaken.slurp(error, match[:message])
+                when 'InvalidParameterValue'
+                  Fog::AWS::Elasticache::InvalidInstance.slurp(error, match[:message])
+                else
+                  Fog::AWS::Elasticache::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
+                end
+        end
       end
 
       class Mock
@@ -199,8 +207,6 @@ module Fog
           end
         end
       end
-
-
     end
   end
 end
diff --git a/lib/fog/aws/elb.rb b/lib/fog/aws/elb.rb
index 3004d7b..bd409b8 100644
--- a/lib/fog/aws/elb.rb
+++ b/lib/fog/aws/elb.rb
@@ -56,7 +56,6 @@ module Fog
       collection :backend_server_descriptions
 
       class Mock
-
         require 'fog/aws/elb/policy_types'
 
         def self.data
@@ -92,7 +91,8 @@ module Fog
         end
 
         def setup_credentials(options)
-          @aws_access_key_id = options[:aws_access_key_id]
+          @aws_access_key_id     = options[:aws_access_key_id]
+          @aws_secret_access_key = options[:aws_secret_access_key]
         end
 
         def data
diff --git a/lib/fog/aws/emr.rb b/lib/fog/aws/emr.rb
index ea06bf5..9867c7e 100644
--- a/lib/fog/aws/emr.rb
+++ b/lib/fog/aws/emr.rb
@@ -8,7 +8,7 @@ module Fog
       class IdentifierTaken < Fog::Errors::Error; end
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/emr'
 
@@ -35,11 +35,9 @@ module Fog
       # collection  :security_groups
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -66,6 +64,8 @@ module Fog
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
           @connection_options     = options[:connection_options] || {}
+          @instrumentor           = options[:instrumentor]
+          @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.emr'
 
           options[:region] ||= 'us-east-1'
           @host = options[:host] || "elasticmapreduce.#{options[:region]}.amazonaws.com"
@@ -111,20 +111,24 @@ module Fog
             }
           )
 
-          begin
-            response = @connection.request({
-              :body       => body,
-              :expects    => 200,
-              :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
-              :idempotent => idempotent,
-              :method     => 'POST',
-              :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError
-            raise
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
           end
+        end
 
-          response
+        def _request(body, idempotent, parser)
+          @connection.request({
+            :body       => body,
+            :expects    => 200,
+            :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
+            :idempotent => idempotent,
+            :method     => 'POST',
+            :parser     => parser
+          })
         end
 
       end
diff --git a/lib/fog/aws/glacier.rb b/lib/fog/aws/glacier.rb
index 93b2d2d..c1ecb91 100644
--- a/lib/fog/aws/glacier.rb
+++ b/lib/fog/aws/glacier.rb
@@ -4,9 +4,9 @@ module Fog
   module AWS
     class Glacier < Fog::Service
       extend Fog::AWS::CredentialFetcher::ServiceMethods
-      
+
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/glacier'
 
@@ -37,14 +37,13 @@ module Fog
       MEGABYTE = 1024*1024
 
       class TreeHash
-
         def self.digest(body)
           new.add_part(body)
         end
 
         def reduce_digests(digests)
           while digests.length > 1
-            digests = digests.each_slice(2).collect do |pair|
+            digests = digests.each_slice(2).map do |pair|
               if pair.length == 2
                 Digest::SHA256.digest(pair[0]+pair[1])
               else
@@ -68,13 +67,13 @@ module Fog
         def digest_for_part(body)
           chunk_count = [body.bytesize / MEGABYTE + (body.bytesize % MEGABYTE > 0 ? 1 : 0), 1].max
           if body.respond_to? :byteslice
-            digests_for_part = chunk_count.times.collect {|chunk_index| Digest::SHA256.digest(body.byteslice(chunk_index * MEGABYTE, MEGABYTE))}
+            digests_for_part = chunk_count.times.map {|chunk_index| Digest::SHA256.digest(body.byteslice(chunk_index * MEGABYTE, MEGABYTE))}
           else
             if body.respond_to? :encoding
               old_encoding = body.encoding
               body.force_encoding('BINARY')
             end
-            digests_for_part = chunk_count.times.collect {|chunk_index| Digest::SHA256.digest(body.slice(chunk_index * MEGABYTE, MEGABYTE))}
+            digests_for_part = chunk_count.times.map {|chunk_index| Digest::SHA256.digest(body.slice(chunk_index * MEGABYTE, MEGABYTE))}
             if body.respond_to? :encoding
               body.force_encoding(old_encoding)
             end
@@ -92,11 +91,9 @@ module Fog
       end
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -120,12 +117,13 @@ module Fog
         # ==== Returns
         # * Glacier object with connection to AWS.
         def initialize(options={})
-
           @use_iam_profile = options[:use_iam_profile]
           @region = options[:region] || 'us-east-1'
 
           setup_credentials(options)
 
+          @instrumentor           = options[:instrumentor]
+          @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.glacier'
           @connection_options     = options[:connection_options] || {}
           @host = options[:host] || "glacier.#{@region}.amazonaws.com"
           @version = '2012-06-01'
@@ -137,7 +135,6 @@ module Fog
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
         end
 
-
         private
         def setup_credentials(options)
           @aws_access_key_id      = options[:aws_access_key_id]
@@ -160,6 +157,16 @@ module Fog
           params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
           params[:headers]['Authorization'] = @signer.sign params, date
 
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(params, &block)
+            end
+          else
+            _request(params, &block)
+          end
+        end
+
+        def _request(params, &block)
           response = @connection.request(params, &block)
           if response.headers['Content-Type'] == 'application/json' && response.body.size > 0 #body will be empty if the streaming form has been used
             response.body  = Fog::JSON.decode(response.body)
diff --git a/lib/fog/aws/iam.rb b/lib/fog/aws/iam.rb
index 2cb8a6a..e5b11c6 100644
--- a/lib/fog/aws/iam.rb
+++ b/lib/fog/aws/iam.rb
@@ -25,6 +25,7 @@ module Fog
       request :create_role
       request :create_user
       request :delete_access_key
+      request :delete_account_password_policy      
       request :delete_account_alias
       request :delete_group
       request :delete_group_policy
@@ -37,6 +38,7 @@ module Fog
       request :delete_user
       request :delete_user_policy
       request :get_account_summary
+      request :get_account_password_policy
       request :get_group
       request :get_group_policy
       request :get_instance_profile
@@ -68,6 +70,7 @@ module Fog
       request :update_access_key
       request :update_group
       request :update_login_profile
+      request :update_account_password_policy
       request :update_server_certificate
       request :update_signing_certificate
       request :update_user
@@ -84,7 +87,6 @@ module Fog
       model       :role
       collection  :roles
 
-
       class Mock
         def self.data
           @data ||= Hash.new do |hash, key|
@@ -249,7 +251,6 @@ module Fog
                   Fog::AWS::IAM::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
                 end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/activities.rb b/lib/fog/aws/models/auto_scaling/activities.rb
index 6dfc4f7..32c548f 100644
--- a/lib/fog/aws/models/auto_scaling/activities.rb
+++ b/lib/fog/aws/models/auto_scaling/activities.rb
@@ -31,7 +31,6 @@ module Fog
           data = service.describe_scaling_activities('ActivityId' => identity).body['DescribeScalingActivitiesResult']['Activities'].first
           new(data) unless data.nil?
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/activity.rb b/lib/fog/aws/models/auto_scaling/activity.rb
index 1316475..032f4e6 100644
--- a/lib/fog/aws/models/auto_scaling/activity.rb
+++ b/lib/fog/aws/models/auto_scaling/activity.rb
@@ -4,7 +4,6 @@ module Fog
   module AWS
     class AutoScaling
       class Activity < Fog::Model
-
         identity  :id,                      :aliases => 'ActivityId'
         attribute :auto_scaling_group_name, :aliases => 'AutoScalingGroupName'
         attribute :cause,                   :aliases => 'Cause'
@@ -22,7 +21,6 @@ module Fog
         def save
           raise "Operation not supported"
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/configuration.rb b/lib/fog/aws/models/auto_scaling/configuration.rb
index 5a8246e..bfde298 100644
--- a/lib/fog/aws/models/auto_scaling/configuration.rb
+++ b/lib/fog/aws/models/auto_scaling/configuration.rb
@@ -4,12 +4,12 @@ module Fog
   module AWS
     class AutoScaling
       class Configuration < Fog::Model
-
         identity  :id,                    :aliases => 'LaunchConfigurationName'
         attribute :arn,                   :aliases => 'LaunchConfigurationARN'
         attribute :associate_public_ip,   :aliases => 'AssociatePublicIpAddress'
         attribute :block_device_mappings, :aliases => 'BlockDeviceMappings'
         attribute :created_at,            :aliases => 'CreatedTime'
+        attribute :ebs_optimized,         :aliases => 'EbsOptimized'
         attribute :iam_instance_profile,  :aliases => 'IamInstanceProfile'
         attribute :image_id,              :aliases => 'ImageId'
         #attribute :instance_monitoring,   :aliases => 'InstanceMonitoring'
@@ -21,7 +21,7 @@ module Fog
         attribute :security_groups,       :aliases => 'SecurityGroups'
         attribute :user_data,             :aliases => 'UserData'
         attribute :spot_price,            :aliases => 'SpotPrice'
-        
+
 
         def initialize(attributes={})
           #attributes[:availability_zones] ||= %w(us-east-1a us-east-1b us-east-1c us-east-1d)
@@ -62,7 +62,6 @@ module Fog
           requires :id
           service.delete_launch_configuration(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/configurations.rb b/lib/fog/aws/models/auto_scaling/configurations.rb
index 2f95669..a62c6e9 100644
--- a/lib/fog/aws/models/auto_scaling/configurations.rb
+++ b/lib/fog/aws/models/auto_scaling/configurations.rb
@@ -4,7 +4,6 @@ module Fog
   module AWS
     class AutoScaling
       class Configurations < Fog::Collection
-
         model Fog::AWS::AutoScaling::Configuration
 
         # Creates a new launch configuration
@@ -28,7 +27,6 @@ module Fog
           data = service.describe_launch_configurations('LaunchConfigurationNames' => identity).body['DescribeLaunchConfigurationsResult']['LaunchConfigurations'].first
 	  new(data) unless data.nil?
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/groups.rb b/lib/fog/aws/models/auto_scaling/groups.rb
index 9b1a419..49cbf3e 100644
--- a/lib/fog/aws/models/auto_scaling/groups.rb
+++ b/lib/fog/aws/models/auto_scaling/groups.rb
@@ -31,7 +31,6 @@ module Fog
           data = service.describe_auto_scaling_groups('AutoScalingGroupNames' => identity).body['DescribeAutoScalingGroupsResult']['AutoScalingGroups'].first
           new(data) unless data.nil?
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/instance.rb b/lib/fog/aws/models/auto_scaling/instance.rb
index d2f9894..8e05ac8 100644
--- a/lib/fog/aws/models/auto_scaling/instance.rb
+++ b/lib/fog/aws/models/auto_scaling/instance.rb
@@ -4,7 +4,6 @@ module Fog
   module AWS
     class AutoScaling
       class Instance < Fog::Model
-
         identity  :id,                        :aliases => 'InstanceId'
         attribute :auto_scaling_group_name,   :aliases => 'AutoScalingGroupName'
         attribute :availability_zone,         :aliases => 'AvailabilityZone'
@@ -37,7 +36,7 @@ module Fog
         end
 
         def healthy?
-          health_status == 'HEALTHY'
+          health_status == 'Healthy'
         end
 
         def ready?
@@ -53,7 +52,6 @@ module Fog
         #  requires :id
         #  service.delete_auto_scaling_group(id)
         #end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/auto_scaling/instances.rb b/lib/fog/aws/models/auto_scaling/instances.rb
index b19485b..c04765e 100644
--- a/lib/fog/aws/models/auto_scaling/instances.rb
+++ b/lib/fog/aws/models/auto_scaling/instances.rb
@@ -4,7 +4,6 @@ module Fog
   module AWS
     class AutoScaling
       class Instances < Fog::Collection
-
         model Fog::AWS::AutoScaling::Instance
 
         def all
@@ -23,7 +22,6 @@ module Fog
           data = service.describe_auto_scaling_instances('InstanceIds' => identity).body['DescribeAutoScalingInstancesResult']['AutoScalingInstances'].first
           new(data) unless data.nil?
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/beanstalk/application.rb b/lib/fog/aws/models/beanstalk/application.rb
index 296603b..a59db50 100644
--- a/lib/fog/aws/models/beanstalk/application.rb
+++ b/lib/fog/aws/models/beanstalk/application.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Application < Fog::Model
         identity :name, :aliases => 'ApplicationName'
         attribute :template_names, :aliases => 'ConfigurationTemplates'
@@ -54,9 +53,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/beanstalk/applications.rb b/lib/fog/aws/models/beanstalk/applications.rb
index e465ab4..f37fe6a 100644
--- a/lib/fog/aws/models/beanstalk/applications.rb
+++ b/lib/fog/aws/models/beanstalk/applications.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/beanstalk/application'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Applications < Fog::Collection
         model Fog::AWS::ElasticBeanstalk::Application
 
@@ -18,7 +17,6 @@ module Fog
             new(data)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/beanstalk/environment.rb b/lib/fog/aws/models/beanstalk/environment.rb
index 82400a2..7865799 100644
--- a/lib/fog/aws/models/beanstalk/environment.rb
+++ b/lib/fog/aws/models/beanstalk/environment.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Environment < Fog::Model
         identity :name, :aliases => 'EnvironmentName'
         attribute :id, :aliases => 'EnvironmentId'
@@ -47,7 +46,6 @@ module Fog
 
         # Returns the load balancer object associated with the environment.
         def load_balancer(elb_connection = Fog::AWS[:elb])
-
           if resources.nil?
             elb_connection.load_balancers.get(live_resources['LoadBalancers'].first['Name'])
           else
@@ -141,9 +139,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/beanstalk/environments.rb b/lib/fog/aws/models/beanstalk/environments.rb
index 5bac15e..9f3a3dc 100644
--- a/lib/fog/aws/models/beanstalk/environments.rb
+++ b/lib/fog/aws/models/beanstalk/environments.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/beanstalk/environment'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Environments < Fog::Collection
         model Fog::AWS::ElasticBeanstalk::Environment
 
@@ -22,7 +21,6 @@ module Fog
             new(data)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/beanstalk/event.rb b/lib/fog/aws/models/beanstalk/event.rb
index 4280df4..9952d29 100644
--- a/lib/fog/aws/models/beanstalk/event.rb
+++ b/lib/fog/aws/models/beanstalk/event.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Event < Fog::Model
         attribute :application_name, :aliases => 'ApplicationName'
         attribute :environment_name, :aliases => 'EnvironmentName'
@@ -14,7 +13,6 @@ module Fog
         attribute :template_name, :aliases => 'TemplateName'
         attribute :version_label, :aliases => 'VersionLabel'
       end
-
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/aws/models/beanstalk/events.rb b/lib/fog/aws/models/beanstalk/events.rb
index a1a4dfa..0eb77ee 100644
--- a/lib/fog/aws/models/beanstalk/events.rb
+++ b/lib/fog/aws/models/beanstalk/events.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/beanstalk/event'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Events < Fog::Collection
         model Fog::AWS::ElasticBeanstalk::Event
 
@@ -12,7 +11,6 @@ module Fog
           data = service.describe_events(options).body['DescribeEventsResult']['Events']
           load(data) # data is an array of attribute hashes
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/beanstalk/template.rb b/lib/fog/aws/models/beanstalk/template.rb
index 0d56b89..eee306b 100644
--- a/lib/fog/aws/models/beanstalk/template.rb
+++ b/lib/fog/aws/models/beanstalk/template.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Template < Fog::Model
         attribute :name, :aliases => 'TemplateName'
         attribute :application_name, :aliases => 'ApplicationName'
@@ -72,7 +71,6 @@ module Fog
           true
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/beanstalk/templates.rb b/lib/fog/aws/models/beanstalk/templates.rb
index 8e26e7d..b94e176 100644
--- a/lib/fog/aws/models/beanstalk/templates.rb
+++ b/lib/fog/aws/models/beanstalk/templates.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/beanstalk/template'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Templates < Fog::Collection
         model Fog::AWS::ElasticBeanstalk::Template
 
@@ -14,7 +13,7 @@ module Fog
         # a describe configuration templates call in the AWS API.
         def all(options={})
           application_filter = []
-          if options.has_key?('ApplicationName')
+          if options.key?('ApplicationName')
             application_filter << options['ApplicationName']
           end
 
@@ -63,7 +62,6 @@ module Fog
           end
             result
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/beanstalk/version.rb b/lib/fog/aws/models/beanstalk/version.rb
index c67cf5a..98c5708 100644
--- a/lib/fog/aws/models/beanstalk/version.rb
+++ b/lib/fog/aws/models/beanstalk/version.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Version < Fog::Model
         attribute :label, :aliases => 'VersionLabel'
         attribute :application_name, :aliases => 'ApplicationName'
@@ -73,7 +72,6 @@ module Fog
           merge_attributes(data)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/beanstalk/versions.rb b/lib/fog/aws/models/beanstalk/versions.rb
index c13daf7..be56a05 100644
--- a/lib/fog/aws/models/beanstalk/versions.rb
+++ b/lib/fog/aws/models/beanstalk/versions.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/beanstalk/version'
 module Fog
   module AWS
     class ElasticBeanstalk
-
       class Versions < Fog::Collection
         model Fog::AWS::ElasticBeanstalk::Version
 
@@ -24,7 +23,6 @@ module Fog
 
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/cdn/distribution.rb b/lib/fog/aws/models/cdn/distribution.rb
index 76e8218..1c99bfd 100644
--- a/lib/fog/aws/models/cdn/distribution.rb
+++ b/lib/fog/aws/models/cdn/distribution.rb
@@ -5,7 +5,6 @@ require 'fog/aws/models/cdn/distribution_helper'
 module Fog
   module CDN
     class AWS
-
       class Distribution < Fog::Model
         include Fog::CDN::AWS::DistributionHelper
 
@@ -85,9 +84,7 @@ module Fog
         def distribution_config_to_attributes(new_attributes = {})
           new_attributes.merge(new_attributes.delete('DistributionConfig') || {})
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/cdn/distribution_helper.rb b/lib/fog/aws/models/cdn/distribution_helper.rb
index 10f21bc..5217da2 100644
--- a/lib/fog/aws/models/cdn/distribution_helper.rb
+++ b/lib/fog/aws/models/cdn/distribution_helper.rb
@@ -3,9 +3,7 @@ require 'fog/core/collection'
 module Fog
   module CDN
     class AWS
-
       module DistributionHelper
-
         def destroy
           requires :identity, :etag, :caller_reference
           raise "Distribution must be disabled to be deleted" unless disabled?
@@ -56,9 +54,7 @@ module Fog
           end
           true
         end
-
       end
-
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/aws/models/cdn/distributions.rb b/lib/fog/aws/models/cdn/distributions.rb
index dd76c57..458a3b6 100644
--- a/lib/fog/aws/models/cdn/distributions.rb
+++ b/lib/fog/aws/models/cdn/distributions.rb
@@ -5,7 +5,6 @@ require 'fog/aws/models/cdn/distributions_helper'
 module Fog
   module CDN
     class AWS
-
       class Distributions < Fog::Collection
         include Fog::CDN::AWS::DistributionsHelper
 
@@ -25,9 +24,7 @@ module Fog
 
         alias_method :each_distribution_this_page, :each
         alias_method :each, :each_distribution
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/cdn/distributions_helper.rb b/lib/fog/aws/models/cdn/distributions_helper.rb
index 76bb9a1..7895df0 100644
--- a/lib/fog/aws/models/cdn/distributions_helper.rb
+++ b/lib/fog/aws/models/cdn/distributions_helper.rb
@@ -3,9 +3,8 @@ require 'fog/core/collection'
 module Fog
   module CDN
     class AWS
-
       module DistributionsHelper
-        
+
         def all(options = {})
           merge_attributes(options)
           data = list_distributions(options).body
@@ -40,9 +39,7 @@ module Fog
             self
           end
         end
-
       end
-
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/aws/models/cdn/invalidation.rb b/lib/fog/aws/models/cdn/invalidation.rb
index faa65e0..1b1d4d5 100644
--- a/lib/fog/aws/models/cdn/invalidation.rb
+++ b/lib/fog/aws/models/cdn/invalidation.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module CDN
     class AWS
-
       class Invalidation < Fog::Model
-
         identity :id,                :aliases => 'Id'
 
         attribute :status,           :aliases => 'Status'
@@ -56,9 +54,7 @@ module Fog
           end
           new_attributes
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/cdn/invalidations.rb b/lib/fog/aws/models/cdn/invalidations.rb
index 050b8dc..2d9be24 100644
--- a/lib/fog/aws/models/cdn/invalidations.rb
+++ b/lib/fog/aws/models/cdn/invalidations.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/cdn/invalidation'
 module Fog
   module CDN
     class AWS
-
       class Invalidations < Fog::Collection
-
         attribute :is_truncated,            :aliases => ['IsTruncated']
         attribute :max_items,               :aliases => ['MaxItems']
         attribute :next_marker,             :aliases => ['NextMarker']
@@ -46,9 +44,7 @@ module Fog
           requires :distribution
           super({ :distribution => distribution }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/cdn/streaming_distribution.rb b/lib/fog/aws/models/cdn/streaming_distribution.rb
index 7008d64..15f4e0f 100644
--- a/lib/fog/aws/models/cdn/streaming_distribution.rb
+++ b/lib/fog/aws/models/cdn/streaming_distribution.rb
@@ -5,7 +5,6 @@ require 'fog/aws/models/cdn/distribution_helper'
 module Fog
   module CDN
     class AWS
-
       class StreamingDistribution < Fog::Model
         include Fog::CDN::AWS::DistributionHelper
 
@@ -69,9 +68,7 @@ module Fog
         def distribution_config_to_attributes(new_attributes = {})
           new_attributes.merge(new_attributes.delete('StreamingDistributionConfig') || {})
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/cdn/streaming_distributions.rb b/lib/fog/aws/models/cdn/streaming_distributions.rb
index cc307f1..1c2e270 100644
--- a/lib/fog/aws/models/cdn/streaming_distributions.rb
+++ b/lib/fog/aws/models/cdn/streaming_distributions.rb
@@ -5,7 +5,6 @@ require 'fog/aws/models/cdn/distributions_helper'
 module Fog
   module CDN
     class AWS
-
       class StreamingDistributions < Fog::Collection
         include Fog::CDN::AWS::DistributionsHelper
 
@@ -25,9 +24,7 @@ module Fog
 
         alias_method :each_distribution_this_page, :each
         alias_method :each, :each_distribution
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/cloud_watch/alarm_data.rb b/lib/fog/aws/models/cloud_watch/alarm_data.rb
index add59bf..772e6b3 100644
--- a/lib/fog/aws/models/cloud_watch/alarm_data.rb
+++ b/lib/fog/aws/models/cloud_watch/alarm_data.rb
@@ -15,7 +15,7 @@ module Fog
         def get(namespace, metric_name, dimensions=nil, period=nil, statistic=nil, unit=nil)
           list_opts = {'Namespace' => namespace, 'MetricName' => metric_name}
           if dimensions
-            dimensions_array = dimensions.collect do |name, value|
+            dimensions_array = dimensions.map do |name, value|
               {'Name' => name, 'Value' => value}
             end
             list_opts.merge!('Dimensions' => dimensions_array)
@@ -32,7 +32,6 @@ module Fog
           data = service.describe_alarms_for_metric(list_opts).body['DescribeAlarmsForMetricResult']['MetricAlarms']
           load(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/cloud_watch/alarm_datum.rb b/lib/fog/aws/models/cloud_watch/alarm_datum.rb
index 76ca09f..ae20e81 100644
--- a/lib/fog/aws/models/cloud_watch/alarm_datum.rb
+++ b/lib/fog/aws/models/cloud_watch/alarm_datum.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class CloudWatch
-
       class AlarmDatum < Fog::Model
         attribute :alarm_name, :aliases => 'AlarmName'
         attribute :metric_name, :aliases => 'MetricName'
diff --git a/lib/fog/aws/models/cloud_watch/alarm_histories.rb b/lib/fog/aws/models/cloud_watch/alarm_histories.rb
index 93d357d..7a00d01 100644
--- a/lib/fog/aws/models/cloud_watch/alarm_histories.rb
+++ b/lib/fog/aws/models/cloud_watch/alarm_histories.rb
@@ -11,7 +11,6 @@ module Fog
           data = service.describe_alarm_history(conditions).body['DescribeAlarmHistoryResult']['AlarmHistoryItems']
           load(data) # data is an array of attribute hashes
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/cloud_watch/alarm_history.rb b/lib/fog/aws/models/cloud_watch/alarm_history.rb
index 5fb4c6b..4c16db3 100644
--- a/lib/fog/aws/models/cloud_watch/alarm_history.rb
+++ b/lib/fog/aws/models/cloud_watch/alarm_history.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class CloudWatch
-
       class AlarmHistory < Fog::Model
         attribute :alarm_name, :aliases => 'AlarmName'
         attribute :end_date, :aliases => 'EndDate'
diff --git a/lib/fog/aws/models/cloud_watch/alarms.rb b/lib/fog/aws/models/cloud_watch/alarms.rb
index 7b1ac19..47bb162 100644
--- a/lib/fog/aws/models/cloud_watch/alarms.rb
+++ b/lib/fog/aws/models/cloud_watch/alarms.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/cloud_watch/alarm'
 module Fog
   module AWS
     class CloudWatch
-
       class Alarms < Fog::Collection
         model Fog::AWS::CloudWatch::Alarm
 
@@ -40,7 +39,6 @@ module Fog
           service.enable_alarm_actions(alarm_names)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/cloud_watch/metric.rb b/lib/fog/aws/models/cloud_watch/metric.rb
index d15ae84..f923e67 100644
--- a/lib/fog/aws/models/cloud_watch/metric.rb
+++ b/lib/fog/aws/models/cloud_watch/metric.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class CloudWatch
-
       class Metric < Fog::Model
         attribute :name, :aliases => 'MetricName'
         attribute :namespace, :aliases => 'Namespace'
@@ -11,4 +10,4 @@ module Fog
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/aws/models/cloud_watch/metric_statistic.rb b/lib/fog/aws/models/cloud_watch/metric_statistic.rb
index 5e30456..eddd6d7 100644
--- a/lib/fog/aws/models/cloud_watch/metric_statistic.rb
+++ b/lib/fog/aws/models/cloud_watch/metric_statistic.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class CloudWatch
-
       class MetricStatistic < Fog::Model
         attribute :label, :aliases => 'Label'
         attribute :minimum, :aliases => 'Minimum'
diff --git a/lib/fog/aws/models/cloud_watch/metric_statistics.rb b/lib/fog/aws/models/cloud_watch/metric_statistics.rb
index fc0bc95..76fe477 100644
--- a/lib/fog/aws/models/cloud_watch/metric_statistics.rb
+++ b/lib/fog/aws/models/cloud_watch/metric_statistics.rb
@@ -13,10 +13,9 @@ module Fog
           dimensions = conditions['Dimensions']
           get_metric_opts = {"StartTime" => (Time.now-3600).iso8601, "EndTime" => Time.now.iso8601, "Period" => 300}.merge(conditions)
           data = service.get_metric_statistics(get_metric_opts).body['GetMetricStatisticsResult']['Datapoints']
-          data.collect! { |datum| datum.merge('MetricName' => metricName, 'Namespace' => namespace, 'Dimensions' => dimensions) }
+          data.map! { |datum| datum.merge('MetricName' => metricName, 'Namespace' => namespace, 'Dimensions' => dimensions) }
           load(data) # data is an array of attribute hashes
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/cloud_watch/metrics.rb b/lib/fog/aws/models/cloud_watch/metrics.rb
index 9df9780..0c0e627 100644
--- a/lib/fog/aws/models/cloud_watch/metrics.rb
+++ b/lib/fog/aws/models/cloud_watch/metrics.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/cloud_watch/metric'
 module Fog
   module AWS
     class CloudWatch
-
       class Metrics < Fog::Collection
         attribute :next_token, :aliases => 'NextToken'
 
@@ -16,7 +15,7 @@ module Fog
           load(result['Metrics']) # an array of attribute hashes
         end
 
-        alias :each_metric_this_page :each
+        alias_method :each_metric_this_page, :each
         def each
           if !block_given?
             self
@@ -36,7 +35,7 @@ module Fog
         def get(namespace, metric_name, dimensions=nil)
           list_opts = {'Namespace' => namespace, 'MetricName' => metric_name}
           if dimensions
-            dimensions_array = dimensions.collect do |name, value|
+            dimensions_array = dimensions.map do |name, value|
               {'Name' => name, 'Value' => value}
             end
             # list_opts.merge!('Dimensions' => dimensions_array)
@@ -45,7 +44,6 @@ module Fog
             new(data)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/address.rb b/lib/fog/aws/models/compute/address.rb
index 0ba1391..c35b872 100644
--- a/lib/fog/aws/models/compute/address.rb
+++ b/lib/fog/aws/models/compute/address.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Address < Fog::Model
-
         identity  :public_ip,                  :aliases => 'publicIp'
 
         attribute :allocation_id,              :aliases => 'allocationId'
@@ -70,9 +68,7 @@ module Fog
             service.disassociate_address(public_ip)
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/addresses.rb b/lib/fog/aws/models/compute/addresses.rb
index 5563aa9..e54622d 100644
--- a/lib/fog/aws/models/compute/addresses.rb
+++ b/lib/fog/aws/models/compute/addresses.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/address'
 module Fog
   module Compute
     class AWS
-
       class Addresses < Fog::Collection
-
         attribute :filters
         attribute :server
 
@@ -92,9 +90,7 @@ module Fog
             super(attributes)
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/dhcp_option.rb b/lib/fog/aws/models/compute/dhcp_option.rb
index 1969f38..fb5e39b 100644
--- a/lib/fog/aws/models/compute/dhcp_option.rb
+++ b/lib/fog/aws/models/compute/dhcp_option.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class DhcpOption < Fog::Model
-
         identity  :id,                          :aliases => 'dhcpOptionsId'
         attribute :dhcp_configuration_set,      :aliases => 'dhcpConfigurationSet'
         attribute :tag_set,                     :aliases => 'tagSet'
diff --git a/lib/fog/aws/models/compute/dhcp_options.rb b/lib/fog/aws/models/compute/dhcp_options.rb
index 5e67f8b..8ed4e7e 100644
--- a/lib/fog/aws/models/compute/dhcp_options.rb
+++ b/lib/fog/aws/models/compute/dhcp_options.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/dhcp_option'
 module Fog
   module Compute
     class AWS
-
       class DhcpOptions < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::DhcpOption
@@ -83,9 +81,7 @@ module Fog
             self.class.new(:service => service).all('dhcp-options-id' => dhcp_options_id).first
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/flavor.rb b/lib/fog/aws/models/compute/flavor.rb
index 1c25116..e305e18 100644
--- a/lib/fog/aws/models/compute/flavor.rb
+++ b/lib/fog/aws/models/compute/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Flavor < Fog::Model
-
         identity :id
 
         attribute :bits
@@ -15,9 +13,7 @@ module Fog
         attribute :ram
         attribute :ebs_optimized_available
         attribute :instance_store_volumes
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/flavors.rb b/lib/fog/aws/models/compute/flavors.rb
index 2937b2f..d0824a9 100644
--- a/lib/fog/aws/models/compute/flavors.rb
+++ b/lib/fog/aws/models/compute/flavors.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/compute/flavor'
 module Fog
   module Compute
     class AWS
-
       FLAVORS = [
         {
           :id                      => 't1.micro',
@@ -17,6 +16,36 @@ module Fog
           :instance_store_volumes  => 0
         },
         {
+          :id                      => 't2.micro',
+          :name                    => 'Micro Instance',
+          :bits                    => 64,
+          :cores                   => 1,
+          :disk                    => 0,
+          :ram                     => 1024,
+          :ebs_optimized_available => false,
+          :instance_store_volumes  => 0
+        },
+        {
+          :id                      => 't2.small',
+          :name                    => 'Micro Instance',
+          :bits                    => 64,
+          :cores                   => 1,
+          :disk                    => 0,
+          :ram                     => 2048,
+          :ebs_optimized_available => false,
+          :instance_store_volumes  => 0
+        },
+        {
+          :id                      => 't2.medium',
+          :name                    => 'Micro Instance',
+          :bits                    => 64,
+          :cores                   => 2,
+          :disk                    => 0,
+          :ram                     => 4096,
+          :ebs_optimized_available => false,
+          :instance_store_volumes  => 0
+        },
+        {
           :id                      => 'm1.small',
           :name                    => 'Small Instance',
           :bits                    => 32,
@@ -305,11 +334,60 @@ module Fog
           :ram                     => 249856,
           :ebs_optimized_available => false,
           :instance_store_volumes  => 8
+        },
+        {
+          :id                      => "r3.large",
+          :name                    => "R3 Large",
+          :bits                    => 64,
+          :cores                   => 2,
+          :ram                     => 15360,
+          :disk                    => 32,
+          :ebs_optimized_available => true,
+          :instance_store_volumes  => 1
+        },
+        {
+          :id                      => "r3.xlarge",
+          :name                    => "R3 Extra Large",
+          :bits                    => 64,
+          :cores                   => 4,
+          :ram                     => 31232,
+          :disk                    => 80,
+          :ebs_optimized_available => true,
+          :instance_store_volumes  => 1
+        },
+        {
+          :id                      => "r3.2xlarge",
+          :name                    => "R3 Double Extra Large",
+          :bits                    => 64,
+          :cores                   => 8,
+          :ram                     => 62464,
+          :disk                    => 160,
+          :ebs_optimized_available => true,
+          :instance_store_volumes  => 1
+        },
+        {
+          :id                      => "r3.4xlarge",
+          :name                    => "R3 Quadruple Extra Large",
+          :bits                    => 64,
+          :cores                   => 16,
+          :ram                     => 124928,
+          :disk                    => 320,
+          :ebs_optimized_available => true,
+          :instance_store_volumes  => 1
+        },
+        {
+          :id                      => "r3.8xlarge",
+          :name                    => "R3 Eight Extra Large",
+          :bits                    => 64,
+          :cores                   => 32,
+          :ram                     => 249856,
+          :disk                    => 640,
+          :ebs_optimized_available => true,
+          :instance_store_volumes  => 2
         }
       ]
 
       class Flavors < Fog::Collection
-
         model Fog::Compute::AWS::Flavor
 
         # Returns an array of all flavors that have been created
@@ -520,11 +598,9 @@ module Fog
         #
 
         def get(flavor_id)
-          self.class.new(:service => service).all.detect {|flavor| flavor.id == flavor_id}
+          self.class.new(:service => service).all.find {|flavor| flavor.id == flavor_id}
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/image.rb b/lib/fog/aws/models/compute/image.rb
index 783a4d7..7255644 100644
--- a/lib/fog/aws/models/compute/image.rb
+++ b/lib/fog/aws/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Image < Fog::Model
-
         identity :id,                     :aliases => 'imageId'
 
         attribute :architecture
@@ -25,12 +23,13 @@ module Fog
         attribute :root_device_name,      :aliases => 'rootDeviceName'
         attribute :tags,                  :aliases => 'tagSet'
         attribute :name
+        attribute :virtualization_type,   :aliases => 'virtualizationType'
 
         def deregister(delete_snapshot = false)
           service.deregister_image(id)
 
           if(delete_snapshot && root_device_type == "ebs")
-            block_device = block_device_mapping.detect {|block_device| block_device['deviceName'] == root_device_name}
+            block_device = block_device_mapping.find {|block_device| block_device['deviceName'] == root_device_name}
             service.snapshots.new(:id => block_device['snapshotId']).destroy
           else
             true
@@ -40,9 +39,7 @@ module Fog
         def ready?
           state == 'available'
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/images.rb b/lib/fog/aws/models/compute/images.rb
index ece512e..8a3d16a 100644
--- a/lib/fog/aws/models/compute/images.rb
+++ b/lib/fog/aws/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/image'
 module Fog
   module Compute
     class AWS
-
       class Images < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::Image
@@ -56,7 +54,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/internet_gateway.rb b/lib/fog/aws/models/compute/internet_gateway.rb
index 3dc416d..0c923d3 100644
--- a/lib/fog/aws/models/compute/internet_gateway.rb
+++ b/lib/fog/aws/models/compute/internet_gateway.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class InternetGateway < Fog::Model
-
         identity  :id,                          :aliases => 'internetGatewayId'
         attribute :attachment_set,              :aliases => 'attachmentSet'
         attribute :tag_set,                     :aliases => 'tagSet'
@@ -42,7 +40,6 @@ module Fog
           reload
         end
 
-
         # Removes an existing internet gateway
         #
         # internet_gateway.destroy
diff --git a/lib/fog/aws/models/compute/internet_gateways.rb b/lib/fog/aws/models/compute/internet_gateways.rb
index cc687f3..1f2d2ca 100644
--- a/lib/fog/aws/models/compute/internet_gateways.rb
+++ b/lib/fog/aws/models/compute/internet_gateways.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/internet_gateway'
 module Fog
   module Compute
     class AWS
-
       class InternetGateways < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::InternetGateway
@@ -83,9 +81,7 @@ module Fog
             self.class.new(:service => service).all('internet-gateway-id' => internet_gateway_id).first
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/key_pair.rb b/lib/fog/aws/models/compute/key_pair.rb
index 3cc35d3..1ba3d6e 100644
--- a/lib/fog/aws/models/compute/key_pair.rb
+++ b/lib/fog/aws/models/compute/key_pair.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class KeyPair < Fog::Model
-
         identity  :name,        :aliases => 'keyName'
 
         attribute :fingerprint, :aliases => 'keyFingerprint'
@@ -31,11 +29,9 @@ module Fog
           new_attributes = data.reject {|key,value| !['keyFingerprint', 'keyMaterial', 'keyName'].include?(key)}
           merge_attributes(new_attributes)
           true
-
         end
 
         def write(path="#{ENV['HOME']}/.ssh/fog_#{Fog.credential.to_s}_#{name}.pem")
-
           if writable?
             split_private_key = private_key.split(/\n/)
             File.open(path, "w") do |f|
@@ -49,11 +45,9 @@ module Fog
         end
 
         def writable?
-          !!(private_key && ENV.has_key?('HOME'))
+          !!(private_key && ENV.key?('HOME'))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/key_pairs.rb b/lib/fog/aws/models/compute/key_pairs.rb
index 2e32660..b189b4f 100644
--- a/lib/fog/aws/models/compute/key_pairs.rb
+++ b/lib/fog/aws/models/compute/key_pairs.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/key_pair'
 module Fog
   module Compute
     class AWS
-
       class KeyPairs < Fog::Collection
-
         attribute :filters
         attribute :key_name
 
@@ -80,9 +78,7 @@ module Fog
             self.class.new(:service => service).all('key-name' => key_name).first
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/network_acl.rb b/lib/fog/aws/models/compute/network_acl.rb
index 16cf735..afe12f6 100644
--- a/lib/fog/aws/models/compute/network_acl.rb
+++ b/lib/fog/aws/models/compute/network_acl.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class NetworkAcl < Fog::Model
         ICMP = 1
         TCP  = 6
@@ -134,7 +133,7 @@ module Fog
           requires :network_acl_id
 
           # We have to manually find out the network ACL the subnet is currently associated with
-          old_id = service.network_acls.all('association.subnet-id' => subnet.subnet_id).first.associations.detect { |a| a['subnetId'] == subnet.subnet_id }['networkAclAssociationId']
+          old_id = service.network_acls.all('association.subnet-id' => subnet.subnet_id).first.associations.find { |a| a['subnetId'] == subnet.subnet_id }['networkAclAssociationId']
           service.replace_network_acl_association(old_id, network_acl_id)
           true
         end
@@ -161,7 +160,18 @@ module Fog
         def save
           requires :vpc_id
           data = service.create_network_acl(vpc_id).body['networkAcl']
-          merge_attributes(data)
+          new_attributes = data.reject { |key,value| key == 'tagSet' }
+          merge_attributes(new_attributes)
+
+          if tags = self.tags
+            # expect eventual consistency
+            Fog.wait_for { self.reload rescue nil }
+            service.create_tags(
+              self.identity,
+              tags
+            )
+          end
+
           true
         end
       end
diff --git a/lib/fog/aws/models/compute/network_acls.rb b/lib/fog/aws/models/compute/network_acls.rb
index 8d743a5..7176680 100644
--- a/lib/fog/aws/models/compute/network_acls.rb
+++ b/lib/fog/aws/models/compute/network_acls.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/network_acl'
 module Fog
   module Compute
     class AWS
-
       class NetworkAcls < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::NetworkAcl
diff --git a/lib/fog/aws/models/compute/network_interface.rb b/lib/fog/aws/models/compute/network_interface.rb
index 0f3c649..098a6aa 100644
--- a/lib/fog/aws/models/compute/network_interface.rb
+++ b/lib/fog/aws/models/compute/network_interface.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class NetworkInterface < Fog::Model
-
         identity  :network_interface_id,        :aliases => 'networkInterfaceId'
         attribute :state
         attribute :request_id,                  :aliases => 'requestId'
@@ -20,6 +18,7 @@ module Fog
         attribute :status,                      :aliases => 'status'
         attribute :mac_address,                 :aliases => 'macAddress'
         attribute :private_ip_address,          :aliases => 'privateIpAddress'
+        attribute :private_ip_addresses,        :aliases => 'privateIpAddresses'
         attribute :private_dns_name,            :aliases => 'privateDnsName'
         attribute :source_dest_check,           :aliases => 'sourceDestCheck'
         attribute :group_set,                   :aliases => 'groupSet'
@@ -27,7 +26,6 @@ module Fog
         attribute :association,                 :aliases => 'association'
         attribute :tag_set,                     :aliases => 'tagSet'
 
-
         # Removes an existing network interface
         #
         # network_interface.destroy
@@ -69,7 +67,6 @@ module Fog
           merge_attributes(new_attributes)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/network_interfaces.rb b/lib/fog/aws/models/compute/network_interfaces.rb
index 8e022dc..f998bc9 100644
--- a/lib/fog/aws/models/compute/network_interfaces.rb
+++ b/lib/fog/aws/models/compute/network_interfaces.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/network_interface'
 module Fog
   module Compute
     class AWS
-
       class NetworkInterfaces < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::NetworkInterface
@@ -130,7 +128,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/route_table.rb b/lib/fog/aws/models/compute/route_table.rb
index bd70096..0d48e14 100755
--- a/lib/fog/aws/models/compute/route_table.rb
+++ b/lib/fog/aws/models/compute/route_table.rb
@@ -3,16 +3,14 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class RouteTable < Fog::Model
-
         identity :id,                :aliases => 'routeTableId'
 
         attribute :vpc_id,           :aliases => 'vpcId'
         attribute :routes,           :aliases => 'routeSet'
         attribute :associations,     :aliases => 'associationSet'
         attribute :tags,             :aliases => 'tagSet'
-        
+
 
         def initialize(attributes={})
           super
@@ -52,7 +50,7 @@ module Fog
           merge_attributes(new_attributes)
           true
         end
-        
+
         private
 
         def associationSet=(new_association_set)
@@ -62,7 +60,6 @@ module Fog
         def routeSet=(new_route_set)
           merge_attributes(new_route_set || {})
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/route_tables.rb b/lib/fog/aws/models/compute/route_tables.rb
index b5fe400..a792d0e 100755
--- a/lib/fog/aws/models/compute/route_tables.rb
+++ b/lib/fog/aws/models/compute/route_tables.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/route_table'
 module Fog
   module Compute
     class AWS
-
       class RouteTables < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::RouteTable
@@ -84,9 +82,7 @@ module Fog
             self.class.new(:service => service).all('route-table-id' => route_table_id).first
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/security_group.rb b/lib/fog/aws/models/compute/security_group.rb
index 94043dd..5bf95f4 100644
--- a/lib/fog/aws/models/compute/security_group.rb
+++ b/lib/fog/aws/models/compute/security_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class SecurityGroup < Fog::Model
-
         identity  :name,            :aliases => 'groupName'
         attribute :description,     :aliases => 'groupDescription'
         attribute :group_id,        :aliases => 'groupId'
@@ -277,9 +275,7 @@ module Fog
 
           info
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/security_groups.rb b/lib/fog/aws/models/compute/security_groups.rb
index 263ecc8..36dfd98 100644
--- a/lib/fog/aws/models/compute/security_groups.rb
+++ b/lib/fog/aws/models/compute/security_groups.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/security_group'
 module Fog
   module Compute
     class AWS
-
       class SecurityGroups < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::SecurityGroup
@@ -114,7 +112,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/server.rb b/lib/fog/aws/models/compute/server.rb
index b6ef076..e05d532 100644
--- a/lib/fog/aws/models/compute/server.rb
+++ b/lib/fog/aws/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class AWS
-
       class Server < Fog::Compute::Server
         extend Fog::Deprecation
         deprecate :ip_address, :public_ip_address
@@ -17,18 +16,19 @@ module Fog
         attribute :block_device_mapping,     :aliases => 'blockDeviceMapping'
         attribute :network_interfaces,       :aliases => 'networkInterfaces'
         attribute :client_token,             :aliases => 'clientToken'
+        attribute :disable_api_termination,  :aliases => 'disableApiTermination'
         attribute :dns_name,                 :aliases => 'dnsName'
         attribute :ebs_optimized,            :aliases => 'ebsOptimized'
         attribute :groups
         attribute :flavor_id,                :aliases => 'instanceType'
-        attribute :hypervisor              
+        attribute :hypervisor
         attribute :iam_instance_profile,     :aliases => 'iamInstanceProfile'
         attribute :image_id,                 :aliases => 'imageId'
         attr_accessor :instance_initiated_shutdown_behavior
         attribute :kernel_id,                :aliases => 'kernelId'
         attribute :key_name,                 :aliases => 'keyName'
         attribute :created_at,               :aliases => 'launchTime'
-        attribute :lifecycle,                :aliases => 'instanceLifecycle' 
+        attribute :lifecycle,                :aliases => 'instanceLifecycle'
         attribute :monitoring,               :squash =>  'state'
         attribute :placement_group,          :aliases => 'groupName'
         attribute :platform,                 :aliases => 'platform'
@@ -56,7 +56,6 @@ module Fog
         attr_accessor                        :password
         attr_writer                          :iam_instance_profile_name, :iam_instance_profile_arn
 
-
         def initialize(attributes={})
           self.groups     ||= ["default"] unless (attributes[:subnet_id] || attributes[:security_group_ids] || attributes[:network_interfaces])
           self.flavor_id  ||= 't1.micro'
@@ -117,13 +116,12 @@ module Fog
         end
 
         def flavor
-          @flavor ||= service.flavors.all.detect {|flavor| flavor.id == flavor_id}
+          @flavor ||= service.flavors.all.find {|flavor| flavor.id == flavor_id}
         end
 
         def key_pair
           requires :key_name
-
-          service.key_pairs.all(key_name).first
+          service.key_pairs.all({'key-name' => key_name}).first
         end
 
         def key_pair=(new_keypair)
@@ -140,7 +138,7 @@ module Fog
           true
         end
 
-        def save
+        def run_instance_options
           raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
           requires :image_id
 
@@ -148,6 +146,7 @@ module Fog
             'BlockDeviceMapping'          => block_device_mapping,
             'NetworkInterfaces'           => network_interfaces,
             'ClientToken'                 => client_token,
+            'DisableApiTermination'       => disable_api_termination,
             'EbsOptimized'                => ebs_optimized,
             'IamInstanceProfile.Arn'      => @iam_instance_profile_arn,
             'IamInstanceProfile.Name'     => @iam_instance_profile_name,
@@ -186,27 +185,21 @@ module Fog
               else
                 options["NetworkInterface.0.SecurityGroupId.0"] = options['SecurityGroupId']
               end
-              options.delete('SecurityGroupId')              
+              options.delete('SecurityGroupId')
+              if private_ip_address
+                options.delete('PrivateIpAddress')
+                options['NetworkInterface.0.PrivateIpAddress'] = private_ip_address
+              end
             end
           else
             options.delete('SubnetId')
           end
+          options
+        end
 
-          data = service.run_instances(image_id, 1, 1, options)
-          merge_attributes(data.body['instancesSet'].first)
-
-          if tags = self.tags
-            # expect eventual consistency
-            Fog.wait_for { self.reload rescue nil }
-            for key, value in (self.tags = tags)
-              service.tags.create(
-                :key          => key,
-                :resource_id  => self.identity,
-                :value        => value
-              )
-            end
-          end
-
+        def save
+          servers = service.servers.save_many(self, 1, 1)
+          merge_attributes(servers.first.attributes)
           true
         end
 
@@ -272,9 +265,7 @@ module Fog
             self.attributes[:placement] = new_placement
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/servers.rb b/lib/fog/aws/models/compute/servers.rb
index 107761c..aa71a94 100644
--- a/lib/fog/aws/models/compute/servers.rb
+++ b/lib/fog/aws/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/server'
 module Fog
   module Compute
     class AWS
-
       class Servers < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::Server
@@ -72,41 +70,39 @@ module Fog
           )
         end
 
-        def bootstrap(new_attributes = {})
-          server = service.servers.new(new_attributes)
+        # Create between m and n servers with the server options specified in
+        # new_attributes.  Equivalent to this loop, but happens in 1 request:
+        #
+        #    1.upto(n).map { create(new_attributes) }
+        #
+        # See the AWS RunInstances API.
+        def create_many(min_servers = 1, max_servers = nil, new_attributes = {})
+          max_servers ||= min_servers
+          template = new(new_attributes)
+          save_many(template, min_servers, max_servers)
+        end
 
-          unless new_attributes[:key_name]
-            # first or create fog_#{credential} keypair
-            name = Fog.respond_to?(:credential) && Fog.credential || :default
-            unless server.key_pair = service.key_pairs.get("fog_#{name}")
-              server.key_pair = service.key_pairs.create(
-                :name => "fog_#{name}",
-                :public_key => server.public_key
-              )
-            end
-          end
-        
-          security_group = service.security_groups.get(server.groups.first)
-          if security_group.nil?
-            raise Fog::Compute::AWS::Error, "The security group" \
-              " #{server.groups.first} doesn't exist."
-          end
-          
-          # make sure port 22 is open in the first security group
-          authorized = security_group.ip_permissions.detect do |ip_permission|
-            ip_permission['ipRanges'].first && ip_permission['ipRanges'].first['cidrIp'] == '0.0.0.0/0' &&
-            ip_permission['fromPort'] == 22 &&
-            ip_permission['ipProtocol'] == 'tcp' &&
-            ip_permission['toPort'] == 22
-          end
-          unless authorized
-            security_group.authorize_port_range(22..22)
+        # Bootstrap between m and n servers with the server options specified in
+        # new_attributes.  Equivalent to this loop, but happens in 1 AWS request
+        # and the machines' spinup will happen in parallel:
+        #
+        #   1.upto(n).map { bootstrap(new_attributes) }
+        #
+        # See the AWS RunInstances API.
+        def bootstrap_many(min_servers = 1, max_servers = nil, new_attributes = {})
+          template = service.servers.new(new_attributes)
+          _setup_bootstrap(template)
+
+          servers = save_many(template, min_servers, max_servers)
+          servers.each do |server|
+            server.wait_for { ready? }
+            server.setup(:key_data => [server.private_key])
           end
+          servers
+        end
 
-          server.save
-          server.wait_for { ready? }
-          server.setup(:key_data => [server.private_key])
-          server
+        def bootstrap(new_attributes = {})
+          bootstrap_many(1, 1, new_attributes).first
         end
 
         # Used to retrieve a server
@@ -157,8 +153,59 @@ module Fog
           nil
         end
 
-      end
+        # From a template, create between m-n servers (see the AWS RunInstances API)
+        def save_many(template, min_servers = 1, max_servers = nil)
+          max_servers ||= min_servers
+          data = service.run_instances(template.image_id, min_servers, max_servers, template.run_instance_options)
+          # For some reason, AWS sometimes returns empty results alongside the real ones.  Thus the select
+          data.body['instancesSet'].select { |instance_set| instance_set['instanceId'] }.map do |instance_set|
+            server = template.dup
+            server.merge_attributes(instance_set)
+            # expect eventual consistency
+            if (tags = server.tags) && tags.size > 0
+              Fog.wait_for { server.reload rescue nil }
+              service.create_tags(
+                server.identity,
+                tags
+              )
+            end
+            server
+          end
+        end
+
+        private
 
+        def _setup_bootstrap(server)
+          unless server.key_name
+            # first or create fog_#{credential} keypair
+            name = Fog.respond_to?(:credential) && Fog.credential || :default
+            unless server.key_pair = service.key_pairs.get("fog_#{name}")
+              server.key_pair = service.key_pairs.create(
+                :name => "fog_#{name}",
+                :public_key => server.public_key
+              )
+            end
+          end
+
+          security_group = service.security_groups.get(server.groups.first)
+          if security_group.nil?
+            raise Fog::Compute::AWS::Error, "The security group" \
+              " #{server.groups.first} doesn't exist."
+          end
+
+          # make sure port 22 is open in the first security group
+          authorized = security_group.ip_permissions.find do |ip_permission|
+            ip_permission['ipRanges'].first && ip_permission['ipRanges'].first['cidrIp'] == '0.0.0.0/0' &&
+            ip_permission['fromPort'] == 22 &&
+            ip_permission['ipProtocol'] == 'tcp' &&
+            ip_permission['toPort'] == 22
+          end
+
+          unless authorized
+            security_group.authorize_port_range(22..22)
+          end
+        end
+      end
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/snapshot.rb b/lib/fog/aws/models/compute/snapshot.rb
index be0a45a..7b512f1 100644
--- a/lib/fog/aws/models/compute/snapshot.rb
+++ b/lib/fog/aws/models/compute/snapshot.rb
@@ -3,12 +3,11 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Snapshot < Fog::Model
-
         identity  :id,          :aliases => 'snapshotId'
 
         attribute :description
+        attribute :encrypted
         attribute :progress
         attribute :created_at,  :aliases => 'startTime'
         attribute :owner_id,    :aliases => 'ownerId'
@@ -48,9 +47,7 @@ module Fog
         def volume=(new_volume)
           self.volume_id = new_volume.volume_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/snapshots.rb b/lib/fog/aws/models/compute/snapshots.rb
index 0b97dbb..e3d3e7e 100644
--- a/lib/fog/aws/models/compute/snapshots.rb
+++ b/lib/fog/aws/models/compute/snapshots.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/snapshot'
 module Fog
   module Compute
     class AWS
-
       class Snapshots < Fog::Collection
-
         attribute :filters
         attribute :volume
 
@@ -44,9 +42,7 @@ module Fog
             super
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/spot_request.rb b/lib/fog/aws/models/compute/spot_request.rb
index cfa46d8..cd7879d 100644
--- a/lib/fog/aws/models/compute/spot_request.rb
+++ b/lib/fog/aws/models/compute/spot_request.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class AWS
-
       class SpotRequest < Fog::Compute::Server
-
         identity :id,                          :aliases => 'spotInstanceRequestId'
 
         attribute :price,                      :aliases => 'spotPrice'
@@ -115,7 +113,6 @@ module Fog
           spot_instance_request.merge(options)
           merge_attributes( spot_instance_request )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/spot_requests.rb b/lib/fog/aws/models/compute/spot_requests.rb
index ff9d07e..21fe0a1 100644
--- a/lib/fog/aws/models/compute/spot_requests.rb
+++ b/lib/fog/aws/models/compute/spot_requests.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class AWS
       class SpotRequests < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::SpotRequest
@@ -50,7 +49,7 @@ module Fog
 
           # make sure port 22 is open in the first security group
           security_group = service.security_groups.get(spot_request.groups.first)
-          authorized = security_group.ip_permissions.detect do |ip_permission|
+          authorized = security_group.ip_permissions.find do |ip_permission|
             ip_permission['ipRanges'].first && ip_permission['ipRanges'].first['cidrIp'] == '0.0.0.0/0' &&
             ip_permission['fromPort'] == 22 &&
             ip_permission['ipProtocol'] == 'tcp' &&
@@ -64,13 +63,10 @@ module Fog
           Fog.wait_for { spot_request.reload.ready? rescue nil }
           server = service.servers.get(spot_request.instance_id)
           if spot_request.tags
-            for key, value in spot_request.tags
-              service.tags.create(
-                :key          => key,
-                :resource_id  => spot_request.instance_id,
-                :value        => value
-              )
-            end
+            service.create_tags(
+              spot_request.instance_id,
+              spot_request.tags
+            )
           end
           server.wait_for { ready? }
           server.setup(:key_data => [spot_request.private_key])
@@ -84,7 +80,6 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/subnet.rb b/lib/fog/aws/models/compute/subnet.rb
index 9e5ab43..d515fab 100644
--- a/lib/fog/aws/models/compute/subnet.rb
+++ b/lib/fog/aws/models/compute/subnet.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Subnet < Fog::Model
-
         identity  :subnet_id,                   :aliases => 'subnetId'
         attribute :state
         attribute :vpc_id,                      :aliases => 'vpcId'
@@ -13,6 +11,7 @@ module Fog
         attribute :available_ip_address_count,  :aliases => 'availableIpAddressCount'
         attribute :availability_zone,           :aliases => 'availabilityZone'
         attribute :tag_set,                     :aliases => 'tagSet'
+        attribute :map_public_ip_on_launch,     :aliases => 'mapPublicIpOnLaunch'
 
         def ready?
           requires :state
@@ -56,7 +55,6 @@ module Fog
 
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/subnets.rb b/lib/fog/aws/models/compute/subnets.rb
index 0b74d98..cc7fb74 100644
--- a/lib/fog/aws/models/compute/subnets.rb
+++ b/lib/fog/aws/models/compute/subnets.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/subnet'
 module Fog
   module Compute
     class AWS
-
       class Subnets < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::Subnet
@@ -91,9 +89,7 @@ module Fog
             self.class.new(:service => service).all('subnet-id' => subnet_id).first
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/tag.rb b/lib/fog/aws/models/compute/tag.rb
index c41423c..e9eae78 100644
--- a/lib/fog/aws/models/compute/tag.rb
+++ b/lib/fog/aws/models/compute/tag.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Tag < Fog::Model
-
         identity  :key
 
         attribute :value
@@ -27,7 +25,6 @@ module Fog
           service.create_tags(resource_id, key => value)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/tags.rb b/lib/fog/aws/models/compute/tags.rb
index 632e40c..4574da5 100644
--- a/lib/fog/aws/models/compute/tags.rb
+++ b/lib/fog/aws/models/compute/tags.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/tag'
 module Fog
   module Compute
     class AWS
-
       class Tags < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::Tag
@@ -28,7 +26,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/volume.rb b/lib/fog/aws/models/compute/volume.rb
index 944a5d0..5b58737 100644
--- a/lib/fog/aws/models/compute/volume.rb
+++ b/lib/fog/aws/models/compute/volume.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class Volume < Fog::Model
-
         identity  :id,                    :aliases => 'volumeId'
 
         attribute :attached_at,           :aliases => 'attachTime'
@@ -16,6 +14,7 @@ module Fog
         attribute :iops
         attribute :server_id,             :aliases => 'instanceId'
         attribute :size
+        attribute :encrypted
         attribute :snapshot_id,           :aliases => 'snapshotId'
         attribute :state,                 :aliases => 'status'
         attribute :tags,                  :aliases => 'tagSet'
@@ -47,20 +46,17 @@ module Fog
             requires :iops
           end
 
-          data = service.create_volume(availability_zone, size, 'SnapshotId' => snapshot_id, 'VolumeType' => type, 'Iops' => iops).body
+          data = service.create_volume(availability_zone, size, 'SnapshotId' => snapshot_id, 'VolumeType' => type, 'Iops' => iops, 'Encrypted' => encrypted).body
           new_attributes = data.reject {|key,value| key == 'requestId'}
           merge_attributes(new_attributes)
 
           if tags = self.tags
             # expect eventual consistency
             Fog.wait_for { self.reload rescue nil }
-            for key, value in (self.tags = tags)
-              service.tags.create(
-                :key          => key,
-                :resource_id  => self.identity,
-                :value        => value
-              )
-            end
+            service.create_tags(
+              self.identity,
+              tags
+            )
           end
 
           if @server
@@ -124,7 +120,6 @@ module Fog
             reload
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/compute/volumes.rb b/lib/fog/aws/models/compute/volumes.rb
index 15e87b4..bb47b4a 100644
--- a/lib/fog/aws/models/compute/volumes.rb
+++ b/lib/fog/aws/models/compute/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/volume'
 module Fog
   module Compute
     class AWS
-
       class Volumes < Fog::Collection
-
         attribute :filters
         attribute :server
 
@@ -113,9 +111,7 @@ module Fog
             super
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/vpc.rb b/lib/fog/aws/models/compute/vpc.rb
index aa484eb..ebf2350 100644
--- a/lib/fog/aws/models/compute/vpc.rb
+++ b/lib/fog/aws/models/compute/vpc.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class AWS
-
       class VPC < Fog::Model
-
         identity :id,                :aliases => 'vpcId'
 
         attribute :state
@@ -57,12 +55,21 @@ module Fog
 
           data = service.create_vpc(cidr_block).body['vpcSet'].first
           new_attributes = data.reject {|key,value| key == 'requestId'}
+          new_attributes = data.reject {|key,value| key == 'requestId' || key == 'tagSet' }
           merge_attributes(new_attributes)
+
+          if tags = self.tags
+            # expect eventual consistency
+            Fog.wait_for { self.reload rescue nil }
+            service.create_tags(
+              self.identity,
+              tags
+            )
+          end
+
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/compute/vpcs.rb b/lib/fog/aws/models/compute/vpcs.rb
index 612a90c..da17710 100644
--- a/lib/fog/aws/models/compute/vpcs.rb
+++ b/lib/fog/aws/models/compute/vpcs.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/compute/vpc'
 module Fog
   module Compute
     class AWS
-
       class Vpcs < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::AWS::VPC
@@ -85,9 +83,7 @@ module Fog
             self.class.new(:service => service).all('vpc-id' => vpc_id).first
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/data_pipeline/pipeline.rb b/lib/fog/aws/models/data_pipeline/pipeline.rb
index 03931d1..54f516d 100644
--- a/lib/fog/aws/models/data_pipeline/pipeline.rb
+++ b/lib/fog/aws/models/data_pipeline/pipeline.rb
@@ -3,19 +3,17 @@ require 'fog/core/model'
 module Fog
   module AWS
     class DataPipeline
-
       class Pipeline < Fog::Model
-
         identity  :id, :aliases => 'pipelineId'
         attribute :name
         attribute :description
+        attribute :tags
         attribute :user_id, :aliases => 'userId'
         attribute :account_id, :aliases => 'accountId'
         attribute :state, :aliases => 'pipelineState'
         attribute :unique_id, :aliases => 'uniqueId'
 
         def initialize(attributes={})
-
           # Extract the 'fields' portion of a response to attributes
           if attributes.include?('fields')
             string_fields = attributes['fields'].select { |f| f.include?('stringValue') }
@@ -30,7 +28,7 @@ module Fog
           requires :name
           requires :unique_id
 
-          data = service.create_pipeline(unique_id, name)
+          data = service.create_pipeline(unique_id, name, nil, tags)
           merge_attributes(data)
 
           true
@@ -59,9 +57,7 @@ module Fog
 
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/data_pipeline/pipelines.rb b/lib/fog/aws/models/data_pipeline/pipelines.rb
index 332380a..5ef0420 100644
--- a/lib/fog/aws/models/data_pipeline/pipelines.rb
+++ b/lib/fog/aws/models/data_pipeline/pipelines.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/data_pipeline/pipeline'
 module Fog
   module AWS
     class DataPipeline
-
       class Pipelines < Fog::Collection
-
         model Fog::AWS::DataPipeline::Pipeline
 
         def all
@@ -29,7 +27,6 @@ module Fog
 
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/dns/record.rb b/lib/fog/aws/models/dns/record.rb
index f2398e9..f1ee6b5 100644
--- a/lib/fog/aws/models/dns/record.rb
+++ b/lib/fog/aws/models/dns/record.rb
@@ -3,24 +3,26 @@ require 'fog/core/model'
 module Fog
   module DNS
     class AWS
-
       class Record < Fog::Model
         extend Fog::Deprecation
         deprecate :ip, :value
         deprecate :ip=, :value=
 
-        identity :name,           :aliases => ['Name']
-
-        attribute :value,         :aliases => ['ResourceRecords']
-        attribute :ttl,           :aliases => ['TTL']
-        attribute :type,          :aliases => ['Type']
-        attribute :status,        :aliases => ['Status']
-        attribute :created_at,    :aliases => ['SubmittedAt']
-        attribute :alias_target,  :aliases => ['AliasTarget']
-        attribute :change_id,     :aliases => ['Id']
-        attribute :region,        :aliases => ['Region']
-        attribute :weight,        :aliases => ['Weight']
-        attribute :set_identifier,:aliases => ['SetIdentifier']
+        identity :name,             :aliases => ['Name']
+
+        attribute :value,           :aliases => ['ResourceRecords']
+        attribute :ttl,             :aliases => ['TTL']
+        attribute :type,            :aliases => ['Type']
+        attribute :status,          :aliases => ['Status']
+        attribute :created_at,      :aliases => ['SubmittedAt']
+        attribute :alias_target,    :aliases => ['AliasTarget']
+        attribute :change_id,       :aliases => ['Id']
+        attribute :region,          :aliases => ['Region']
+        attribute :weight,          :aliases => ['Weight']
+        attribute :set_identifier,  :aliases => ['SetIdentifier']
+        attribute :failover,        :aliases => ['Failover']
+        attribute :geo_location,    :aliases => ['GeoLocation']
+        attribute :health_check_id, :aliases => ['HealthCheckId']
 
         def initialize(attributes={})
           super
@@ -97,7 +99,10 @@ module Fog
               :type             => type,
               :weight           => weight,
               :set_identifier   => set_identifier,
-              :region           => region
+              :region           => region,
+              :failover         => failover,
+              :geo_location     => geo_location,
+              :health_check_id  => health_check_id
           }
           unless self.alias_target
             requires :ttl
@@ -105,9 +110,7 @@ module Fog
           end
           options
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/dns/records.rb b/lib/fog/aws/models/dns/records.rb
index f0cffb8..13a0818 100644
--- a/lib/fog/aws/models/dns/records.rb
+++ b/lib/fog/aws/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/dns/record'
 module Fog
   module DNS
     class AWS
-
       class Records < Fog::Collection
-
         attribute :is_truncated,            :aliases => ['IsTruncated']
         attribute :max_items,               :aliases => ['MaxItems']
         attribute :name
@@ -30,7 +28,7 @@ module Fog
 
           data = service.list_resource_record_sets(zone.id, options).body
           # NextRecordIdentifier is completely absent instead of nil, so set to nil, or iteration breaks.
-          data['NextRecordIdentifier'] = nil unless data.has_key?('NextRecordIdentifier')
+          data['NextRecordIdentifier'] = nil unless data.key?('NextRecordIdentifier')
 
           merge_attributes(data.reject {|key, value| !['IsTruncated', 'MaxItems', 'NextRecordName', 'NextRecordType', 'NextRecordIdentifier'].include?(key)})
           load(data['ResourceRecordSets'])
@@ -57,7 +55,7 @@ module Fog
 
             batch = service.list_resource_record_sets(zone.id, options).body
             # NextRecordIdentifier is completely absent instead of nil, so set to nil, or iteration breaks.
-            batch['NextRecordIdentifier'] = nil unless batch.has_key?('NextRecordIdentifier')
+            batch['NextRecordIdentifier'] = nil unless batch.key?('NextRecordIdentifier')
 
             merge_attributes(batch.reject {|key, value| !['IsTruncated', 'MaxItems', 'NextRecordName', 'NextRecordType', 'NextRecordIdentifier'].include?(key)})
 
@@ -116,9 +114,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/dns/zone.rb b/lib/fog/aws/models/dns/zone.rb
index 31508d5..aee0ede 100644
--- a/lib/fog/aws/models/dns/zone.rb
+++ b/lib/fog/aws/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/core/model'
 module Fog
   module DNS
     class AWS
-
       class Zone < Fog::Model
-
         identity :id,                 :aliases => 'Id'
 
         attribute :caller_reference,  :aliases => 'CallerReference'
@@ -45,9 +43,7 @@ module Fog
         define_method(:HostedZone=) do |new_hosted_zone|
           merge_attributes(new_hosted_zone)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/dns/zones.rb b/lib/fog/aws/models/dns/zones.rb
index 29a2216..cffccbc 100644
--- a/lib/fog/aws/models/dns/zones.rb
+++ b/lib/fog/aws/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/dns/zone'
 module Fog
   module DNS
     class AWS
-
       class Zones < Fog::Collection
-
         attribute :marker,    :aliases => 'Marker'
         attribute :max_items, :aliases => 'MaxItems'
 
@@ -25,9 +23,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/cluster.rb b/lib/fog/aws/models/elasticache/cluster.rb
index 1d12440..37254e6 100644
--- a/lib/fog/aws/models/elasticache/cluster.rb
+++ b/lib/fog/aws/models/elasticache/cluster.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class Elasticache
-
       class Cluster < Fog::Model
         # simple attributes
         identity :id, :aliases => 'CacheClusterId'
@@ -18,22 +17,14 @@ module Fog
         attribute :maintenance_window, :aliases => 'PreferredMaintenanceWindow'
         # complex attributes
         attribute :nodes, :aliases => 'CacheNodes', :type => :array
-        attribute :parameter_group,
-          :aliases => 'CacheParameterGroup', :type => :hash
-        attribute :pending_values,
-          :aliases => 'PendingModifiedValues', :type => :hash
-        attribute :create_time,
-          :aliases => 'CacheClusterCreateTime', :type => :date_time
-        attribute :security_groups,
-          :aliases => 'CacheSecurityGroups', :type => :array
-        attribute :notification_config,
-          :aliases => 'NotificationConfiguration', :type => :hash
-        attribute :cache_subnet_group_name,
-          :aliases => 'CacheSubnetGroupName'
-        attribute :vpc_security_groups,
-          :aliases => 'VpcSecurityGroups', :type => :array
-        attribute :s3_snapshot_location,
-          :aliases => 'SnapshotArns', :type => :array
+        attribute :parameter_group, :aliases => 'CacheParameterGroup'
+        attribute :pending_values, :aliases => 'PendingModifiedValues'
+        attribute :create_time, :aliases => 'CacheClusterCreateTime', :type => :timestamp
+        attribute :security_groups, :aliases => 'CacheSecurityGroups', :type => :array
+        attribute :notification_config, :aliases => 'NotificationConfiguration'
+        attribute :cache_subnet_group_name, :aliases => 'CacheSubnetGroupName'
+        attribute :vpc_security_groups, :aliases => 'VpcSecurityGroups', :type => :array
+        attribute :s3_snapshot_location, :aliases => 'SnapshotArns', :type => :array
 
         attr_accessor :parameter_group_name
 
@@ -72,9 +63,7 @@ module Fog
             }
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/clusters.rb b/lib/fog/aws/models/elasticache/clusters.rb
index 0ef7490..41f8dcd 100644
--- a/lib/fog/aws/models/elasticache/clusters.rb
+++ b/lib/fog/aws/models/elasticache/clusters.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/elasticache/cluster'
 module Fog
   module AWS
     class Elasticache
-
       class Clusters < Fog::Collection
         model Fog::AWS::Elasticache::Cluster
 
@@ -25,7 +24,6 @@ module Fog
         rescue Fog::AWS::Elasticache::NotFound
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/parameter_group.rb b/lib/fog/aws/models/elasticache/parameter_group.rb
index 93c44a3..2d31c01 100644
--- a/lib/fog/aws/models/elasticache/parameter_group.rb
+++ b/lib/fog/aws/models/elasticache/parameter_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class Elasticache
-
       class ParameterGroup < Fog::Model
-
         identity :id, :aliases => 'CacheParameterGroupName'
         attribute :description, :aliases => 'Description'
         attribute :family, :aliases => 'CacheParameterGroupFamily'
@@ -24,9 +22,7 @@ module Fog
             family      = 'memcached1.4'
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/parameter_groups.rb b/lib/fog/aws/models/elasticache/parameter_groups.rb
index 3b9848c..caa8c1f 100644
--- a/lib/fog/aws/models/elasticache/parameter_groups.rb
+++ b/lib/fog/aws/models/elasticache/parameter_groups.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/elasticache/parameter_group'
 module Fog
   module AWS
     class Elasticache
-
       class ParameterGroups < Fog::Collection
         model Fog::AWS::Elasticache::ParameterGroup
 
@@ -24,7 +23,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/security_group.rb b/lib/fog/aws/models/elasticache/security_group.rb
index d216625..45623b8 100644
--- a/lib/fog/aws/models/elasticache/security_group.rb
+++ b/lib/fog/aws/models/elasticache/security_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class Elasticache
-
       class SecurityGroup < Fog::Model
-
         identity :id, :aliases => 'CacheSecurityGroupName'
         attribute :description, :aliases => 'Description'
         attribute :ec2_groups, :aliases => 'EC2SecurityGroups', :type => :array
@@ -44,9 +42,7 @@ module Fog
           )
           merge_attributes(data.body['CacheSecurityGroup'])
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/security_groups.rb b/lib/fog/aws/models/elasticache/security_groups.rb
index 6a76db5..e2d81f1 100644
--- a/lib/fog/aws/models/elasticache/security_groups.rb
+++ b/lib/fog/aws/models/elasticache/security_groups.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/elasticache/security_group'
 module Fog
   module AWS
     class Elasticache
-
       class SecurityGroups < Fog::Collection
         model Fog::AWS::Elasticache::SecurityGroup
 
@@ -24,7 +23,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elasticache/subnet_group.rb b/lib/fog/aws/models/elasticache/subnet_group.rb
index fc354a6..589a31f 100644
--- a/lib/fog/aws/models/elasticache/subnet_group.rb
+++ b/lib/fog/aws/models/elasticache/subnet_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class Elasticache
-
       class SubnetGroup < Fog::Model
-
         identity   :id, :aliases => ['CacheSubnetGroupName', :name]
         attribute  :description, :aliases => 'CacheSubnetGroupDescription'
         attribute  :vpc_id, :aliases => 'VpcId'
@@ -28,7 +26,6 @@ module Fog
           service.delete_cache_subnet_group(id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/elasticache/subnet_groups.rb b/lib/fog/aws/models/elasticache/subnet_groups.rb
index bd07838..e457a0f 100644
--- a/lib/fog/aws/models/elasticache/subnet_groups.rb
+++ b/lib/fog/aws/models/elasticache/subnet_groups.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/elasticache/subnet_group'
 module Fog
   module AWS
     class Elasticache
-
       class SubnetGroups < Fog::Collection
-
         model Fog::AWS::Elasticache::SubnetGroup
 
         def all
@@ -20,7 +18,6 @@ module Fog
         rescue Fog::AWS::Elasticache::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/elb/backend_server_descriptions.rb b/lib/fog/aws/models/elb/backend_server_descriptions.rb
index 2f8ffd7..1463ce2 100644
--- a/lib/fog/aws/models/elb/backend_server_descriptions.rb
+++ b/lib/fog/aws/models/elb/backend_server_descriptions.rb
@@ -3,7 +3,6 @@ module Fog
   module AWS
     class ELB
       class BackendServerDescriptions < Fog::Collection
-
         model Fog::AWS::ELB::BackendServerDescription
 
         attr_accessor :data, :load_balancer
@@ -13,9 +12,8 @@ module Fog
         end
 
         def get(instance_port)
-          all.detect{|e| e.instance_port == instance_port}
+          all.find{|e| e.instance_port == instance_port}
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/elb/listener.rb b/lib/fog/aws/models/elb/listener.rb
index fced397..d999509 100644
--- a/lib/fog/aws/models/elb/listener.rb
+++ b/lib/fog/aws/models/elb/listener.rb
@@ -3,7 +3,6 @@ module Fog
   module AWS
     class ELB
       class Listener < Fog::Model
-
         attribute :policy_names,      :aliases => 'PolicyNames'
         attribute :instance_port,     :aliases => 'InstancePort'
         attribute :instance_protocol, :aliases => 'InstanceProtocol'
@@ -51,9 +50,7 @@ module Fog
             'SSLCertificateId' => ssl_id
           }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elb/listeners.rb b/lib/fog/aws/models/elb/listeners.rb
index 4da392d..98b0201 100644
--- a/lib/fog/aws/models/elb/listeners.rb
+++ b/lib/fog/aws/models/elb/listeners.rb
@@ -3,7 +3,6 @@ module Fog
   module AWS
     class ELB
       class Listeners < Fog::Collection
-
         model Fog::AWS::ELB::Listener
 
         attr_accessor :data, :load_balancer
@@ -13,7 +12,7 @@ module Fog
         end
 
         def get(lb_port)
-          all.detect{|listener| listener.lb_port == lb_port}
+          all.find{|listener| listener.lb_port == lb_port}
         end
 
         private
@@ -25,7 +24,6 @@ module Fog
             description['Listener'].merge('PolicyNames' => description['PolicyNames'])
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/elb/load_balancer.rb b/lib/fog/aws/models/elb/load_balancer.rb
index b42aef2..36c5474 100644
--- a/lib/fog/aws/models/elb/load_balancer.rb
+++ b/lib/fog/aws/models/elb/load_balancer.rb
@@ -2,9 +2,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ELB
-
       class LoadBalancer < Fog::Model
-
         identity  :id,                    :aliases => 'LoadBalancerName'
         attribute :availability_zones,    :aliases => 'AvailabilityZones'
         attribute :created_at,            :aliases => 'CreatedTime'
@@ -35,6 +33,23 @@ module Fog
           super
         end
 
+        def connection_draining?
+          requires :id
+          service.describe_load_balancer_attributes(id).body['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']['ConnectionDraining']['Enabled']
+        end
+
+        def connection_draining_timeout
+          requires :id
+          service.describe_load_balancer_attributes(id).body['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']['ConnectionDraining']['Timeout']
+        end
+
+        def set_connection_draining(enabled, timeout=nil)
+          requires :id
+          attrs = {'Enabled' => enabled}
+          attrs['Timeout'] = timeout if timeout
+          service.modify_load_balancer_attributes(id, 'ConnectionDraining' => attrs)
+        end
+
         def cross_zone_load_balancing?
           requires :id
           service.describe_load_balancer_attributes(id).body['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']['CrossZoneLoadBalancing']['Enabled']
@@ -189,7 +204,6 @@ module Fog
           requires :id
           service.delete_load_balancer(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/elb/load_balancers.rb b/lib/fog/aws/models/elb/load_balancers.rb
index ec63543..889e44a 100644
--- a/lib/fog/aws/models/elb/load_balancers.rb
+++ b/lib/fog/aws/models/elb/load_balancers.rb
@@ -31,7 +31,6 @@ module Fog
         rescue Fog::AWS::ELB::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/elb/policies.rb b/lib/fog/aws/models/elb/policies.rb
index d8de70d..fa613c1 100644
--- a/lib/fog/aws/models/elb/policies.rb
+++ b/lib/fog/aws/models/elb/policies.rb
@@ -3,7 +3,6 @@ module Fog
   module AWS
     class ELB
       class Policies < Fog::Collection
-
         model Fog::AWS::ELB::Policy
 
         attr_accessor :data, :load_balancer
@@ -13,12 +12,12 @@ module Fog
         end
 
         def get(id)
-          all.detect{|policy| id == policy.id}
+          all.find{|policy| id == policy.id}
         end
 
         private
         def munged_data
-          data.inject([]){|m,e|
+          data.reduce([]){|m,e|
             policy_attribute_descriptions = e["PolicyAttributeDescriptions"]
 
             policy = {
@@ -29,10 +28,10 @@ module Fog
 
             case e["PolicyTypeName"]
             when 'AppCookieStickinessPolicyType'
-              cookie_name = policy_attribute_descriptions.detect{|h| h['AttributeName'] == 'CookieName'}['AttributeValue']
+              cookie_name = policy_attribute_descriptions.find{|h| h['AttributeName'] == 'CookieName'}['AttributeValue']
               policy['CookieName'] = cookie_name if cookie_name
             when 'LBCookieStickinessPolicyType'
-              cookie_expiration_period = policy_attribute_descriptions.detect{|h| h['AttributeName'] == 'CookieExpirationPeriod'}['AttributeValue'].to_i
+              cookie_expiration_period = policy_attribute_descriptions.find{|h| h['AttributeName'] == 'CookieExpirationPeriod'}['AttributeValue'].to_i
               policy['CookieExpirationPeriod'] = cookie_expiration_period if cookie_expiration_period > 0
             end
 
@@ -42,14 +41,12 @@ module Fog
         end
 
         def policy_attributes(policy_attribute_descriptions)
-          policy_attribute_descriptions.inject({}){|m,e|
+          policy_attribute_descriptions.reduce({}){|m,e|
             m[e["AttributeName"]] = e["AttributeValue"]
             m
           }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/elb/policy.rb b/lib/fog/aws/models/elb/policy.rb
index a38fde2..5a289dc 100644
--- a/lib/fog/aws/models/elb/policy.rb
+++ b/lib/fog/aws/models/elb/policy.rb
@@ -2,7 +2,6 @@ require 'fog/core/model'
 module Fog
   module AWS
     class ELB
-
       class Policy < Fog::Model
         identity :id, :aliases => 'PolicyName'
 
@@ -54,9 +53,7 @@ module Fog
         def load_balancer
           collection.load_balancer
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/glacier/archive.rb b/lib/fog/aws/models/glacier/archive.rb
index 06505e0..3a8946a 100644
--- a/lib/fog/aws/models/glacier/archive.rb
+++ b/lib/fog/aws/models/glacier/archive.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class Glacier
-
       class Archive < Fog::Model
-
         identity  :id
         attribute :description
         attribute :body
@@ -62,9 +60,7 @@ module Fog
           # Complete the upload
           service.complete_multipart_upload(vault.id, upload_id, offset, hash.hexdigest).headers['x-amz-archive-id']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/glacier/archives.rb b/lib/fog/aws/models/glacier/archives.rb
index 5ac9105..59c058e 100644
--- a/lib/fog/aws/models/glacier/archives.rb
+++ b/lib/fog/aws/models/glacier/archives.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/glacier/archive'
 module Fog
   module AWS
     class Glacier
-
       class Archives < Fog::Collection
-
         model Fog::AWS::Glacier::Archive
         attribute :vault
         #you can't list a vault's archives
@@ -22,9 +20,7 @@ module Fog
           requires :vault
           super({ :vault => vault }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/glacier/job.rb b/lib/fog/aws/models/glacier/job.rb
index df29e2b..54caa51 100644
--- a/lib/fog/aws/models/glacier/job.rb
+++ b/lib/fog/aws/models/glacier/job.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class Glacier
-
       class Job < Fog::Model
-
         ARCHIVE = 'archive-retrieval'
         INVENTORY = 'inventory-retrieval'
 
@@ -26,7 +24,6 @@ module Fog
         attribute :format
         attribute :type
 
-
         def ready?
           completed
         end
@@ -58,7 +55,6 @@ module Fog
         def vault=(new_vault)
           @vault = new_vault
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/glacier/jobs.rb b/lib/fog/aws/models/glacier/jobs.rb
index b40586d..724b8a3 100644
--- a/lib/fog/aws/models/glacier/jobs.rb
+++ b/lib/fog/aws/models/glacier/jobs.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/glacier/job'
 module Fog
   module AWS
     class Glacier
-
       class Jobs < Fog::Collection
-
         model Fog::AWS::Glacier::Job
         attribute :vault
         attribute :filters
@@ -36,10 +34,7 @@ module Fog
           requires :vault
           super({ :vault => vault }.merge!(attributes))
         end
-
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/glacier/vault.rb b/lib/fog/aws/models/glacier/vault.rb
index 0349350..1209668 100644
--- a/lib/fog/aws/models/glacier/vault.rb
+++ b/lib/fog/aws/models/glacier/vault.rb
@@ -5,9 +5,7 @@ require 'fog/aws/models/glacier/jobs'
 module Fog
   module AWS
     class Glacier
-
       class Vault < Fog::Model
-
         identity  :id,                    :aliases => 'VaultName'
         attribute :created_at,            :aliases => 'CreationDate', :type => :time
         attribute :last_inventory_at,     :aliases => 'LastInventoryDate', :type => :time
@@ -46,7 +44,6 @@ module Fog
           requires :id
           service.delete_vault(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/glacier/vaults.rb b/lib/fog/aws/models/glacier/vaults.rb
index 186f15e..de7629b 100644
--- a/lib/fog/aws/models/glacier/vaults.rb
+++ b/lib/fog/aws/models/glacier/vaults.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/glacier/vault'
 module Fog
   module AWS
     class Glacier
-
       class Vaults < Fog::Collection
-
         model Fog::AWS::Glacier::Vault
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/iam/access_key.rb b/lib/fog/aws/models/iam/access_key.rb
index 1ced5dd..d3928ef 100644
--- a/lib/fog/aws/models/iam/access_key.rb
+++ b/lib/fog/aws/models/iam/access_key.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class IAM
-
       class AccessKey < Fog::Model
-
         identity  :id, :aliases => 'AccessKeyId'
         attribute :username, :aliases => 'UserName'
         attribute :secret_access_key, :aliases => 'SecretAccessKey'
@@ -35,7 +33,6 @@ module Fog
           requires :username
           service.users.get(username)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/iam/access_keys.rb b/lib/fog/aws/models/iam/access_keys.rb
index 4b5181c..8031f08 100644
--- a/lib/fog/aws/models/iam/access_keys.rb
+++ b/lib/fog/aws/models/iam/access_keys.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/iam/access_key'
 module Fog
   module AWS
     class IAM
-
       class AccessKeys < Fog::Collection
-
         model Fog::AWS::IAM::AccessKey
 
         def initialize(attributes = {})
@@ -28,7 +26,6 @@ module Fog
         def new(attributes = {})
           super({ :username => @username }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/iam/policies.rb b/lib/fog/aws/models/iam/policies.rb
index 87d05be..8c80e7e 100644
--- a/lib/fog/aws/models/iam/policies.rb
+++ b/lib/fog/aws/models/iam/policies.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/iam/policy'
 module Fog
   module AWS
     class IAM
-
       class Policies < Fog::Collection
-
         model Fog::AWS::IAM::Policy
 
         def initialize(attributes = {})
@@ -15,7 +13,6 @@ module Fog
           super
         end
 
-
         def all
           # AWS method get_user_policy only returns an array of policy names, this is kind of useless,
           # that's why it has to loop through the list to get the details of each element. I don't like it because it makes this method slow
@@ -37,7 +34,6 @@ module Fog
         def new(attributes = {})
           super({ :username => @username }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/iam/policy.rb b/lib/fog/aws/models/iam/policy.rb
index 11b4d69..652b691 100644
--- a/lib/fog/aws/models/iam/policy.rb
+++ b/lib/fog/aws/models/iam/policy.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class IAM
-
       class Policy < Fog::Model
-
         identity  :id, :aliases => 'PolicyName'
         attribute :username, :aliases => 'UserName'
         attribute :document, :aliases => 'PolicyDocument'
@@ -32,7 +30,6 @@ module Fog
           requires :username
           service.users.get(username)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/iam/role.rb b/lib/fog/aws/models/iam/role.rb
index d0abea2..458613e 100644
--- a/lib/fog/aws/models/iam/role.rb
+++ b/lib/fog/aws/models/iam/role.rb
@@ -3,21 +3,20 @@ require 'fog/core/model'
 module Fog
   module AWS
     class IAM
-
       class Role < Fog::Model
-        
+
         identity  :id, :aliases => 'RoleId'
         attribute :rolename, :aliases => 'RoleName'
         attribute :create_date, :aliases => 'CreateDate', :type => :time
         attribute :assume_role_policy_document, :aliases => 'AssumeRolePolicyDocument'
         attribute :arn, :aliases => 'Arn'
         attribute :path, :aliases => 'Path'
-        
+
         def save
           raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
           requires :rolename
           requires :assume_role_policy_document
-          
+
           data = service.create_role(rolename, assume_role_policy_document).body["Role"]
           merge_attributes(data)
           true
@@ -25,12 +24,11 @@ module Fog
 
         def destroy
           requires :rolename
-          
+
           service.delete_role(rolename)
           true
         end
-
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/aws/models/iam/roles.rb b/lib/fog/aws/models/iam/roles.rb
index 906d528..db7c6e1 100644
--- a/lib/fog/aws/models/iam/roles.rb
+++ b/lib/fog/aws/models/iam/roles.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/iam/role'
 module Fog
   module AWS
     class IAM
-
       class Roles < Fog::Collection
-
         model Fog::AWS::IAM::Role
 
         def initialize(attributes = {})
@@ -28,12 +26,11 @@ module Fog
         end
 
         def new(attributes = {})
-          if not attributes.has_key?(:assume_role_policy_document)
+          if not attributes.key?(:assume_role_policy_document)
             attributes[:assume_role_policy_document] = Fog::AWS::IAM::EC2_ASSUME_ROLE_POLICY.to_s
           end
           super
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/iam/user.rb b/lib/fog/aws/models/iam/user.rb
index 3a2011f..04695ab 100644
--- a/lib/fog/aws/models/iam/user.rb
+++ b/lib/fog/aws/models/iam/user.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class IAM
-
       class User < Fog::Model
-
         identity  :id, :aliases => 'UserName'
         attribute :path, :aliases => 'Path'
         attribute :arn, :aliases => 'Arn'
@@ -34,7 +32,6 @@ module Fog
           requires :id
           service.access_keys(:username => id)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/iam/users.rb b/lib/fog/aws/models/iam/users.rb
index 343ded0..cfbc625 100644
--- a/lib/fog/aws/models/iam/users.rb
+++ b/lib/fog/aws/models/iam/users.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/iam/user'
 module Fog
   module AWS
     class IAM
-
       class Users < Fog::Collection
-
         attribute :is_truncated,    :aliases => 'IsTruncated'
         attribute :marker,          :aliases => 'Marker'
 
@@ -26,7 +24,7 @@ module Fog
           nil
         end
 
-        alias :each_user_this_page :each
+        alias_method :each_user_this_page, :each
 
         def each
           if !block_given?
diff --git a/lib/fog/aws/models/rds/instance_option.rb b/lib/fog/aws/models/rds/instance_option.rb
index 4db63e7..e38abde 100644
--- a/lib/fog/aws/models/rds/instance_option.rb
+++ b/lib/fog/aws/models/rds/instance_option.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class InstanceOption < Fog::Model
-
         attribute :multi_az_capable, :aliases => 'MultiAZCapable', :type => :boolean
         attribute :engine, :aliases => 'Engine'
         attribute :license_model, :aliases => 'LicenseModel'
@@ -14,7 +12,6 @@ module Fog
         attribute :availability_zones, :aliases => 'AvailabilityZones', :type => :array
         attribute :db_instance_class, :aliases => 'DBInstanceClass'
         attribute :vpc, :aliases => 'Vpc', :type => :boolean
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/instance_options.rb b/lib/fog/aws/models/rds/instance_options.rb
index ededf65..12b3a32 100644
--- a/lib/fog/aws/models/rds/instance_options.rb
+++ b/lib/fog/aws/models/rds/instance_options.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/rds/instance_option'
 module Fog
   module AWS
     class RDS
-
       class InstanceOptions < Fog::PagedCollection
         attribute :filters
         attribute :engine
@@ -23,7 +22,6 @@ module Fog
           self.filters[:marker] = result['Marker']
           load(result['OrderableDBInstanceOptions'])
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/log_file.rb b/lib/fog/aws/models/rds/log_file.rb
index 2b9e0aa..58a66ec 100644
--- a/lib/fog/aws/models/rds/log_file.rb
+++ b/lib/fog/aws/models/rds/log_file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class LogFile < Fog::Model
-
         attribute :rds_id, :aliases => 'DBInstanceIdentifier'
         attribute :name, :aliases => 'LogFileName'
         attribute :size, :aliases => 'Size', :type => :integer
@@ -18,9 +16,7 @@ module Fog
           result = service.download_db_logfile_portion(self.rds_id, self.name, {:marker => marker})
           merge_attributes(result.body['DownloadDBLogFilePortionResult'])
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/rds/log_files.rb b/lib/fog/aws/models/rds/log_files.rb
index ea0c884..7d5bbb2 100644
--- a/lib/fog/aws/models/rds/log_files.rb
+++ b/lib/fog/aws/models/rds/log_files.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/rds/log_file'
 module Fog
   module AWS
     class RDS
-
       class LogFiles < Fog::Collection
         attribute :filters
         attribute :rds_id
@@ -43,7 +42,6 @@ module Fog
           end
         rescue Fog::AWS::RDS::NotFound
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/parameter.rb b/lib/fog/aws/models/rds/parameter.rb
index f7bb3af..23b539f 100644
--- a/lib/fog/aws/models/rds/parameter.rb
+++ b/lib/fog/aws/models/rds/parameter.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class Parameter < Fog::Model
-
         attribute  :name, :aliases => ['ParameterName']
         attribute  :data_type, :aliases => 'DataType'
         attribute  :description, :aliases => 'Description'
@@ -14,7 +12,6 @@ module Fog
         attribute  :modifiable, :aliases => 'IsModifiable'
         attribute  :apply_type, :aliases => 'ApplyType'
         attribute  :value, :aliases => 'ParameterValue'
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/parameter_group.rb b/lib/fog/aws/models/rds/parameter_group.rb
index e96c8ac..cbceb93 100644
--- a/lib/fog/aws/models/rds/parameter_group.rb
+++ b/lib/fog/aws/models/rds/parameter_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class ParameterGroup < Fog::Model
-
         identity  :id, :aliases => ['DBParameterGroupName', :name]
         attribute  :family, :aliases => 'DBParameterGroupFamily'
         attribute  :description, :aliases => 'Description'
@@ -18,7 +16,7 @@ module Fog
         end
 
         def modify(changes)
-          service.modify_db_parameter_group id, changes.collect {|c| {'ParameterName' => c[:name], 'ParameterValue' => c[:value], 'ApplyMethod' => c[:apply_method]}}
+          service.modify_db_parameter_group id, changes.map {|c| {'ParameterName' => c[:name], 'ParameterValue' => c[:value], 'ApplyMethod' => c[:apply_method]}}
         end
 
         def destroy
diff --git a/lib/fog/aws/models/rds/parameter_groups.rb b/lib/fog/aws/models/rds/parameter_groups.rb
index d1c002c..8e74d9d 100644
--- a/lib/fog/aws/models/rds/parameter_groups.rb
+++ b/lib/fog/aws/models/rds/parameter_groups.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/rds/parameter_group'
 module Fog
   module AWS
     class RDS
-
       class ParameterGroups < Fog::Collection
-
         model Fog::AWS::RDS::ParameterGroup
 
         def all
@@ -20,7 +18,6 @@ module Fog
         rescue Fog::AWS::RDS::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/parameters.rb b/lib/fog/aws/models/rds/parameters.rb
index 7af8447..c6a5e35 100644
--- a/lib/fog/aws/models/rds/parameters.rb
+++ b/lib/fog/aws/models/rds/parameters.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/rds/parameter'
 module Fog
   module AWS
     class RDS
-
       class Parameters < Fog::Collection
         attribute :group
         attribute :filters
diff --git a/lib/fog/aws/models/rds/security_group.rb b/lib/fog/aws/models/rds/security_group.rb
index 47d9946..4ab35b0 100644
--- a/lib/fog/aws/models/rds/security_group.rb
+++ b/lib/fog/aws/models/rds/security_group.rb
@@ -4,9 +4,7 @@ require 'fog/core/current_machine'
 module Fog
   module AWS
     class RDS
-
       class SecurityGroup < Fog::Model
-
         identity   :id, :aliases => ['DBSecurityGroupName']
         attribute  :description, :aliases => 'DBSecurityGroupDescription'
         attribute  :ec2_security_groups, :aliases => 'EC2SecurityGroups', :type => :array
@@ -75,7 +73,6 @@ module Fog
           data = service.revoke_db_security_group_ingress(id, opts).body['RevokeDBSecurityGroupIngressResult']['DBSecurityGroup']
           merge_attributes(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/security_groups.rb b/lib/fog/aws/models/rds/security_groups.rb
index 0000a22..1992356 100644
--- a/lib/fog/aws/models/rds/security_groups.rb
+++ b/lib/fog/aws/models/rds/security_groups.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/rds/security_group'
 module Fog
   module AWS
     class RDS
-
       class SecurityGroups < Fog::Collection
         attribute :server
         attribute :filters
@@ -36,7 +35,6 @@ module Fog
         def new(attributes = {})
           super
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/server.rb b/lib/fog/aws/models/rds/server.rb
index 770eb5a..8d3bd1d 100644
--- a/lib/fog/aws/models/rds/server.rb
+++ b/lib/fog/aws/models/rds/server.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class Server < Fog::Model
-
         identity  :id, :aliases => 'DBInstanceIdentifier'
         attribute :engine, :aliases => 'Engine'
         attribute :engine_version, :aliases => 'EngineVersion'
@@ -81,6 +79,11 @@ module Fog
           tags
         end
 
+        def promote_read_replica
+          requires :id
+          service.promote_read_replica(id)
+        end
+
         def modify(immediately, options)
           options[:security_group_names] ||= options['DBSecurityGroups']
           params = self.class.new(options).attributes_to_params
diff --git a/lib/fog/aws/models/rds/servers.rb b/lib/fog/aws/models/rds/servers.rb
index 59cb9d4..d2925dd 100644
--- a/lib/fog/aws/models/rds/servers.rb
+++ b/lib/fog/aws/models/rds/servers.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/rds/server'
 module Fog
   module AWS
     class RDS
-
       class Servers < Fog::Collection
-
         model Fog::AWS::RDS::Server
 
         def all
@@ -20,7 +18,6 @@ module Fog
         rescue Fog::AWS::RDS::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/snapshot.rb b/lib/fog/aws/models/rds/snapshot.rb
index 50b980b..0b809a7 100644
--- a/lib/fog/aws/models/rds/snapshot.rb
+++ b/lib/fog/aws/models/rds/snapshot.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class Snapshot < Fog::Model
-
         identity  :id, :aliases => ['DBSnapshotIdentifier', :name]
         attribute  :instance_id, :aliases => 'DBInstanceIdentifier'
         attribute  :created_at, :aliases => 'SnapshotCreateTime', :type => :time
@@ -45,7 +43,6 @@ module Fog
           requires :instance_id
           service.servers.get(instance_id)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/snapshots.rb b/lib/fog/aws/models/rds/snapshots.rb
index 2a1d5ed..3d6a187 100644
--- a/lib/fog/aws/models/rds/snapshots.rb
+++ b/lib/fog/aws/models/rds/snapshots.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/rds/snapshot'
 module Fog
   module AWS
     class RDS
-
       class Snapshots < Fog::Collection
         attribute :server
         attribute :filters
@@ -64,7 +63,6 @@ module Fog
             super
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/subnet_group.rb b/lib/fog/aws/models/rds/subnet_group.rb
index b8a48eb..37735f3 100644
--- a/lib/fog/aws/models/rds/subnet_group.rb
+++ b/lib/fog/aws/models/rds/subnet_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module AWS
     class RDS
-
       class SubnetGroup < Fog::Model
-
         identity   :id, :aliases => ['DBSubnetGroupName', :name]
         attribute  :description, :aliases => 'DBSubnetGroupDescription'
         attribute  :status, :aliases => 'SubnetGroupStatus'
@@ -27,7 +25,6 @@ module Fog
           requires :id
           service.delete_db_subnet_group(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/rds/subnet_groups.rb b/lib/fog/aws/models/rds/subnet_groups.rb
index 6b5ad6e..b1c76e1 100644
--- a/lib/fog/aws/models/rds/subnet_groups.rb
+++ b/lib/fog/aws/models/rds/subnet_groups.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/rds/subnet_group'
 module Fog
   module AWS
     class RDS
-
       class SubnetGroups < Fog::Collection
-
         model Fog::AWS::RDS::SubnetGroup
 
         def all
@@ -20,7 +18,6 @@ module Fog
         rescue Fog::AWS::RDS::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/models/storage/directories.rb b/lib/fog/aws/models/storage/directories.rb
index 5485d2d..cf1c0f0 100644
--- a/lib/fog/aws/models/storage/directories.rb
+++ b/lib/fog/aws/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/storage/directory'
 module Fog
   module Storage
     class AWS
-
       class Directories < Fog::Collection
-
         model Fog::Storage::AWS::Directory
 
         def all
@@ -35,9 +33,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/storage/directory.rb b/lib/fog/aws/models/storage/directory.rb
index cd8b564..814902a 100644
--- a/lib/fog/aws/models/storage/directory.rb
+++ b/lib/fog/aws/models/storage/directory.rb
@@ -5,7 +5,6 @@ require 'fog/aws/models/storage/versions'
 module Fog
   module Storage
     class AWS
-
       class Directory < Fog::Model
         VALID_ACLS = ['private', 'public-read', 'public-read-write', 'authenticated-read']
 
@@ -79,7 +78,7 @@ module Fog
 
         def public_url
           requires :key
-          if service.get_bucket_acl(key).body['AccessControlList'].detect {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}
+          if service.get_bucket_acl(key).body['AccessControlList'].find {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}
             service.request_url(
               :bucket_name => key
             )
@@ -121,9 +120,7 @@ module Fog
           data = service.get_bucket_location(key)
           data.body['LocationConstraint']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/storage/file.rb b/lib/fog/aws/models/storage/file.rb
index d5396f9..52954a8 100644
--- a/lib/fog/aws/models/storage/file.rb
+++ b/lib/fog/aws/models/storage/file.rb
@@ -4,9 +4,8 @@ require 'fog/aws/models/storage/versions'
 module Fog
   module Storage
     class AWS
-
       class File < Fog::Model
-        # @see AWS Object docs http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html 
+        # @see AWS Object docs http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html
 
         identity  :key,             :aliases => 'Key'
 
@@ -30,14 +29,18 @@ module Fog
         #     Use small chunk sizes to minimize memory. E.g. 5242880 = 5mb
         attr_accessor :multipart_chunk_size
 
+        def acl
+          requires :directory, :key
+          service.get_object_acl(directory.key, key).body['AccessControlList']
+        end
 
         # Set file's access control list (ACL).
-        # 
+        #
         #     valid acls: private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control
-        # 
+        #
         # @param [String] new_acl one of valid options
         # @return [String] @acl
-        # 
+        #
         def acl=(new_acl)
           valid_acls = ['private', 'public-read', 'public-read-write', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control']
           unless valid_acls.include?(new_acl)
@@ -46,11 +49,10 @@ module Fog
           @acl = new_acl
         end
 
-
         # Get file's body if exists, else ' '.
-        # 
+        #
         # @return [File]
-        # 
+        #
         def body
           attributes[:body] ||= if last_modified && (file = collection.get(identity))
             file.body
@@ -59,35 +61,32 @@ module Fog
           end
         end
 
-
         # Set body attribute.
-        # 
+        #
         # @param [File] new_body
         # @return [File] attributes[:body]
-        # 
+        #
         def body=(new_body)
           attributes[:body] = new_body
         end
 
-
         # Get the file instance's directory.
-        # 
+        #
         # @return [Fog::AWS::Storage::Directory]
-        # 
+        #
         def directory
           @directory
         end
 
-
         # Copy object from one bucket to other bucket.
-        # 
+        #
         #     required attributes: directory, key
-        # 
+        #
         # @param target_directory_key [String]
         # @param target_file_key [String]
         # @param options [Hash] options for copy_object method
         # @return [String] Fog::AWS::Files#head status of directory contents
-        # 
+        #
         def copy(target_directory_key, target_file_key, options = {})
           requires :directory, :key
           service.copy_object(directory.key, key, target_directory_key, target_file_key, options)
@@ -95,15 +94,14 @@ module Fog
           target_directory.files.head(target_file_key)
         end
 
-
         # Destroy file via http DELETE.
-        # 
+        #
         #     required attributes: directory, key
-        # 
+        #
         # @param options [Hash]
         # @option options versionId []
         # @return [Boolean] true if successful
-        # 
+        #
         def destroy(options = {})
           requires :directory, :key
           attributes[:body] = nil if options['versionId'] == version
@@ -111,19 +109,16 @@ module Fog
           true
         end
 
-
         remove_method :metadata
         def metadata
           attributes.reject {|key, value| !(key.to_s =~ /^x-amz-/)}
         end
 
-
         remove_method :metadata=
         def metadata=(new_metadata)
           merge_attributes(new_metadata)
         end
 
-
         remove_method :owner=
         def owner=(new_owner)
           if new_owner
@@ -134,14 +129,17 @@ module Fog
           end
         end
 
+        def public?
+          acl.any? {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}
+        end
 
         # Set Access-Control-List permissions.
-        #   
+        #
         #     valid new_publics: public_read, private
-        # 
+        #
         # @param [String] new_public
-        # @return [String] new_public 
-        # 
+        # @return [String] new_public
+        #
         def public=(new_public)
           if new_public
             @acl = 'public-read'
@@ -151,18 +149,17 @@ module Fog
           new_public
         end
 
-
         # Get pubically acessible url via http GET.
-        # Checks persmissions before creating. 
+        # Checks permissions before creating.
         # Defaults to s3 subdomain or compliant bucket name
-        # 
+        #
         #     required attributes: directory, key
-        # 
+        #
         # @return [String] public url
-        # 
+        #
         def public_url
           requires :directory, :key
-          if service.get_object_acl(directory.key, key).body['AccessControlList'].detect {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}
+          if public?
             service.request_url(
               :bucket_name => directory.key,
               :object_name => key
@@ -173,10 +170,10 @@ module Fog
         end
 
         # Save file with body as contents to directory.key with name key via http PUT
-        # 
+        #
         #   required attributes: body, directory, key
-        # 
-        # @param [Hash] options  
+        #
+        # @param [Hash] options
         # @option options [String] acl sets x-amz-acl HTTP header. Valid values include, private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control
         # @option options [String] cache_control sets Cache-Control header. For example, 'No-cache'
         # @option options [String] content_disposition sets Content-Disposition HTTP header. For exampple, 'attachment; filename=testing.txt'
@@ -187,7 +184,7 @@ module Fog
         # @option options [String] storage_class sets x-amz-storage-class HTTP header. Defaults to 'STANDARD'. Or, 'REDUCED_REDUNDANCY'
         # @option options [String] encryption sets HTTP encryption header. Set to 'AES256' to encrypt files at rest on S3
         # @return [Boolean] true if no errors
-        # 
+        #
         def save(options = {})
           requires :body, :directory, :key
           if options != {}
@@ -217,24 +214,22 @@ module Fog
           true
         end
 
-
         # Get a url for file.
-        # 
+        #
         #     required attributes: key
-        # 
+        #
         # @param expires [String] number of seconds (since 1970-01-01 00:00) before url expires
         # @param options [Hash]
         # @return [String] url
-        # 
+        #
         def url(expires, options = {})
           requires :key
           collection.get_url(key, expires, options)
         end
 
-
         # File version if exists or creates new version.
-        # @return [Fog::Storage::AWS::Version] 
-        # 
+        # @return [Fog::Storage::AWS::Version]
+        #
         def versions
           @versions ||= begin
             Fog::Storage::AWS::Versions.new(
@@ -277,9 +272,7 @@ module Fog
           # Complete the upload
           service.complete_multipart_upload(directory.key, key, upload_id, part_tags)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/storage/files.rb b/lib/fog/aws/models/storage/files.rb
index c23cbf8..3498485 100644
--- a/lib/fog/aws/models/storage/files.rb
+++ b/lib/fog/aws/models/storage/files.rb
@@ -4,7 +4,6 @@ require 'fog/aws/models/storage/file'
 module Fog
   module Storage
     class AWS
-
       class Files < Fog::Collection
         extend Fog::Deprecation
         deprecate :get_url, :get_https_url
@@ -41,7 +40,7 @@ module Fog
           end
         end
 
-        alias :each_file_this_page :each
+        alias_method :each_file_this_page, :each
         def each
           if !block_given?
             self
@@ -114,9 +113,7 @@ module Fog
           data.headers['Last-Modified'] = Time.parse(data.get_header('Last-Modified'))
           data.headers['ETag'] = data.get_header('ETag').gsub('"','')
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/storage/version.rb b/lib/fog/aws/models/storage/version.rb
index 38b355c..9186394 100644
--- a/lib/fog/aws/models/storage/version.rb
+++ b/lib/fog/aws/models/storage/version.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class AWS
-
       class Version < Fog::Model
-
         identity  :version,             :aliases => 'VersionId'
 
         attribute :key,                 :aliases => 'Key'
@@ -30,7 +28,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/models/storage/versions.rb b/lib/fog/aws/models/storage/versions.rb
index 0d3e59f..2a400d8 100644
--- a/lib/fog/aws/models/storage/versions.rb
+++ b/lib/fog/aws/models/storage/versions.rb
@@ -4,9 +4,7 @@ require 'fog/aws/models/storage/version'
 module Fog
   module Storage
     class AWS
-
       class Versions < Fog::Collection
-
         attribute :file
         attribute :directory
 
@@ -30,9 +28,7 @@ module Fog
 
           model
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/parsers/auto_scaling/basic.rb b/lib/fog/aws/parsers/auto_scaling/basic.rb
index df99c54..0f15187 100644
--- a/lib/fog/aws/parsers/auto_scaling/basic.rb
+++ b/lib/fog/aws/parsers/auto_scaling/basic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class Basic < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -19,9 +17,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb b/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb
index 32bce7f..e50e79a 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeAdjustmentTypes < Fog::Parsers::Base
-
           def reset
             reset_adjustment_type
             @results = { 'AdjustmentTypes' => [] }
@@ -44,7 +42,6 @@ module Fog
               @response['DescribeAdjustmentTypesResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb b/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb
index 25435e4..79c48ce 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeAutoScalingGroups < Fog::Parsers::Base
-
           def reset
             reset_auto_scaling_group
             reset_enabled_metric
@@ -151,7 +149,6 @@ module Fog
               @response['DescribeAutoScalingGroupsResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_instances.rb b/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_instances.rb
index 905576a..8866bba 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_instances.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeAutoScalingInstances < Fog::Parsers::Base
-
           def reset
             reset_auto_scaling_instance
             @results = { 'AutoScalingInstances' => [] }
@@ -35,7 +33,6 @@ module Fog
               @response['DescribeAutoScalingInstancesResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types.rb b/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types.rb
index 739b297..2b2b6df 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeAutoScalingNotificationTypes < Fog::Parsers::Base
-
           def reset
             @results = { 'AutoScalingNotificationTypes' => [] }
             @response = { 'DescribeAutoScalingNotificationTypesResult' => {}, 'ResponseMetadata' => {} }
@@ -35,7 +33,6 @@ module Fog
               @response['DescribeAutoScalingNotificationTypesResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb b/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb
index b01daa9..ab14f7c 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeLaunchConfigurations < Fog::Parsers::Base
-
           def reset
             reset_launch_configuration
             reset_block_device_mapping
@@ -92,7 +90,6 @@ module Fog
               @response['DescribeLaunchConfigurationsResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb b/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb
index d6bc4fc..6e55815 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb
@@ -2,15 +2,14 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeMetricCollectionTypes < Fog::Parsers::Base
-
           def reset
             reset_granularity
             reset_metric
             @results = { 'Granularities' => [], 'Metrics' => [] }
             @response = { 'DescribeMetricCollectionTypesResult' => {}, 'ResponseMetadata' => {} }
           end
+
           def reset_granularity
             @granularity = {}
           end
@@ -58,7 +57,6 @@ module Fog
               @response[name] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_notification_configurations.rb b/lib/fog/aws/parsers/auto_scaling/describe_notification_configurations.rb
index 09aab36..9792aeb 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_notification_configurations.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_notification_configurations.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeNotificationConfigurations < Fog::Parsers::Base
-
           def reset
             reset_notification_configuration
             @results = { 'NotificationConfigurations' => [] }
@@ -34,7 +32,6 @@ module Fog
               @response['DescribeNotificationConfigurationsResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_policies.rb b/lib/fog/aws/parsers/auto_scaling/describe_policies.rb
index d27b868..a8357c5 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_policies.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_policies.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribePolicies < Fog::Parsers::Base
-
           def reset
             reset_scaling_policy
             reset_alarm
@@ -60,7 +58,6 @@ module Fog
               end
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_scaling_activities.rb b/lib/fog/aws/parsers/auto_scaling/describe_scaling_activities.rb
index 14a67db..0c52abb 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_scaling_activities.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_scaling_activities.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeScalingActivities < Fog::Parsers::Base
-
           def reset
             reset_activity
             @results = { 'Activities' => [] }
@@ -39,7 +37,6 @@ module Fog
               @response['DescribeScalingActivitiesResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb b/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb
index 4c9dc6b..0d3feaf 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeScalingProcessTypes < Fog::Parsers::Base
-
           def reset
             reset_process_type
             @results = { 'Processes' => [] }
@@ -44,7 +42,6 @@ module Fog
               @response['DescribeScalingProcessTypesResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb b/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb
index f783ad6..ed92657 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeScheduledActions < Fog::Parsers::Base
-
           def reset
             reset_scheduled_update_group_action
             @results = { 'ScheduledUpdateGroupActions' => [] }
@@ -38,7 +36,6 @@ module Fog
               @response['DescribeScheduledActionsResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_tags.rb b/lib/fog/aws/parsers/auto_scaling/describe_tags.rb
index eaf6ed3..27a5500 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_tags.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_tags.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeTags < Fog::Parsers::Base
-
           def reset
             reset_tag
             @results = { 'Tags' => [] }
@@ -37,9 +35,7 @@ module Fog
 
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/auto_scaling/describe_termination_policy_types.rb b/lib/fog/aws/parsers/auto_scaling/describe_termination_policy_types.rb
index 4bd572d..9b2cc2c 100644
--- a/lib/fog/aws/parsers/auto_scaling/describe_termination_policy_types.rb
+++ b/lib/fog/aws/parsers/auto_scaling/describe_termination_policy_types.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class DescribeTerminationPolicyTypes < Fog::Parsers::Base
-
           def reset
             @results = { 'TerminationPolicyTypes' => [] }
             @response = { 'DescribeTerminationPolicyTypesResult' => {}, 'ResponseMetadata' => {} }
@@ -35,9 +33,7 @@ module Fog
               @response['DescribeTerminationPolicyTypesResult'] = @results
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/auto_scaling/put_notification_configuration.rb b/lib/fog/aws/parsers/auto_scaling/put_notification_configuration.rb
index 605a99e..eef6a95 100644
--- a/lib/fog/aws/parsers/auto_scaling/put_notification_configuration.rb
+++ b/lib/fog/aws/parsers/auto_scaling/put_notification_configuration.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class PutNotificationConfiguration < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -12,14 +10,13 @@ module Fog
           def start_element(name, attrs = [])
             super
           end
-          
+
           def end_element(name)
             case name
             when 'RequestId'
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/put_scaling_policy.rb b/lib/fog/aws/parsers/auto_scaling/put_scaling_policy.rb
index c9ca0cb..4a0b531 100644
--- a/lib/fog/aws/parsers/auto_scaling/put_scaling_policy.rb
+++ b/lib/fog/aws/parsers/auto_scaling/put_scaling_policy.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class PutScalingPolicy < Fog::Parsers::Base
-
           def reset
             @results = {}
             @response = { 'PutScalingPolicyResult' => {}, 'ResponseMetadata' => {} }
@@ -22,7 +20,6 @@ module Fog
               @response['PutScalingPolicyResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group.rb b/lib/fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group.rb
index 9c4b918..ebc63aa 100644
--- a/lib/fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group.rb
+++ b/lib/fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module AutoScaling
-
         class TerminateInstanceInAutoScalingGroup < Fog::Parsers::Base
-
           def reset
             @results = { 'Activity' => {} }
             @response = { 'TerminateInstanceInAutoScalingGroupResult' => {}, 'ResponseMetadata' => {} }
@@ -27,7 +25,6 @@ module Fog
               @response['TerminateInstanceInAutoScalingGroupResult'] = @results
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb b/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb
index a996c8f..06192e9 100644
--- a/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb
+++ b/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb
@@ -2,18 +2,15 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class CheckDNSAvailability < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("CheckDNSAvailabilityResult")
             tag 'FullyQualifiedCNAME', :string
             tag 'Available', :boolean
           end
         end
-
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/aws/parsers/beanstalk/create_application.rb b/lib/fog/aws/parsers/beanstalk/create_application.rb
index 0eee645..81bdd6d 100644
--- a/lib/fog/aws/parsers/beanstalk/create_application.rb
+++ b/lib/fog/aws/parsers/beanstalk/create_application.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class CreateApplication < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("CreateApplicationResult")
             tag 'Application', :object
@@ -16,7 +14,6 @@ module Fog
             tag 'DateCreated', :datetime
             tag 'DateUpdated', :datetime
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/create_application_version.rb b/lib/fog/aws/parsers/beanstalk/create_application_version.rb
index 968fe3c..d1001f5 100644
--- a/lib/fog/aws/parsers/beanstalk/create_application_version.rb
+++ b/lib/fog/aws/parsers/beanstalk/create_application_version.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class CreateApplicationVersion < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("CreateApplicationVersionResult")
             tag 'ApplicationVersion', :object
@@ -18,7 +16,6 @@ module Fog
             tag 'S3Key', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb b/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb
index 6518784..563768b 100644
--- a/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb
+++ b/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class CreateConfigurationTemplate < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("CreateConfigurationTemplateResult")
             tag 'ApplicationName', :string
@@ -21,7 +19,6 @@ module Fog
             tag 'SolutionStackName', :string
             tag 'TemplateName', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/create_environment.rb b/lib/fog/aws/parsers/beanstalk/create_environment.rb
index a2dd2f4..3ff53f7 100644
--- a/lib/fog/aws/parsers/beanstalk/create_environment.rb
+++ b/lib/fog/aws/parsers/beanstalk/create_environment.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class CreateEnvironment < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("CreateEnvironmentResult")
             tag 'ApplicationName', :string
@@ -29,7 +27,6 @@ module Fog
             tag 'TemplateName', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/create_storage_location.rb b/lib/fog/aws/parsers/beanstalk/create_storage_location.rb
index 47475cf..9530a88 100644
--- a/lib/fog/aws/parsers/beanstalk/create_storage_location.rb
+++ b/lib/fog/aws/parsers/beanstalk/create_storage_location.rb
@@ -2,15 +2,12 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class CreateStorageLocation < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("CreateStorageLocationResult")
             tag 'S3Bucket', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb b/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb
index 0f6ae5c..6da6f5b 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeApplicationVersions < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeApplicationVersionsResult")
             tag 'ApplicationVersions', :object, :list
@@ -18,7 +16,6 @@ module Fog
             tag 'S3Key', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_applications.rb b/lib/fog/aws/parsers/beanstalk/describe_applications.rb
index c6849f3..55a6efb 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_applications.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_applications.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeApplications < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeApplicationsResult")
             tag 'Applications', :object, :list
@@ -16,7 +14,6 @@ module Fog
             tag 'DateCreated', :datetime
             tag 'DateUpdated', :datetime
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb b/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb
index 2c71153..5400a09 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeConfigurationOptions < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeConfigurationOptionsResult")
             tag 'SolutionStackName', :string
@@ -24,7 +22,6 @@ module Fog
             tag 'ValueOptions', :string, :list
             tag 'ValueType', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb b/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb
index ff38b62..78fc145 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeConfigurationSettings < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeConfigurationSettingsResult")
             tag 'ConfigurationSettings', :object, :list
@@ -22,7 +20,6 @@ module Fog
             tag 'SolutionStackName', :string
             tag 'TemplateName', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb b/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb
index 92a5ddf..e3b1bec 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeEnvironmentResources < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeEnvironmentResourcesResult")
             tag 'EnvironmentResources', :object
@@ -29,7 +27,6 @@ module Fog
             tag 'VersionLabel', :string
             tag 'Triggers', :object, :list
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_environments.rb b/lib/fog/aws/parsers/beanstalk/describe_environments.rb
index 168e984..f690825 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_environments.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_environments.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeEnvironments < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeEnvironmentsResult")
             tag 'Environments', :object, :list
@@ -30,7 +28,6 @@ module Fog
             tag 'TemplateName', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/describe_events.rb b/lib/fog/aws/parsers/beanstalk/describe_events.rb
index 8055a43..6c60d4f 100644
--- a/lib/fog/aws/parsers/beanstalk/describe_events.rb
+++ b/lib/fog/aws/parsers/beanstalk/describe_events.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class DescribeEvents < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("DescribeEventsResult")
             tag 'Events', :object, :list
@@ -19,7 +17,6 @@ module Fog
             tag 'VersionLabel', :string
             tag 'NextToken', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/empty.rb b/lib/fog/aws/parsers/beanstalk/empty.rb
index 19cd7ac..614a8e4 100644
--- a/lib/fog/aws/parsers/beanstalk/empty.rb
+++ b/lib/fog/aws/parsers/beanstalk/empty.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         class Empty < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -15,13 +13,8 @@ module Fog
                 @response['ResponseMetadata'][name] = value
             end
           end
-
-
         end
       end
     end
   end
 end
-
-
-
diff --git a/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb b/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb
index 1faa510..1b45341 100644
--- a/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb
+++ b/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class ListAvailableSolutionStacks < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("ListAvailableSolutionStacksResult")
             tag 'SolutionStackDetails', :object, :list
@@ -13,7 +11,6 @@ module Fog
             tag 'SolutionStackName', :string
             tag 'SolutionStacks', :string, :list
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/parser.rb b/lib/fog/aws/parsers/beanstalk/parser.rb
index 60a2142..aac9e26 100644
--- a/lib/fog/aws/parsers/beanstalk/parser.rb
+++ b/lib/fog/aws/parsers/beanstalk/parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         class BaseParser < Fog::Parsers::Base
-
           def initialize(result_name)
             @result_name = result_name # Set before super, since super calls reset
             super()
@@ -18,7 +16,6 @@ module Fog
             @parse_stack = [ { :type => :object, :value => @response[@result_name]} ]
           end
 
-
           def tag name, *traits
             if traits.delete(:list)
               @list_tags[name] = true
@@ -29,7 +26,6 @@ module Fog
             else
               raise "Too many traits specified, only specify :list or a type"
             end
-
           end
 
           def start_element(name, attrs = [])
@@ -38,7 +34,7 @@ module Fog
               if @parse_stack.last[:type] == :object
                 @parse_stack.last[:value] << {} # Push any empty object
               end
-            elsif @list_tags.has_key?(name)
+            elsif @list_tags.key?(name)
               set_value(name, [], :array) # Set an empty array
               @parse_stack.push({ :type => @tags[name], :value => get_parent[name] })
             elsif @tags[name] == :object
@@ -56,13 +52,12 @@ module Fog
               when 'RequestId'
                 @response['ResponseMetadata'][name] = value
               else
-                if @list_tags.has_key?(name) || @tags[name] == :object
+                if @list_tags.key?(name) || @tags[name] == :object
                   @parse_stack.pop()
-                elsif @tags.has_key?(name)
+                elsif @tags.key?(name)
                   set_value(name, value, @tags[name])
                 end
             end
-
           end
 
           def get_parent
@@ -82,12 +77,8 @@ module Fog
                 get_parent[name] = value
             end
           end
-
         end
       end
     end
   end
 end
-
-
-
diff --git a/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb b/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb
index 7dadf20..0a28683 100644
--- a/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb
+++ b/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class RetrieveEnvironmentInfo < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("RetrieveEnvironmentInfoResult")
             tag 'EnvironmentInfo', :object, :list
@@ -14,7 +12,6 @@ module Fog
             tag 'Message', :string
             tag 'SampleTimestamp', :datetime
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/terminate_environment.rb b/lib/fog/aws/parsers/beanstalk/terminate_environment.rb
index 73efc09..cf0be2b 100644
--- a/lib/fog/aws/parsers/beanstalk/terminate_environment.rb
+++ b/lib/fog/aws/parsers/beanstalk/terminate_environment.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class TerminateEnvironment < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("TerminateEnvironmentResult")
             tag 'ApplicationName', :string
@@ -29,7 +27,6 @@ module Fog
             tag 'TemplateName', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/update_application.rb b/lib/fog/aws/parsers/beanstalk/update_application.rb
index 98e1055..bc63aa5 100644
--- a/lib/fog/aws/parsers/beanstalk/update_application.rb
+++ b/lib/fog/aws/parsers/beanstalk/update_application.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class UpdateApplication < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("UpdateApplicationResult")
             tag 'Application', :object
@@ -16,7 +14,6 @@ module Fog
             tag 'DateCreated', :datetime
             tag 'DateUpdated', :datetime
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/update_application_version.rb b/lib/fog/aws/parsers/beanstalk/update_application_version.rb
index 16843ea..212cca4 100644
--- a/lib/fog/aws/parsers/beanstalk/update_application_version.rb
+++ b/lib/fog/aws/parsers/beanstalk/update_application_version.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class UpdateApplicationVersion < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("UpdateApplicationVersionResult")
             tag 'ApplicationVersion', :object
@@ -18,7 +16,6 @@ module Fog
             tag 'S3Key', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb b/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb
index fa97f73..a0bad2b 100644
--- a/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb
+++ b/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class UpdateConfigurationTemplate < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("UpdateConfigurationTemplateResult")
             tag 'ApplicationName', :string
@@ -21,7 +19,6 @@ module Fog
             tag 'SolutionStackName', :string
             tag 'TemplateName', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/update_environment.rb b/lib/fog/aws/parsers/beanstalk/update_environment.rb
index a81bb61..df6259b 100644
--- a/lib/fog/aws/parsers/beanstalk/update_environment.rb
+++ b/lib/fog/aws/parsers/beanstalk/update_environment.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class UpdateEnvironment < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("UpdateEnvironmentResult")
             tag 'ApplicationName', :string
@@ -29,7 +27,6 @@ module Fog
             tag 'TemplateName', :string
             tag 'VersionLabel', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb b/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb
index d11d191..a279eac 100644
--- a/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb
+++ b/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module ElasticBeanstalk
-
         require 'fog/aws/parsers/beanstalk/parser'
         class ValidateConfigurationSettings < Fog::Parsers::AWS::ElasticBeanstalk::BaseParser
-
           def initialize
             super("ValidateConfigurationSettingsResult")
             tag 'Messages', :object, :list
@@ -14,7 +12,6 @@ module Fog
             tag 'OptionName', :string
             tag 'Severity', :string
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cdn/distribution.rb b/lib/fog/aws/parsers/cdn/distribution.rb
index c733d86..e9caa98 100644
--- a/lib/fog/aws/parsers/cdn/distribution.rb
+++ b/lib/fog/aws/parsers/cdn/distribution.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module CDN
       module AWS
-
         class Distribution < Fog::Parsers::Base
-
           def reset
             @response = { 'DistributionConfig' => { 'CNAME' => [], 'Logging' => {}, 'TrustedSigners' => [] } }
           end
@@ -50,9 +48,7 @@ module Fog
               @response['DistributionConfig']['TrustedSigners'] << 'Self'
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cdn/get_distribution_list.rb b/lib/fog/aws/parsers/cdn/get_distribution_list.rb
index c98c0c0..fdd3df6 100644
--- a/lib/fog/aws/parsers/cdn/get_distribution_list.rb
+++ b/lib/fog/aws/parsers/cdn/get_distribution_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module CDN
       module AWS
-
         class GetDistributionList < Fog::Parsers::Base
-
           def reset
             @distribution_summary = { 'CNAME' => [], 'TrustedSigners' => [] }
             @response = { 'DistributionSummary' => [] }
@@ -52,9 +50,7 @@ module Fog
               @response[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cdn/get_invalidation.rb b/lib/fog/aws/parsers/cdn/get_invalidation.rb
index 1ac738f..54d4181 100644
--- a/lib/fog/aws/parsers/cdn/get_invalidation.rb
+++ b/lib/fog/aws/parsers/cdn/get_invalidation.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module CDN
       module AWS
-
         class GetInvalidation < Fog::Parsers::Base
-
           def reset
             @response = { 'InvalidationBatch' => { 'Path' => [] } }
           end
@@ -23,9 +21,7 @@ module Fog
               @response['InvalidationBatch'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cdn/get_invalidation_list.rb b/lib/fog/aws/parsers/cdn/get_invalidation_list.rb
index 3706211..44e425e 100644
--- a/lib/fog/aws/parsers/cdn/get_invalidation_list.rb
+++ b/lib/fog/aws/parsers/cdn/get_invalidation_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module CDN
       module AWS
-
         class GetInvalidationList < Fog::Parsers::Base
-
           def reset
             @invalidation_summary = { }
             @response = { 'InvalidationSummary' => [] }
@@ -33,9 +31,7 @@ module Fog
               @response[name] = @value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cdn/get_streaming_distribution_list.rb b/lib/fog/aws/parsers/cdn/get_streaming_distribution_list.rb
index 5a3537d..6b51c1b 100644
--- a/lib/fog/aws/parsers/cdn/get_streaming_distribution_list.rb
+++ b/lib/fog/aws/parsers/cdn/get_streaming_distribution_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module CDN
       module AWS
-
         class GetStreamingDistributionList < Fog::Parsers::Base
-
           def reset
             @distribution_summary = { 'CNAME' => [], 'TrustedSigners' => [] }
             @response = { 'StreamingDistributionSummary' => [] }
@@ -50,9 +48,7 @@ module Fog
               @response[name] = @value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cdn/post_invalidation.rb b/lib/fog/aws/parsers/cdn/post_invalidation.rb
index 567daba..1ad0efe 100644
--- a/lib/fog/aws/parsers/cdn/post_invalidation.rb
+++ b/lib/fog/aws/parsers/cdn/post_invalidation.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module CDN
       module AWS
-
         class PostInvalidation < Fog::Parsers::Base
-
           def reset
             @response = { 'InvalidationBatch' => { 'Path' => [] } }
           end
@@ -19,9 +17,7 @@ module Fog
               @response['InvalidationBatch'][name] << value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cdn/streaming_distribution.rb b/lib/fog/aws/parsers/cdn/streaming_distribution.rb
index fb6cd5b..709d5a6 100644
--- a/lib/fog/aws/parsers/cdn/streaming_distribution.rb
+++ b/lib/fog/aws/parsers/cdn/streaming_distribution.rb
@@ -2,9 +2,8 @@ module Fog
   module Parsers
       module CDN
         module AWS
-        
-        class StreamingDistribution < Fog::Parsers::Base
 
+        class StreamingDistribution < Fog::Parsers::Base
           def reset
             @response = { 'StreamingDistributionConfig' => { 'CNAME' => [], 'Logging' => {}, 'TrustedSigners' => [] } }
           end
@@ -50,9 +49,7 @@ module Fog
               @response['StreamingDistributionConfig']['TrustedSigners'] << 'Self'
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cloud_formation/basic.rb b/lib/fog/aws/parsers/cloud_formation/basic.rb
index b73b5d4..92761e5 100644
--- a/lib/fog/aws/parsers/cloud_formation/basic.rb
+++ b/lib/fog/aws/parsers/cloud_formation/basic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class Basic < Fog::Parsers::Base
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/create_stack.rb b/lib/fog/aws/parsers/cloud_formation/create_stack.rb
index 0023214..9535938 100644
--- a/lib/fog/aws/parsers/cloud_formation/create_stack.rb
+++ b/lib/fog/aws/parsers/cloud_formation/create_stack.rb
@@ -2,16 +2,13 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class CreateStack < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'RequestId', 'StackId'
               @response[name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb b/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb
index 0348f6f..018f47d 100644
--- a/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb
+++ b/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class DescribeStackEvents < Fog::Parsers::Base
-
           def reset
             @event = {}
             @response = { 'StackEvents' => [] }
@@ -23,7 +21,6 @@ module Fog
               @event[name] = Time.parse(value)
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb b/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb
index 8b91366..b8a697e 100644
--- a/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb
+++ b/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class DescribeStackResources < Fog::Parsers::Base
-
           def reset
             @resource = {}
             @response = { 'StackResources' => [] }
@@ -23,7 +21,6 @@ module Fog
               @resource[name] = Time.parse(value)
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb b/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb
index 0e79890..fe25cf5 100644
--- a/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb
+++ b/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class DescribeStacks < Fog::Parsers::Base
-
           def reset
             @stack = { 'Outputs' => [], 'Parameters' => [], 'Capabilities' => [] }
             @output = {}
@@ -21,7 +19,7 @@ module Fog
               @in_parameters = true
             when 'Capabilities'
               @in_capabilities = true
-            end            
+            end
           end
 
           def end_element(name)
@@ -46,12 +44,12 @@ module Fog
                 @in_parameters = false
               end
             elsif @in_capabilities
-              case name             
+              case name
               when 'member'
-                @stack['Capabilities'] << value        
+                @stack['Capabilities'] << value
               when 'Capabilities'
                 @in_capabilities = false
-              end  
+              end
             else
               case name
               when 'member'
@@ -73,7 +71,6 @@ module Fog
               end
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/get_template.rb b/lib/fog/aws/parsers/cloud_formation/get_template.rb
index 55830ed..80acd6e 100644
--- a/lib/fog/aws/parsers/cloud_formation/get_template.rb
+++ b/lib/fog/aws/parsers/cloud_formation/get_template.rb
@@ -2,16 +2,13 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class GetTemplate < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'RequestId', 'TemplateBody'
               @response[name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/list_stack_resources.rb b/lib/fog/aws/parsers/cloud_formation/list_stack_resources.rb
index 4f72c73..a1d5080 100644
--- a/lib/fog/aws/parsers/cloud_formation/list_stack_resources.rb
+++ b/lib/fog/aws/parsers/cloud_formation/list_stack_resources.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class ListStackResources < Fog::Parsers::Base
-
           def reset
             @resource = {}
             @response = { 'StackResourceSummaries' => [] }
diff --git a/lib/fog/aws/parsers/cloud_formation/list_stacks.rb b/lib/fog/aws/parsers/cloud_formation/list_stacks.rb
index 5e41b4c..47ec995 100644
--- a/lib/fog/aws/parsers/cloud_formation/list_stacks.rb
+++ b/lib/fog/aws/parsers/cloud_formation/list_stacks.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class ListStacks < Fog::Parsers::Base
-
           def reset
             @stack = {}
             @response = { 'StackSummaries' => [] }
diff --git a/lib/fog/aws/parsers/cloud_formation/update_stack.rb b/lib/fog/aws/parsers/cloud_formation/update_stack.rb
index 3e3f528..0e3c311 100644
--- a/lib/fog/aws/parsers/cloud_formation/update_stack.rb
+++ b/lib/fog/aws/parsers/cloud_formation/update_stack.rb
@@ -2,16 +2,13 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class UpdateStack < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'RequestId', 'StackId'
               @response[name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_formation/validate_template.rb b/lib/fog/aws/parsers/cloud_formation/validate_template.rb
index 0db4722..fa16430 100644
--- a/lib/fog/aws/parsers/cloud_formation/validate_template.rb
+++ b/lib/fog/aws/parsers/cloud_formation/validate_template.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudFormation
-
         class ValidateTemplate < Fog::Parsers::Base
-
           def reset
             @parameter = {}
             @response = { 'Parameters' => [] }
@@ -44,7 +42,6 @@ module Fog
               @in_parameters = false
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb b/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb
index 8a0999b..ba76119 100644
--- a/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb
+++ b/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class DeleteAlarms < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
diff --git a/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb b/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb
index 35aa113..6d0329c 100644
--- a/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb
+++ b/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class DescribeAlarmHistory < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeAlarmHistoryResult' => {'AlarmHistoryItems' => []}, 'ResponseMetadata' => {} }
             reset_alarm_history_item
@@ -23,7 +21,7 @@ module Fog
             when 'AlarmName', 'HistoryItemType', 'HistorySummary'
               @alarm_history_item[name] = value
             when 'Timestamp'
-              @alarm_history_item[name] = Time.parse value 
+              @alarm_history_item[name] = Time.parse value
             when 'RequestId'
               @response['ResponseMetadata'][name] = value
             when 'NextToken'
diff --git a/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb b/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb
index 99ad477..ecf7096 100644
--- a/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb
+++ b/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class DescribeAlarms < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeAlarmsResult' => {'MetricAlarms' => []}, 'ResponseMetadata' => {} }
             reset_metric_alarms
@@ -20,7 +18,7 @@ module Fog
 
           def start_element(name, attrs = [])
             super
-            case name  
+            case name
             when 'Dimensions'
               @in_dimensions = true
             when 'member'
@@ -55,7 +53,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             when 'member'
               if !@in_dimensions
-                if @metric_alarms.has_key?('AlarmName')
+                if @metric_alarms.key?('AlarmName')
                   @response['DescribeAlarmsResult']['MetricAlarms']  << @metric_alarms
                   reset_metric_alarms
                 elsif @response['DescribeAlarmsResult']['MetricAlarms'].last != nil
diff --git a/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb b/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb
index a8358c4..457d910 100644
--- a/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb
+++ b/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class DescribeAlarmsForMetric < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeAlarmsForMetricResult' => {'MetricAlarms' => []}, 'ResponseMetadata' => {} }
             reset_metric_alarms
@@ -20,7 +18,7 @@ module Fog
 
           def start_element(name, attrs = [])
             super
-            case name  
+            case name
             when 'Dimensions'
               @in_dimensions = true
             when 'member'
@@ -46,14 +44,14 @@ module Fog
             when 'StateUpdatedTimestamp', 'AlarmConfigurationUpdatedTimestamp'
               @metric_alarms[name] = Time.parse value
             when 'Dimensions'
-              @in_dimensions = false  
+              @in_dimensions = false
             when 'NextToken'
               @response['ResponseMetadata'][name] = value
             when 'RequestId'
               @response['ResponseMetadata'][name] = value
             when 'member'
               if !@in_dimensions
-                if @metric_alarms.has_key?('AlarmName')
+                if @metric_alarms.key?('AlarmName')
                   @response['DescribeAlarmsForMetricResult']['MetricAlarms']  << @metric_alarms
                   reset_metric_alarms
                 elsif @response['DescribeAlarmsForMetricResult']['MetricAlarms'].last != nil
diff --git a/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb b/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb
index 7700e06..d7c2d91 100644
--- a/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb
+++ b/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class DisableAlarmActions < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -19,7 +17,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-        end       
+        end
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb b/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb
index f14dc36..a9049f1 100644
--- a/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb
+++ b/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class EnableAlarmActions < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -19,7 +17,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-        end       
+        end
       end
     end
   end
diff --git a/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb b/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb
index 167303d..c9a4408 100644
--- a/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb
+++ b/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class GetMetricStatistics < Fog::Parsers::Base
-
           def reset
             @response = { 'GetMetricStatisticsResult' => {'Datapoints' => []}, 'ResponseMetadata' => {} }
             reset_datapoint
@@ -40,4 +38,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/cloud_watch/list_metrics.rb b/lib/fog/aws/parsers/cloud_watch/list_metrics.rb
index 0a6167b..fd701e5 100644
--- a/lib/fog/aws/parsers/cloud_watch/list_metrics.rb
+++ b/lib/fog/aws/parsers/cloud_watch/list_metrics.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class ListMetrics < Fog::Parsers::Base
-
           def reset
             @response = { 'ListMetricsResult' => {'Metrics' => []}, 'ResponseMetadata' => {} }
             reset_metric
diff --git a/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb b/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb
index f5c3d2c..075b5aa 100644
--- a/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb
+++ b/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class PutMetricAlarm < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
diff --git a/lib/fog/aws/parsers/cloud_watch/put_metric_data.rb b/lib/fog/aws/parsers/cloud_watch/put_metric_data.rb
index b8b7b0d..97707dd 100644
--- a/lib/fog/aws/parsers/cloud_watch/put_metric_data.rb
+++ b/lib/fog/aws/parsers/cloud_watch/put_metric_data.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class PutMetricData < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
diff --git a/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb b/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb
index 3b35643..ca308ec 100644
--- a/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb
+++ b/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module CloudWatch
-
         class SetAlarmState < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -19,7 +17,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-        end       
+        end
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/allocate_address.rb b/lib/fog/aws/parsers/compute/allocate_address.rb
index af690d6..0216f18 100644
--- a/lib/fog/aws/parsers/compute/allocate_address.rb
+++ b/lib/fog/aws/parsers/compute/allocate_address.rb
@@ -2,16 +2,13 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class AllocateAddress < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'publicIp', 'requestId', 'domain', 'allocationId'
               @response[name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb b/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb
index 714b29b..122f8dd 100644
--- a/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb
+++ b/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class AssignPrivateIpAddresses < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'requestId'
@@ -17,7 +15,6 @@ module Fog
               end
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/compute/associate_address.rb b/lib/fog/aws/parsers/compute/associate_address.rb
index 5a21eb1..236a281 100644
--- a/lib/fog/aws/parsers/compute/associate_address.rb
+++ b/lib/fog/aws/parsers/compute/associate_address.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class AssociateAddress < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'requestId', 'associationId'
@@ -17,7 +15,6 @@ module Fog
               end
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/compute/associate_route_table.rb b/lib/fog/aws/parsers/compute/associate_route_table.rb
index 1e559d6..5a2143f 100755
--- a/lib/fog/aws/parsers/compute/associate_route_table.rb
+++ b/lib/fog/aws/parsers/compute/associate_route_table.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class AssociateRouteTable < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'requestId', 'associationId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/attach_network_interface.rb b/lib/fog/aws/parsers/compute/attach_network_interface.rb
index 11cfce0..8dee1f7 100644
--- a/lib/fog/aws/parsers/compute/attach_network_interface.rb
+++ b/lib/fog/aws/parsers/compute/attach_network_interface.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class AttachNetworkInterface < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'requestId', 'attachmentId'
diff --git a/lib/fog/aws/parsers/compute/attach_volume.rb b/lib/fog/aws/parsers/compute/attach_volume.rb
index f6a1186..dcb5d69 100644
--- a/lib/fog/aws/parsers/compute/attach_volume.rb
+++ b/lib/fog/aws/parsers/compute/attach_volume.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class AttachVolume < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'attachTime'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/basic.rb b/lib/fog/aws/parsers/compute/basic.rb
index 0201a82..d8e638e 100644
--- a/lib/fog/aws/parsers/compute/basic.rb
+++ b/lib/fog/aws/parsers/compute/basic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class Basic < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'requestId'
@@ -17,7 +15,6 @@ module Fog
               end
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/compute/cancel_spot_instance_requests.rb b/lib/fog/aws/parsers/compute/cancel_spot_instance_requests.rb
index 2e50181..f03e730 100644
--- a/lib/fog/aws/parsers/compute/cancel_spot_instance_requests.rb
+++ b/lib/fog/aws/parsers/compute/cancel_spot_instance_requests.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CancelSpotInstanceRequests < Fog::Parsers::Base
-
           def reset
             @spot_instance_request = {}
             @response = { 'spotInstanceRequestSet' => [] }
@@ -21,9 +19,7 @@ module Fog
               @spot_instance_request[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/copy_image.rb b/lib/fog/aws/parsers/compute/copy_image.rb
index 1d854e8..96e21ea 100644
--- a/lib/fog/aws/parsers/compute/copy_image.rb
+++ b/lib/fog/aws/parsers/compute/copy_image.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CopyImage < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'imageId'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/copy_snapshot.rb b/lib/fog/aws/parsers/compute/copy_snapshot.rb
index 25f1d40..f57be2d 100644
--- a/lib/fog/aws/parsers/compute/copy_snapshot.rb
+++ b/lib/fog/aws/parsers/compute/copy_snapshot.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CopySnapshot < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'snapshotId'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/create_dhcp_options.rb b/lib/fog/aws/parsers/compute/create_dhcp_options.rb
index b4e0df1..4dadd93 100644
--- a/lib/fog/aws/parsers/compute/create_dhcp_options.rb
+++ b/lib/fog/aws/parsers/compute/create_dhcp_options.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateDhcpOptions < Fog::Parsers::Base
-
           def reset
             @dhcp_options = { 'dhcpConfigurationSet' => {}, 'tagSet' => {} }
             @response = { 'dhcpOptionsSet' => [] }
@@ -40,14 +38,14 @@ module Fog
               case name
                 when 'item'
                   unless @in_value_set
-                    @dhcp_options['dhcpConfigurationSet'][@dhcp_configuration['key']] = @value_set 
+                    @dhcp_options['dhcpConfigurationSet'][@dhcp_configuration['key']] = @value_set
                     @value_set=[]
                   @dhcp_configuration = {}
                   end
                 when 'key', 'value'
                   if !@in_value_set
-                    @dhcp_configuration[name] = value 
-                  else 
+                    @dhcp_configuration[name] = value
+                  else
  			@value_set << value
                   end
                 when 'valueSet'
diff --git a/lib/fog/aws/parsers/compute/create_image.rb b/lib/fog/aws/parsers/compute/create_image.rb
index 3629854..880f1bc 100644
--- a/lib/fog/aws/parsers/compute/create_image.rb
+++ b/lib/fog/aws/parsers/compute/create_image.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateImage < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'instanceId', 'requestId', 'name', 'description', 'noReboot', 'imageId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/create_internet_gateway.rb b/lib/fog/aws/parsers/compute/create_internet_gateway.rb
index 452b5c6..856264a 100644
--- a/lib/fog/aws/parsers/compute/create_internet_gateway.rb
+++ b/lib/fog/aws/parsers/compute/create_internet_gateway.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateInternetGateway < Fog::Parsers::Base
-
           def reset
             @internet_gateway = { 'attachmentSet' => {}, 'tagSet' => {} }
             @response = { 'internetGatewaySet' => [] }
@@ -61,5 +59,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/compute/create_key_pair.rb b/lib/fog/aws/parsers/compute/create_key_pair.rb
index 475392c..678e375 100644
--- a/lib/fog/aws/parsers/compute/create_key_pair.rb
+++ b/lib/fog/aws/parsers/compute/create_key_pair.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateKeyPair < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'keyFingerprint', 'keyMaterial', 'keyName', 'requestId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/create_route_table.rb b/lib/fog/aws/parsers/compute/create_route_table.rb
index 2d33872..19e42ba 100755
--- a/lib/fog/aws/parsers/compute/create_route_table.rb
+++ b/lib/fog/aws/parsers/compute/create_route_table.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateRouteTable < Fog::Parsers::Base
-
           def reset
             @in_route_set = false
             @in_association_set = false
@@ -71,5 +69,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/compute/create_security_group.rb b/lib/fog/aws/parsers/compute/create_security_group.rb
index 22f8873..c64dd8d 100644
--- a/lib/fog/aws/parsers/compute/create_security_group.rb
+++ b/lib/fog/aws/parsers/compute/create_security_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateSecurityGroup < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'return'
diff --git a/lib/fog/aws/parsers/compute/create_snapshot.rb b/lib/fog/aws/parsers/compute/create_snapshot.rb
index bd4af11..4535b23 100644
--- a/lib/fog/aws/parsers/compute/create_snapshot.rb
+++ b/lib/fog/aws/parsers/compute/create_snapshot.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateSnapshot < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'description', 'ownerId', 'progress', 'snapshotId', 'status', 'volumeId'
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/create_subnet.rb b/lib/fog/aws/parsers/compute/create_subnet.rb
index b01dd75..226ba06 100644
--- a/lib/fog/aws/parsers/compute/create_subnet.rb
+++ b/lib/fog/aws/parsers/compute/create_subnet.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateSubnet < Fog::Parsers::Base
-
           def reset
             @subnet = { 'tagSet' => {} }
             @response = { 'subnet' => [] }
@@ -46,5 +44,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/compute/create_volume.rb b/lib/fog/aws/parsers/compute/create_volume.rb
index bb4e40d..f1d8aea 100644
--- a/lib/fog/aws/parsers/compute/create_volume.rb
+++ b/lib/fog/aws/parsers/compute/create_volume.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateVolume < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'availabilityZone', 'requestId', 'snapshotId', 'status', 'volumeId', 'volumeType'
@@ -13,11 +11,11 @@ module Fog
               @response[name] = Time.parse(value)
             when 'size', 'iops'
               @response[name] = value.to_i
+            when 'encrypted'
+              @response[name] = (value == 'true')
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/create_vpc.rb b/lib/fog/aws/parsers/compute/create_vpc.rb
index 20e6641..e20e5a3 100644
--- a/lib/fog/aws/parsers/compute/create_vpc.rb
+++ b/lib/fog/aws/parsers/compute/create_vpc.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class CreateVpc < Fog::Parsers::Base
-
           def reset
             @vpc = { 'tagSet' => {} }
             @response = { 'vpcSet' => [] }
@@ -47,5 +45,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/compute/deregister_image.rb b/lib/fog/aws/parsers/compute/deregister_image.rb
index 8ed6cc1..176f3eb 100644
--- a/lib/fog/aws/parsers/compute/deregister_image.rb
+++ b/lib/fog/aws/parsers/compute/deregister_image.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DeregisterImage < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'return', 'requestId', 'imageId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_account_attributes.rb b/lib/fog/aws/parsers/compute/describe_account_attributes.rb
index 119f6a8..29ca5ec 100644
--- a/lib/fog/aws/parsers/compute/describe_account_attributes.rb
+++ b/lib/fog/aws/parsers/compute/describe_account_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeAccountAttributes < Fog::Parsers::Base
           def reset
             @attribute = { 'values' => []}
diff --git a/lib/fog/aws/parsers/compute/describe_addresses.rb b/lib/fog/aws/parsers/compute/describe_addresses.rb
index 686ec41..9b9515e 100644
--- a/lib/fog/aws/parsers/compute/describe_addresses.rb
+++ b/lib/fog/aws/parsers/compute/describe_addresses.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeAddresses < Fog::Parsers::Base
-
           def reset
             @address = {}
             @response = { 'addressesSet' => [] }
@@ -21,9 +19,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_availability_zones.rb b/lib/fog/aws/parsers/compute/describe_availability_zones.rb
index e856124..16484e8 100644
--- a/lib/fog/aws/parsers/compute/describe_availability_zones.rb
+++ b/lib/fog/aws/parsers/compute/describe_availability_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeAvailabilityZones < Fog::Parsers::Base
           def start_element(name, attrs = [])
             case name
@@ -34,9 +33,7 @@ module Fog
               @in_message_set = false
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_dhcp_options.rb b/lib/fog/aws/parsers/compute/describe_dhcp_options.rb
index ee20002..061c04f 100644
--- a/lib/fog/aws/parsers/compute/describe_dhcp_options.rb
+++ b/lib/fog/aws/parsers/compute/describe_dhcp_options.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeDhcpOptions < Fog::Parsers::Base
-
           def reset
             @dhcp_options = { 'dhcpConfigurationSet' => {}, 'tagSet' => {} }
             @response = { 'dhcpOptionsSet' => [] }
@@ -40,14 +38,14 @@ module Fog
               case name
                 when 'item'
                   unless @in_value_set
-                    @dhcp_options['dhcpConfigurationSet'][@dhcp_configuration['key']] = @value_set 
+                    @dhcp_options['dhcpConfigurationSet'][@dhcp_configuration['key']] = @value_set
                     @value_set=[]
                   @dhcp_configuration = {}
                   end
                 when 'key', 'value'
                   if !@in_value_set
-                    @dhcp_configuration[name] = value 
-                  else 
+                    @dhcp_configuration[name] = value
+                  else
  			@value_set << value
                   end
                 when 'valueSet'
diff --git a/lib/fog/aws/parsers/compute/describe_images.rb b/lib/fog/aws/parsers/compute/describe_images.rb
index d17c9df..bcd9fd8 100644
--- a/lib/fog/aws/parsers/compute/describe_images.rb
+++ b/lib/fog/aws/parsers/compute/describe_images.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeImages < Fog::Parsers::Base
-
           def reset
             @block_device_mapping = {}
             @image = { 'blockDeviceMapping' => [], 'productCodes' => [], 'stateReason' => {}, 'tagSet' => {} }
diff --git a/lib/fog/aws/parsers/compute/describe_instance_status.rb b/lib/fog/aws/parsers/compute/describe_instance_status.rb
index f5606f5..502d6a1 100644
--- a/lib/fog/aws/parsers/compute/describe_instance_status.rb
+++ b/lib/fog/aws/parsers/compute/describe_instance_status.rb
@@ -3,7 +3,6 @@ module Fog
     module Compute
       module AWS
         class DescribeInstanceStatus < Fog::Parsers::Base
-
           def new_instance!
             @instance = { 'instanceState' => {}, 'systemStatus' => { 'details' => [] }, 'instanceStatus' => { 'details' => [] }, 'eventsSet' => [] }
           end
diff --git a/lib/fog/aws/parsers/compute/describe_instances.rb b/lib/fog/aws/parsers/compute/describe_instances.rb
index a1fb88d..c9f1b12 100644
--- a/lib/fog/aws/parsers/compute/describe_instances.rb
+++ b/lib/fog/aws/parsers/compute/describe_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeInstances < Fog::Parsers::Base
-
           def reset
             @block_device_mapping = {}
             @network_interface = {}
@@ -34,7 +32,7 @@ module Fog
             when 'architecture', 'clientToken', 'dnsName', 'hypervisor', 'imageId',
                   'instanceId', 'instanceType', 'ipAddress', 'kernelId', 'keyName',
                   'instanceLifecycle', 'platform', 'privateDnsName', 'privateIpAddress', 'ramdiskId',
-                  'reason', 'requesterId', 'rootDeviceType', 
+                  'reason', 'requesterId', 'rootDeviceName', 'rootDeviceType',
                   'spotInstanceRequestId', 'virtualizationType'
               @instance[name] = value
             when 'attachTime'
@@ -117,9 +115,7 @@ module Fog
               @instance['instanceState']['name'] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_internet_gateways.rb b/lib/fog/aws/parsers/compute/describe_internet_gateways.rb
index 28169c3..093b713 100644
--- a/lib/fog/aws/parsers/compute/describe_internet_gateways.rb
+++ b/lib/fog/aws/parsers/compute/describe_internet_gateways.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeInternetGateways < Fog::Parsers::Base
-
           def reset
             @internet_gateway = { 'attachmentSet' => {}, 'tagSet' => {} }
             @response = { 'internetGatewaySet' => [] }
@@ -49,8 +47,7 @@ module Fog
                 @internet_gateway[name] = value
               when 'item'
                 @response['internetGatewaySet'] << @internet_gateway
-                @internet_gateway = { 'tagSet' => {} }
-                @internet_gateway = { 'attachmentSet' => {} }
+                @internet_gateway = { 'attachmentSet' => {}, 'tagSet' => {} }
               when 'requestId'
                 @response[name] = value
               end
@@ -61,5 +58,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/compute/describe_key_pairs.rb b/lib/fog/aws/parsers/compute/describe_key_pairs.rb
index 01e7583..21be7ab 100644
--- a/lib/fog/aws/parsers/compute/describe_key_pairs.rb
+++ b/lib/fog/aws/parsers/compute/describe_key_pairs.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeKeyPairs < Fog::Parsers::Base
-
           def reset
             @key = {}
             @response = { 'keySet' => [] }
@@ -21,9 +19,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb b/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb
index bbb0116..d42193a 100644
--- a/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb
+++ b/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeNetworkInterfaceAttribute < NetworkInterfaceParser
           def reset
             @response             = { }
@@ -76,4 +75,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/compute/describe_network_interfaces.rb b/lib/fog/aws/parsers/compute/describe_network_interfaces.rb
index 09c519c..28d4db1 100644
--- a/lib/fog/aws/parsers/compute/describe_network_interfaces.rb
+++ b/lib/fog/aws/parsers/compute/describe_network_interfaces.rb
@@ -40,4 +40,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/compute/describe_placement_groups.rb b/lib/fog/aws/parsers/compute/describe_placement_groups.rb
index 8d94f6c..7901081 100644
--- a/lib/fog/aws/parsers/compute/describe_placement_groups.rb
+++ b/lib/fog/aws/parsers/compute/describe_placement_groups.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribePlacementGroups < Fog::Parsers::Base
-
           def reset
             @placement_group = {}
             @response = { 'placementGroupSet' => [] }
@@ -21,9 +19,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_regions.rb b/lib/fog/aws/parsers/compute/describe_regions.rb
index efb0c99..f014726 100644
--- a/lib/fog/aws/parsers/compute/describe_regions.rb
+++ b/lib/fog/aws/parsers/compute/describe_regions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeRegions < Fog::Parsers::Base
-
           def reset
             @region = {}
             @response = { 'regionInfo' => [] }
@@ -21,9 +19,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_reserved_instances.rb b/lib/fog/aws/parsers/compute/describe_reserved_instances.rb
index 26038dd..3546abf 100644
--- a/lib/fog/aws/parsers/compute/describe_reserved_instances.rb
+++ b/lib/fog/aws/parsers/compute/describe_reserved_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeReservedInstances < Fog::Parsers::Base
-
           def get_default_item
             {'tagSet' => {}, 'recurringCharges' => {}}
           end
@@ -52,11 +50,8 @@ module Fog
             when 'start','end'
               @reserved_instance[name] = Time.parse(value)
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb b/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb
index 3cfac71..3f9e6c8 100644
--- a/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb
+++ b/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeReservedInstancesOfferings < Fog::Parsers::Base
-
           def reset
             @reserved_instances_offering = {}
             @response = { 'reservedInstancesOfferingsSet' => [] }
@@ -25,9 +23,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_route_tables.rb b/lib/fog/aws/parsers/compute/describe_route_tables.rb
index c32ee37..924a51f 100755
--- a/lib/fog/aws/parsers/compute/describe_route_tables.rb
+++ b/lib/fog/aws/parsers/compute/describe_route_tables.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeRouteTables < Fog::Parsers::Base
-
           def reset
             @association = { 'routeTableAssociationId' => nil, 'routeTableId' => nil, 'subnetId' => nil, 'main' => false }
             @in_association_set = false
@@ -76,9 +74,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_security_groups.rb b/lib/fog/aws/parsers/compute/describe_security_groups.rb
index 059e396..b253ad5 100644
--- a/lib/fog/aws/parsers/compute/describe_security_groups.rb
+++ b/lib/fog/aws/parsers/compute/describe_security_groups.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeSecurityGroups < Fog::Parsers::Base
-
           def reset
             @group = {}
             @ip_permission = { 'groups' => [], 'ipRanges' => []}
@@ -91,9 +89,7 @@ module Fog
               @group[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_snapshots.rb b/lib/fog/aws/parsers/compute/describe_snapshots.rb
index 9aaabf8..7057d59 100644
--- a/lib/fog/aws/parsers/compute/describe_snapshots.rb
+++ b/lib/fog/aws/parsers/compute/describe_snapshots.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeSnapshots < Fog::Parsers::Base
-
           def reset
             @response = { 'snapshotSet' => [] }
             @snapshot = { 'tagSet' => {} }
@@ -42,12 +40,12 @@ module Fog
                 @snapshot[name] = Time.parse(value)
               when 'volumeSize'
                 @snapshot[name] = value.to_i
+              when 'encrypted'
+                @snapshot[name] = (value == 'true')
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_spot_price_history.rb b/lib/fog/aws/parsers/compute/describe_spot_price_history.rb
index 3cb7af5..53ab50d 100644
--- a/lib/fog/aws/parsers/compute/describe_spot_price_history.rb
+++ b/lib/fog/aws/parsers/compute/describe_spot_price_history.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeSpotPriceHistory < Fog::Parsers::Base
-
           def reset
             @spot_price = {}
             @response = { 'spotPriceHistorySet' => [] }
@@ -25,9 +23,7 @@ module Fog
               @spot_price[name] = Time.parse(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_subnets.rb b/lib/fog/aws/parsers/compute/describe_subnets.rb
index 55057e0..4447aa6 100644
--- a/lib/fog/aws/parsers/compute/describe_subnets.rb
+++ b/lib/fog/aws/parsers/compute/describe_subnets.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeSubnets < Fog::Parsers::Base
-
           def reset
             @subnet = { 'tagSet' => {} }
             @response = { 'subnetSet' => [] }
@@ -34,6 +32,8 @@ module Fog
               case name
               when 'subnetId', 'state', 'vpcId', 'cidrBlock', 'availableIpAddressCount', 'availabilityZone'
                 @subnet[name] = value
+              when 'mapPublicIpOnLaunch'
+                @subnet[name] = value == 'true' ? true : false
               when 'item'
                 @response['subnetSet'] << @subnet
                 @subnet = { 'tagSet' => {} }
diff --git a/lib/fog/aws/parsers/compute/describe_tags.rb b/lib/fog/aws/parsers/compute/describe_tags.rb
index c071076..7859f88 100644
--- a/lib/fog/aws/parsers/compute/describe_tags.rb
+++ b/lib/fog/aws/parsers/compute/describe_tags.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeTags < Fog::Parsers::Base
-
           def reset
             @tag = {}
             @response = { 'tagSet' => [] }
@@ -21,9 +19,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_volumes.rb b/lib/fog/aws/parsers/compute/describe_volumes.rb
index 178be42..266e759 100644
--- a/lib/fog/aws/parsers/compute/describe_volumes.rb
+++ b/lib/fog/aws/parsers/compute/describe_volumes.rb
@@ -59,12 +59,12 @@ module Fog
                 @response[name] = value
               when 'size', 'iops'
                 @volume[name] = value.to_i
+              when 'encrypted'
+                @volume[name] = (value == 'true')
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/describe_vpc_attribute.rb b/lib/fog/aws/parsers/compute/describe_vpc_attribute.rb
new file mode 100644
index 0000000..7834219
--- /dev/null
+++ b/lib/fog/aws/parsers/compute/describe_vpc_attribute.rb
@@ -0,0 +1,48 @@
+module Fog
+  module Parsers
+    module Compute
+      module AWS
+        class DescribeVpcAttribute < Fog::Parsers::Base
+          def reset
+            @response                = { }
+            @in_enable_dns_support   = false
+            @in_enable_dns_hostnames = false
+          end
+
+          def start_element(name, attrs = [])
+            super
+            case name
+            when 'enableDnsSupport'
+              @in_enable_dns_support   = true
+            when 'enableDnsHostnames'
+              @in_enable_dns_hostnames = true
+            end
+          end
+
+          def end_element(name)
+            if @in_enable_dns_support
+              case name
+              when 'value'
+                @response['enableDnsSupport'] = (value == 'true')
+              when 'enableDnsSupport'
+                @in_enable_dns_support = false
+              end
+            elsif @in_enable_dns_hostnames
+              case name
+              when 'value'
+                @response['enableDnsHostnames'] = (value == 'true')
+              when 'enableDnsHostnames'
+                @in_enable_dns_hostnames = false
+              end
+            else
+              case name
+              when 'requestId', 'vpcId'
+                @response[name] = value
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/parsers/compute/describe_vpcs.rb b/lib/fog/aws/parsers/compute/describe_vpcs.rb
index 387f40f..3e5f464 100644
--- a/lib/fog/aws/parsers/compute/describe_vpcs.rb
+++ b/lib/fog/aws/parsers/compute/describe_vpcs.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DescribeVpcs < Fog::Parsers::Base
-
           def reset
             @vpc = { 'tagSet' => {} }
             @response = { 'vpcSet' => [] }
diff --git a/lib/fog/aws/parsers/compute/detach_volume.rb b/lib/fog/aws/parsers/compute/detach_volume.rb
index 920f845..5def462 100644
--- a/lib/fog/aws/parsers/compute/detach_volume.rb
+++ b/lib/fog/aws/parsers/compute/detach_volume.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class DetachVolume < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'attachTime'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/get_console_output.rb b/lib/fog/aws/parsers/compute/get_console_output.rb
index 43a22b7..e7533de 100644
--- a/lib/fog/aws/parsers/compute/get_console_output.rb
+++ b/lib/fog/aws/parsers/compute/get_console_output.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class GetConsoleOutput < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -19,9 +17,7 @@ module Fog
               @response[name] = Time.parse(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/get_password_data.rb b/lib/fog/aws/parsers/compute/get_password_data.rb
index 981c994..688ba5c 100644
--- a/lib/fog/aws/parsers/compute/get_password_data.rb
+++ b/lib/fog/aws/parsers/compute/get_password_data.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class GetPasswordData < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = Time.parse(@value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/import_key_pair.rb b/lib/fog/aws/parsers/compute/import_key_pair.rb
index 2c0d850..9d8a687 100644
--- a/lib/fog/aws/parsers/compute/import_key_pair.rb
+++ b/lib/fog/aws/parsers/compute/import_key_pair.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class ImportKeyPair < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'keyFingerprint', 'keyName', 'requestId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/modify_subnet_attribute.rb b/lib/fog/aws/parsers/compute/modify_subnet_attribute.rb
new file mode 100644
index 0000000..398b160
--- /dev/null
+++ b/lib/fog/aws/parsers/compute/modify_subnet_attribute.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Parsers
+    module Compute
+      module AWS
+        class ModifySubnetAttribute < Fog::Parsers::Base
+          def reset
+            @response = {  }
+          end
+
+
+          def end_element(name)
+            case name
+            when 'return'
+              @response[name] = value == 'true' ? true : false
+            when 'requestId'
+              @response[name] = value
+            end
+          
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb b/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb
index f6964b2..3065401 100644
--- a/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb
+++ b/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class MonitorUnmonitorInstances < Fog::Parsers::Base
-
           def reset
             @response = {}
             @instance_set = []
@@ -26,9 +24,7 @@ module Fog
               @response['instancesSet'] = @instance_set
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/network_acl_parser.rb b/lib/fog/aws/parsers/compute/network_acl_parser.rb
index fda3ea8..884354c 100644
--- a/lib/fog/aws/parsers/compute/network_acl_parser.rb
+++ b/lib/fog/aws/parsers/compute/network_acl_parser.rb
@@ -2,14 +2,13 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class NetworkAclParser < Fog::Parsers::Base
           def reset_nacl
             @network_acl = { 'associationSet' => [], 'entrySet' => [], 'tagSet' => {} }
             @association = {}
             @entry = { 'icmpTypeCode' => {}, 'portRange' => {} }
             @tag = {}
-            
+
             @in_entry_set       = false
             @in_association_set = false
             @in_tag_set         = false
@@ -97,7 +96,6 @@ module Fog
               end
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/compute/network_interface_parser.rb b/lib/fog/aws/parsers/compute/network_interface_parser.rb
index 96c8950..a1bfeb4 100644
--- a/lib/fog/aws/parsers/compute/network_interface_parser.rb
+++ b/lib/fog/aws/parsers/compute/network_interface_parser.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class NetworkInterfaceParser < Fog::Parsers::Base
-
           def reset_nic
-            @nic = { 'groupSet' => {}, 'attachment' => {}, 'association' => {}, 'tagSet' => {} }
+            @nic = { 'groupSet' => {}, 'attachment' => {}, 'association' => {}, 'tagSet' => {}, 'privateIpAddressesSet' => [] }
             @in_tag_set     = false
             @in_group_set   = false
             @in_attachment  = false
@@ -80,6 +78,11 @@ module Fog
             elsif @in_private_ip_addresses
               case name
               when 'item'
+                if value
+                  @private_ip_address['item'] = value.strip
+                else
+                  @private_ip_address['item'] = value
+                end
                 @private_ip_addresses << @private_ip_address
                 @private_ip_address = {}
               when 'privateIpAddress', 'privateDnsName', 'primary'
diff --git a/lib/fog/aws/parsers/compute/purchase_reserved_instances_offering.rb b/lib/fog/aws/parsers/compute/purchase_reserved_instances_offering.rb
index 09c42a1..7f42ff4 100644
--- a/lib/fog/aws/parsers/compute/purchase_reserved_instances_offering.rb
+++ b/lib/fog/aws/parsers/compute/purchase_reserved_instances_offering.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class PurchaseReservedInstancesOffering < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/register_image.rb b/lib/fog/aws/parsers/compute/register_image.rb
index 1c8eb9a..efdf1ab 100644
--- a/lib/fog/aws/parsers/compute/register_image.rb
+++ b/lib/fog/aws/parsers/compute/register_image.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class RegisterImage < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'requestId', 'imageId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/run_instances.rb b/lib/fog/aws/parsers/compute/run_instances.rb
index 7bce583..5e18805 100644
--- a/lib/fog/aws/parsers/compute/run_instances.rb
+++ b/lib/fog/aws/parsers/compute/run_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class RunInstances < Fog::Parsers::Base
-
           def reset
             @block_device_mapping = {}
             @network_interfaces = {}
@@ -85,9 +83,7 @@ module Fog
               @instance['associatePublicIP'] = (value == 'true')
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/spot_datafeed_subscription.rb b/lib/fog/aws/parsers/compute/spot_datafeed_subscription.rb
index e5154ae..314c6f3 100644
--- a/lib/fog/aws/parsers/compute/spot_datafeed_subscription.rb
+++ b/lib/fog/aws/parsers/compute/spot_datafeed_subscription.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class SpotDatafeedSubscription < Fog::Parsers::Base
-
           def reset
             @response = { 'spotDatafeedSubscription' => {} }
           end
@@ -20,9 +18,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/spot_instance_requests.rb b/lib/fog/aws/parsers/compute/spot_instance_requests.rb
index 53454a0..d8a481b 100644
--- a/lib/fog/aws/parsers/compute/spot_instance_requests.rb
+++ b/lib/fog/aws/parsers/compute/spot_instance_requests.rb
@@ -2,13 +2,11 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class SpotInstanceRequests < Fog::Parsers::Base
-
           def reset
             @block_device_mapping = {}
             @context = []
-            @contexts = ['blockDeviceMapping', 'groupSet', 'iamInstanceProfile']
+            @contexts = ['blockDeviceMapping', 'groupSet', 'iamInstanceProfile', 'networkInterfaceSet']
             @spot_instance_request = { 'launchSpecification' => { 'iamInstanceProfile' => {}, 'blockDeviceMapping' => [], 'groupSet' => [] } }
             @response = { 'spotInstanceRequestSet' => [] }
           end
@@ -36,7 +34,9 @@ module Fog
             when 'deviceName', 'status', 'volumeId'
               @block_device_mapping[name] = value
             when 'groupId'
-              @spot_instance_request['launchSpecification']['groupSet'] << value
+              if !@context.include?('networkInterfaceSet')
+                @spot_instance_request['launchSpecification']['groupSet'] << value
+              end
             when 'arn', 'name'
               @spot_instance_request['launchSpecification']['iamInstanceProfile'][name] = value
             when 'instanceId', 'launchedAvailabilityZone', 'productDescription', 'spotInstanceRequestId', 'state', 'type'
@@ -62,9 +62,7 @@ module Fog
               @spot_instance_request[name] = value.to_f
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/start_stop_instances.rb b/lib/fog/aws/parsers/compute/start_stop_instances.rb
index 1d050c3..70d1a2d 100644
--- a/lib/fog/aws/parsers/compute/start_stop_instances.rb
+++ b/lib/fog/aws/parsers/compute/start_stop_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class StartStopInstances < Fog::Parsers::Base
-
           def reset
             @instance = { 'currentState' => {}, 'previousState' => {} }
             @response = { 'instancesSet' => [] }
@@ -32,9 +30,7 @@ module Fog
               @instance[@state][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/compute/terminate_instances.rb b/lib/fog/aws/parsers/compute/terminate_instances.rb
index d8ce22b..dfdbb52 100644
--- a/lib/fog/aws/parsers/compute/terminate_instances.rb
+++ b/lib/fog/aws/parsers/compute/terminate_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module AWS
-
         class TerminateInstances < Fog::Parsers::Base
-
           def reset
             @instance = { 'previousState' => {}, 'currentState' => {} }
             @response = { 'instancesSet' => [] }
@@ -46,9 +44,7 @@ module Fog
               @in_current_state = false
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/change_resource_record_sets.rb b/lib/fog/aws/parsers/dns/change_resource_record_sets.rb
index c02a862..6f86324 100644
--- a/lib/fog/aws/parsers/dns/change_resource_record_sets.rb
+++ b/lib/fog/aws/parsers/dns/change_resource_record_sets.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class ChangeResourceRecordSets < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/create_health_check.rb b/lib/fog/aws/parsers/dns/create_health_check.rb
new file mode 100644
index 0000000..e69de29
diff --git a/lib/fog/aws/parsers/dns/create_hosted_zone.rb b/lib/fog/aws/parsers/dns/create_hosted_zone.rb
index 290b09c..a835e63 100644
--- a/lib/fog/aws/parsers/dns/create_hosted_zone.rb
+++ b/lib/fog/aws/parsers/dns/create_hosted_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class CreateHostedZone < Fog::Parsers::Base
-
           def reset
             @hosted_zone = {}
             @change_info = {}
@@ -46,9 +44,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/delete_hosted_zone.rb b/lib/fog/aws/parsers/dns/delete_hosted_zone.rb
index 9c65d85..0ed53e9 100644
--- a/lib/fog/aws/parsers/dns/delete_hosted_zone.rb
+++ b/lib/fog/aws/parsers/dns/delete_hosted_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class DeleteHostedZone < Fog::Parsers::Base
-
           def reset
             @response = {}
             @response['ChangeInfo'] = {}
@@ -16,9 +14,7 @@ module Fog
               @response['ChangeInfo'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/get_change.rb b/lib/fog/aws/parsers/dns/get_change.rb
index 7de06f3..3e46d6a 100644
--- a/lib/fog/aws/parsers/dns/get_change.rb
+++ b/lib/fog/aws/parsers/dns/get_change.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class GetChange < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/get_hosted_zone.rb b/lib/fog/aws/parsers/dns/get_hosted_zone.rb
index 1651675..f97f45c 100644
--- a/lib/fog/aws/parsers/dns/get_hosted_zone.rb
+++ b/lib/fog/aws/parsers/dns/get_hosted_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class GetHostedZone < Fog::Parsers::Base
-
           def reset
             @hosted_zone = {}
             @name_servers = []
@@ -36,9 +34,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/health_check.rb b/lib/fog/aws/parsers/dns/health_check.rb
new file mode 100644
index 0000000..3b3ccb4
--- /dev/null
+++ b/lib/fog/aws/parsers/dns/health_check.rb
@@ -0,0 +1,33 @@
+module Fog
+  module Parsers
+    module DNS
+      module AWS
+        class HealthCheck < Fog::Parsers::Base
+          def reset
+            @health_check = {}
+            @health_check_config = {}
+            @response = {}
+          end
+
+          def end_element(name)
+            case name
+            when 'HealthCheck'
+              @response[name] = @health_check
+            when 'HealthCheckConfig'
+              @health_check[name] = @health_check_config
+              @health_check_config = {}
+            when 'Id', 'CallerReference'
+              @health_check[name] = value
+            when 'HealthCheckVersion'
+              @health_check[name] = value.to_i
+            when 'IPAddress', 'Port', 'Type', 'ResourcePath', 'FullyQualifiedDomainName', 'SearchString', 'FailureThreshold'
+              @health_check_config[name] = value
+            when 'RequestInterval'
+              @health_check_config[name] = value.to_i
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/parsers/dns/list_health_checks.rb b/lib/fog/aws/parsers/dns/list_health_checks.rb
new file mode 100644
index 0000000..a775ada
--- /dev/null
+++ b/lib/fog/aws/parsers/dns/list_health_checks.rb
@@ -0,0 +1,41 @@
+module Fog
+  module Parsers
+    module DNS
+      module AWS
+        class ListHealthChecks < Fog::Parsers::Base
+          def reset
+            @health_checks = []
+            @health_check = {}
+            @health_check_config = {}
+            @response = {}
+          end
+
+          def end_element(name)
+            case name
+            when 'HealthChecks'
+              @response['HealthChecks'] = @health_checks
+            when 'HealthCheck'
+              @health_checks << @health_check
+              @health_check = {}
+            when 'HealthCheckConfig'
+              @health_check[name] = @health_check_config
+              @health_check_config = {}
+            when 'Id', 'CallerReference'
+              @health_check[name] = value
+            when 'HealthCheckVersion'
+              @health_check[name] = value.to_i
+            when 'IPAddress', 'Port', 'Type', 'ResourcePath', 'FullyQualifiedDomainName', 'SearchString', 'FailureThreshold'
+              @health_check_config[name] = value
+            when 'RequestInterval'
+              @health_check_config[name] = value.to_i
+            when 'MaxItems'
+              @response[name] = value.to_i
+            when 'IsTruncated', 'Marker', 'NextMarker'
+              @response[name] = value
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/parsers/dns/list_hosted_zones.rb b/lib/fog/aws/parsers/dns/list_hosted_zones.rb
index 67a5a8b..fd709b5 100644
--- a/lib/fog/aws/parsers/dns/list_hosted_zones.rb
+++ b/lib/fog/aws/parsers/dns/list_hosted_zones.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class ListHostedZones < Fog::Parsers::Base
-
           def reset
             @hosted_zones = []
             @zone = {}
@@ -28,9 +26,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/dns/list_resource_record_sets.rb b/lib/fog/aws/parsers/dns/list_resource_record_sets.rb
index ac80ba5..98385e5 100644
--- a/lib/fog/aws/parsers/dns/list_resource_record_sets.rb
+++ b/lib/fog/aws/parsers/dns/list_resource_record_sets.rb
@@ -2,14 +2,13 @@ module Fog
   module Parsers
     module DNS
       module AWS
-
         class ListResourceRecordSets < Fog::Parsers::Base
-
           def reset
             @resource_record = []
             @resource_record_set = {}
             @resource_record_set['ResourceRecords'] = []
             @alias_target = {}
+            @geo_location = {}
             @response = {}
             @response['ResourceRecordSets'] = []
             @section = :resource_record_set
@@ -18,7 +17,7 @@ module Fog
           def end_element(name)
             if @section == :resource_record_set
               case name
-              when 'Type', 'TTL', 'SetIdentifier', 'Weight', 'Region'
+              when 'Type', 'TTL', 'SetIdentifier', 'Weight', 'Region', 'HealthCheckId', 'Failover'
                 @resource_record_set[name] = value
               when 'Name'
                 @resource_record_set[name] = value.gsub('\\052', '*')
@@ -27,8 +26,13 @@ module Fog
               when 'AliasTarget'
                 @resource_record_set[name] = @alias_target
                 @alias_target = {}
-              when 'HostedZoneId', 'DNSName'
+              when 'HostedZoneId', 'DNSName', 'EvaluateTargetHealth'
                 @alias_target[name] = value
+              when 'GeoLocation'
+                @resource_record_set[name] = @geo_location
+                @geo_location = {}
+              when 'ContinentCode', 'CountryCode', 'SubdivisionCode'
+                @geo_location[name] = value
               when 'ResourceRecordSet'
                 @response['ResourceRecordSets'] << @resource_record_set
                 @resource_record_set = {}
@@ -47,9 +51,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elasticache/authorize_cache_security_group_ingress.rb b/lib/fog/aws/parsers/elasticache/authorize_cache_security_group_ingress.rb
index c3aaf99..c4f19d2 100644
--- a/lib/fog/aws/parsers/elasticache/authorize_cache_security_group_ingress.rb
+++ b/lib/fog/aws/parsers/elasticache/authorize_cache_security_group_ingress.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module Elasticache
-
         require 'fog/aws/parsers/elasticache/security_group_parser'
 
         class AuthorizeCacheSecurityGroupIngress < Fog::Parsers::AWS::Elasticache::SecurityGroupParser
-
           def end_element(name)
             case name
             when 'CacheSecurityGroup' then
@@ -15,11 +13,8 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elasticache/base.rb b/lib/fog/aws/parsers/elasticache/base.rb
index 9cac146..af49f53 100644
--- a/lib/fog/aws/parsers/elasticache/base.rb
+++ b/lib/fog/aws/parsers/elasticache/base.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module Elasticache
-
         # Base parser for ResponseMetadata, RequestId
         class Base < Fog::Parsers::Base
-
           def reset
             super
             @response = { 'ResponseMetadata' => {} }
@@ -23,9 +21,7 @@ module Fog
               super
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb b/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb
index 72d72e9..cfc4c68 100644
--- a/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb
+++ b/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/base'
 
         class CacheClusterParser < Base
-
           def reset
             super
             reset_cache_cluster
@@ -26,7 +25,6 @@ module Fog
             when 'CacheNode'; then @cache_node = {}
             when 'PendingModifiedValues'; then @pending_values = {}
             end
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/elasticache/create_cache_subnet_group.rb b/lib/fog/aws/parsers/elasticache/create_cache_subnet_group.rb
index 86887d7..765191b 100644
--- a/lib/fog/aws/parsers/elasticache/create_cache_subnet_group.rb
+++ b/lib/fog/aws/parsers/elasticache/create_cache_subnet_group.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module Elasticache
-
         require 'fog/aws/parsers/elasticache/subnet_group_parser'
 
         class CreateCacheSubnetGroup < Fog::Parsers::AWS::Elasticache::SubnetGroupParser
-
           def reset
             @response = { 'CreateCacheSubnetGroupResult' => {}, 'ResponseMetadata' => {} }
             super
@@ -26,13 +24,9 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/elasticache/describe_cache_clusters.rb b/lib/fog/aws/parsers/elasticache/describe_cache_clusters.rb
index 56a57ba..9c4facd 100644
--- a/lib/fog/aws/parsers/elasticache/describe_cache_clusters.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_cache_clusters.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/cache_cluster_parser'
 
         class DescribeCacheClusters < CacheClusterParser
-
           def reset
             super
             @response['CacheClusters'] = []
diff --git a/lib/fog/aws/parsers/elasticache/describe_cache_parameters.rb b/lib/fog/aws/parsers/elasticache/describe_cache_parameters.rb
index 28131ff..f651f0f 100644
--- a/lib/fog/aws/parsers/elasticache/describe_cache_parameters.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_cache_parameters.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/engine_defaults_parser'
 
         class DescribeCacheParameters < EngineDefaultsParser
-
           def end_element(name)
             case name
             when 'DescribeCacheParametersResult'
diff --git a/lib/fog/aws/parsers/elasticache/describe_cache_subnet_groups.rb b/lib/fog/aws/parsers/elasticache/describe_cache_subnet_groups.rb
index ab37333..f2368ba 100644
--- a/lib/fog/aws/parsers/elasticache/describe_cache_subnet_groups.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_cache_subnet_groups.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module Elasticache
-
         require 'fog/aws/parsers/elasticache/subnet_group_parser'
 
         class DescribeCacheSubnetGroups < Fog::Parsers::AWS::Elasticache::SubnetGroupParser
-
           def reset
             @response = { 'DescribeCacheSubnetGroupsResult' => {'CacheSubnetGroups' => []}, 'ResponseMetadata' => {} }
             super
@@ -28,9 +26,7 @@ module Fog
             else
               super
             end
-
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/elasticache/describe_engine_default_parameters.rb b/lib/fog/aws/parsers/elasticache/describe_engine_default_parameters.rb
index 9039367..9773140 100644
--- a/lib/fog/aws/parsers/elasticache/describe_engine_default_parameters.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_engine_default_parameters.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/engine_defaults_parser'
 
         class DescribeEngineDefaultParameters < EngineDefaultsParser
-
           def end_element(name)
             case name
             when 'EngineDefaults'
diff --git a/lib/fog/aws/parsers/elasticache/describe_parameter_groups.rb b/lib/fog/aws/parsers/elasticache/describe_parameter_groups.rb
index 81040b7..b4fa476 100644
--- a/lib/fog/aws/parsers/elasticache/describe_parameter_groups.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_parameter_groups.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/parameter_group_parser'
 
         class DescribeParameterGroups < ParameterGroupParser
-
           def reset
             super
             @response['CacheParameterGroups'] = []
diff --git a/lib/fog/aws/parsers/elasticache/describe_reserved_cache_nodes.rb b/lib/fog/aws/parsers/elasticache/describe_reserved_cache_nodes.rb
index 3de15b7..dc942da 100644
--- a/lib/fog/aws/parsers/elasticache/describe_reserved_cache_nodes.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_reserved_cache_nodes.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module Elasticache
-
         class DescribeReservedCacheNodes < Fog::Parsers::Base
-
           def reset
             @reserved_node = {}
             @response = { 'ReservedCacheNodes' => [] }
@@ -27,11 +25,8 @@ module Fog
               @reserved_node[name] = Time.parse(@value)
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/elasticache/describe_security_groups.rb b/lib/fog/aws/parsers/elasticache/describe_security_groups.rb
index 70942a4..6651eaf 100644
--- a/lib/fog/aws/parsers/elasticache/describe_security_groups.rb
+++ b/lib/fog/aws/parsers/elasticache/describe_security_groups.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/security_group_parser'
 
         class DescribeSecurityGroups < SecurityGroupParser
-
           def reset
             super
             @response['CacheSecurityGroups'] = []
diff --git a/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb b/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb
index 085723e..7d742a5 100644
--- a/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb
+++ b/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/base'
 
         class EngineDefaultsParser < Base
-
           def reset
             super
             reset_engine_defaults
diff --git a/lib/fog/aws/parsers/elasticache/event_list.rb b/lib/fog/aws/parsers/elasticache/event_list.rb
index 0ba3bcf..1a30c11 100644
--- a/lib/fog/aws/parsers/elasticache/event_list.rb
+++ b/lib/fog/aws/parsers/elasticache/event_list.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/base'
 
         class EventListParser < Base
-
           def reset
             super
             @response['Events'] = []
@@ -16,7 +15,6 @@ module Fog
             case name
             when 'Event'; then @event = {}
             end
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/elasticache/modify_parameter_group.rb b/lib/fog/aws/parsers/elasticache/modify_parameter_group.rb
index b15aa05..4853264 100644
--- a/lib/fog/aws/parsers/elasticache/modify_parameter_group.rb
+++ b/lib/fog/aws/parsers/elasticache/modify_parameter_group.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/parameter_group_parser'
 
         class ModifyParameterGroup < ParameterGroupParser
-
           def reset
             super
             @response['ModifyCacheParameterGroupResult'] = []
diff --git a/lib/fog/aws/parsers/elasticache/parameter_group_parser.rb b/lib/fog/aws/parsers/elasticache/parameter_group_parser.rb
index d53f5e0..0b8e8ac 100644
--- a/lib/fog/aws/parsers/elasticache/parameter_group_parser.rb
+++ b/lib/fog/aws/parsers/elasticache/parameter_group_parser.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/base'
 
         class ParameterGroupParser < Base
-
           def reset
             super
             reset_parameter_group
diff --git a/lib/fog/aws/parsers/elasticache/reset_parameter_group.rb b/lib/fog/aws/parsers/elasticache/reset_parameter_group.rb
index 9090e9b..ff49e00 100644
--- a/lib/fog/aws/parsers/elasticache/reset_parameter_group.rb
+++ b/lib/fog/aws/parsers/elasticache/reset_parameter_group.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/parameter_group_parser'
 
         class ResetParameterGroup < ParameterGroupParser
-
           def reset
             super
             @response['ResetCacheParameterGroupResult'] = []
diff --git a/lib/fog/aws/parsers/elasticache/security_group_parser.rb b/lib/fog/aws/parsers/elasticache/security_group_parser.rb
index b33ec87..b9b9f3e 100644
--- a/lib/fog/aws/parsers/elasticache/security_group_parser.rb
+++ b/lib/fog/aws/parsers/elasticache/security_group_parser.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/base'
 
         class SecurityGroupParser < Fog::Parsers::Base
-
           def reset
             super
             reset_security_group
@@ -20,7 +19,6 @@ module Fog
             case name
             when 'EC2SecurityGroup'; then @ec2_group = {}
             end
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/elasticache/single_cache_cluster.rb b/lib/fog/aws/parsers/elasticache/single_cache_cluster.rb
index 49673c7..01abd28 100644
--- a/lib/fog/aws/parsers/elasticache/single_cache_cluster.rb
+++ b/lib/fog/aws/parsers/elasticache/single_cache_cluster.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/cache_cluster_parser'
 
         class SingleCacheCluster < CacheClusterParser
-
           def end_element(name)
             case name
             when 'CacheCluster'
diff --git a/lib/fog/aws/parsers/elasticache/single_parameter_group.rb b/lib/fog/aws/parsers/elasticache/single_parameter_group.rb
index ad92002..36b0403 100644
--- a/lib/fog/aws/parsers/elasticache/single_parameter_group.rb
+++ b/lib/fog/aws/parsers/elasticache/single_parameter_group.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/parameter_group_parser'
 
         class SingleParameterGroup < ParameterGroupParser
-
           def end_element(name)
             case name
             when 'CacheParameterGroup'
diff --git a/lib/fog/aws/parsers/elasticache/single_security_group.rb b/lib/fog/aws/parsers/elasticache/single_security_group.rb
index 5d80778..8c03d30 100644
--- a/lib/fog/aws/parsers/elasticache/single_security_group.rb
+++ b/lib/fog/aws/parsers/elasticache/single_security_group.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/elasticache/security_group_parser'
 
         class SingleSecurityGroup < SecurityGroupParser
-
           def reset
             super
             @response = { 'ResponseMetadata' => {} }
diff --git a/lib/fog/aws/parsers/elasticache/subnet_group_parser.rb b/lib/fog/aws/parsers/elasticache/subnet_group_parser.rb
index 304ca8e..c2c220c 100644
--- a/lib/fog/aws/parsers/elasticache/subnet_group_parser.rb
+++ b/lib/fog/aws/parsers/elasticache/subnet_group_parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module Elasticache
-
         class SubnetGroupParser < Fog::Parsers::Base
-
           def reset
             @cache_subnet_group = fresh_subnet_group
           end
@@ -30,7 +28,6 @@ module Fog
           def fresh_subnet_group
             {'Subnets' => []}
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/elb/apply_security_groups_to_load_balancer.rb b/lib/fog/aws/parsers/elb/apply_security_groups_to_load_balancer.rb
index 79d470e..4d2124f 100644
--- a/lib/fog/aws/parsers/elb/apply_security_groups_to_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/apply_security_groups_to_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class ApplySecurityGroupsToLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'ApplySecurityGroupsToLoadBalancerResult' => { 'SecurityGroups' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/attach_load_balancer_to_subnets.rb b/lib/fog/aws/parsers/elb/attach_load_balancer_to_subnets.rb
index 22245c8..f2450ff 100644
--- a/lib/fog/aws/parsers/elb/attach_load_balancer_to_subnets.rb
+++ b/lib/fog/aws/parsers/elb/attach_load_balancer_to_subnets.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class AttachLoadBalancerToSubnets < Fog::Parsers::Base
-
           def reset
             @response = { 'AttachLoadBalancerToSubnetsResult' => { 'Subnets' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/configure_health_check.rb b/lib/fog/aws/parsers/elb/configure_health_check.rb
index b2934fd..ef3b045 100644
--- a/lib/fog/aws/parsers/elb/configure_health_check.rb
+++ b/lib/fog/aws/parsers/elb/configure_health_check.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class ConfigureHealthCheck < Fog::Parsers::Base
-
           def reset
             @health_check = {}
             @response = { 'ConfigureHealthCheckResult' => {}, 'ResponseMetadata' => {} }
@@ -28,9 +26,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/create_load_balancer.rb b/lib/fog/aws/parsers/elb/create_load_balancer.rb
index 27aa211..0b38943 100644
--- a/lib/fog/aws/parsers/elb/create_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/create_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class CreateLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'CreateLoadBalancerResult' => {}, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/delete_load_balancer.rb b/lib/fog/aws/parsers/elb/delete_load_balancer.rb
index a7aa650..ab0fe04 100644
--- a/lib/fog/aws/parsers/elb/delete_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/delete_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DeleteLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'DeleteLoadBalancerResult' => nil, 'ResponseMetadata' => {} }
           end
@@ -15,9 +13,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb b/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb
index 170ca53..7ae4171 100644
--- a/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DeregisterInstancesFromLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'DeregisterInstancesFromLoadBalancerResult' => { 'Instances' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/describe_instance_health.rb b/lib/fog/aws/parsers/elb/describe_instance_health.rb
index 4c01831..4e0f9b8 100644
--- a/lib/fog/aws/parsers/elb/describe_instance_health.rb
+++ b/lib/fog/aws/parsers/elb/describe_instance_health.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DescribeInstanceHealth < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeInstanceHealthResult' => { 'InstanceStates' => [] }, 'ResponseMetadata' => {} }
             @instance_state = {}
@@ -21,9 +19,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/describe_load_balancer_attributes.rb b/lib/fog/aws/parsers/elb/describe_load_balancer_attributes.rb
index 05b4d91..e3569c3 100644
--- a/lib/fog/aws/parsers/elb/describe_load_balancer_attributes.rb
+++ b/lib/fog/aws/parsers/elb/describe_load_balancer_attributes.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DescribeLoadBalancerAttributes < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeLoadBalancerAttributesResult' => { 'LoadBalancerAttributes' => {} }, 'ResponseMetadata' => {} }
             @stack = []
@@ -13,6 +11,8 @@ module Fog
           def start_element(name, attrs = [])
             super
             case name
+            when 'ConnectionDraining'
+              @connection_draining = {}
             when 'CrossZoneLoadBalancing'
               @cross_zone_load_balancing = {}
             end
@@ -23,7 +23,16 @@ module Fog
             when 'Enabled'
               if @cross_zone_load_balancing
                 @cross_zone_load_balancing['Enabled'] = value == 'true' ? true : false
+              elsif @connection_draining
+                @connection_draining['Enabled'] = value == 'true' ? true : false
+              end
+            when 'Timeout'
+              if @connection_draining
+                @connection_draining['Timeout'] = value.to_i
               end
+            when 'ConnectionDraining'
+              @response['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']['ConnectionDraining'] = @connection_draining
+              @connection_draining = nil
             when 'CrossZoneLoadBalancing'
               @response['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']['CrossZoneLoadBalancing'] = @cross_zone_load_balancing
               @cross_zone_load_balancing = nil
@@ -31,9 +40,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb b/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb
index 2317827..ecdbd68 100644
--- a/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb
+++ b/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DescribeLoadBalancerPolicies < Fog::Parsers::Base
-
           def reset
             reset_policy
             reset_policy_attribute_description
@@ -55,9 +53,7 @@ module Fog
               @response['DescribeLoadBalancerPoliciesResult'] = @results
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb b/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb
index e1184bc..11170c5 100644
--- a/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb
+++ b/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DescribeLoadBalancerPolicyTypes < Fog::Parsers::Base
-
           def reset
             reset_policy_type
             reset_policy_attribute_type_description
@@ -61,9 +59,7 @@ module Fog
               @response['DescribeLoadBalancerPolicyTypesResult'] = @results
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/describe_load_balancers.rb b/lib/fog/aws/parsers/elb/describe_load_balancers.rb
index 4144cf5..7e539e5 100644
--- a/lib/fog/aws/parsers/elb/describe_load_balancers.rb
+++ b/lib/fog/aws/parsers/elb/describe_load_balancers.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DescribeLoadBalancers < Fog::Parsers::Base
-
           def reset
             reset_load_balancer
             reset_listener_description
@@ -162,9 +160,7 @@ module Fog
               @response['DescribeLoadBalancersResult'] = @results
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/detach_load_balancer_from_subnets.rb b/lib/fog/aws/parsers/elb/detach_load_balancer_from_subnets.rb
index fdea5ba..a687dc1 100644
--- a/lib/fog/aws/parsers/elb/detach_load_balancer_from_subnets.rb
+++ b/lib/fog/aws/parsers/elb/detach_load_balancer_from_subnets.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DetachLoadBalancerFromSubnets < Fog::Parsers::Base
-
           def reset
             @response = { 'DetachLoadBalancerFromSubnetsResult' => { 'Subnets' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb b/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb
index a50f697..223ee39 100644
--- a/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class DisableAvailabilityZonesForLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'DisableAvailabilityZonesForLoadBalancerResult' => { 'AvailabilityZones' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/empty.rb b/lib/fog/aws/parsers/elb/empty.rb
index 7f344b2..7699b48 100644
--- a/lib/fog/aws/parsers/elb/empty.rb
+++ b/lib/fog/aws/parsers/elb/empty.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class Empty < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -19,9 +17,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb b/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb
index 17e2ff9..c2d74a9 100644
--- a/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class EnableAvailabilityZonesForLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'EnableAvailabilityZonesForLoadBalancerResult' => { 'AvailabilityZones' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb b/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb
index 083e539..00e3c72 100644
--- a/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb
+++ b/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module ELB
-
         class RegisterInstancesWithLoadBalancer < Fog::Parsers::Base
-
           def reset
             @response = { 'RegisterInstancesWithLoadBalancerResult' => { 'Instances' => [] }, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/emr/add_instance_groups.rb b/lib/fog/aws/parsers/emr/add_instance_groups.rb
index c643779..2c8a507 100644
--- a/lib/fog/aws/parsers/emr/add_instance_groups.rb
+++ b/lib/fog/aws/parsers/emr/add_instance_groups.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class AddInstanceGroups < Fog::Parsers::Base
-
           def start_element(name, attrs = [])
             super
             case name
diff --git a/lib/fog/aws/parsers/emr/add_job_flow_steps.rb b/lib/fog/aws/parsers/emr/add_job_flow_steps.rb
index 2a93b70..6ca6042 100644
--- a/lib/fog/aws/parsers/emr/add_job_flow_steps.rb
+++ b/lib/fog/aws/parsers/emr/add_job_flow_steps.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class AddJobFlowSteps < Fog::Parsers::Base
           def end_element(name)
             case name
diff --git a/lib/fog/aws/parsers/emr/describe_job_flows.rb b/lib/fog/aws/parsers/emr/describe_job_flows.rb
index e2df707..20cf57a 100644
--- a/lib/fog/aws/parsers/emr/describe_job_flows.rb
+++ b/lib/fog/aws/parsers/emr/describe_job_flows.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class DescribeJobFlows < Fog::Parsers::Base
-
           def reset
             @context = []
             @contexts = ['BootstrapActions', 'ExecutionStatusDetail', 'Instances', 'Steps', 'InstanceGroups', 'Args']
@@ -133,7 +131,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/emr/modify_instance_groups.rb b/lib/fog/aws/parsers/emr/modify_instance_groups.rb
index f4daf43..af84e51 100644
--- a/lib/fog/aws/parsers/emr/modify_instance_groups.rb
+++ b/lib/fog/aws/parsers/emr/modify_instance_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class ModifyInstanceGroups < Fog::Parsers::Base
           def end_element(name)
             case name
diff --git a/lib/fog/aws/parsers/emr/run_job_flow.rb b/lib/fog/aws/parsers/emr/run_job_flow.rb
index 4ef3a37..e088eb6 100644
--- a/lib/fog/aws/parsers/emr/run_job_flow.rb
+++ b/lib/fog/aws/parsers/emr/run_job_flow.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class RunJobFlow < Fog::Parsers::Base
           def end_element(name)
             case name
diff --git a/lib/fog/aws/parsers/emr/set_termination_protection.rb b/lib/fog/aws/parsers/emr/set_termination_protection.rb
index fc303bc..cc4374f 100644
--- a/lib/fog/aws/parsers/emr/set_termination_protection.rb
+++ b/lib/fog/aws/parsers/emr/set_termination_protection.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class SetTerminationProtection < Fog::Parsers::Base
           def end_element(name)
             case name
diff --git a/lib/fog/aws/parsers/emr/terminate_job_flows.rb b/lib/fog/aws/parsers/emr/terminate_job_flows.rb
index e555ff8..20c533e 100644
--- a/lib/fog/aws/parsers/emr/terminate_job_flows.rb
+++ b/lib/fog/aws/parsers/emr/terminate_job_flows.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module EMR
-
         class TerminateJobFlows < Fog::Parsers::Base
           def end_element(name)
             case name
diff --git a/lib/fog/aws/parsers/iam/base_instance_profile.rb b/lib/fog/aws/parsers/iam/base_instance_profile.rb
index 94b981e..cb79aa2 100644
--- a/lib/fog/aws/parsers/iam/base_instance_profile.rb
+++ b/lib/fog/aws/parsers/iam/base_instance_profile.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class BaseInstanceProfile < Fog::Parsers::Base
-
           def reset
             super
             @stack = []
@@ -70,9 +68,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/basic.rb b/lib/fog/aws/parsers/iam/basic.rb
index 28049bd..43abee3 100644
--- a/lib/fog/aws/parsers/iam/basic.rb
+++ b/lib/fog/aws/parsers/iam/basic.rb
@@ -2,16 +2,13 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class Basic < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'RequestId'
               @response[name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/iam/create_access_key.rb b/lib/fog/aws/parsers/iam/create_access_key.rb
index d23ac1e..d25b1a9 100644
--- a/lib/fog/aws/parsers/iam/create_access_key.rb
+++ b/lib/fog/aws/parsers/iam/create_access_key.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class CreateAccessKey < Fog::Parsers::Base
-
           def reset
             @response = { 'AccessKey' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/create_group.rb b/lib/fog/aws/parsers/iam/create_group.rb
index a75172d..93c0bc7 100644
--- a/lib/fog/aws/parsers/iam/create_group.rb
+++ b/lib/fog/aws/parsers/iam/create_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class CreateGroup < Fog::Parsers::Base
-
           def reset
             @response = { 'Group' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/create_user.rb b/lib/fog/aws/parsers/iam/create_user.rb
index 8afa024..8a3200c 100644
--- a/lib/fog/aws/parsers/iam/create_user.rb
+++ b/lib/fog/aws/parsers/iam/create_user.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class CreateUser < Fog::Parsers::Base
-
           def reset
             @response = { 'User' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/get_account_password_policy.rb b/lib/fog/aws/parsers/iam/get_account_password_policy.rb
new file mode 100644
index 0000000..d2267bb
--- /dev/null
+++ b/lib/fog/aws/parsers/iam/get_account_password_policy.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Parsers
+    module AWS
+      module IAM
+        class GetAccountPolicyPolicy < Fog::Parsers::Base
+          def reset
+            @response = {'AccountPasswordPolicy' => {}}
+          end
+
+          def end_element(name)
+            case name
+            when 'MinimumPasswordLength', 'MaxPasswordAge','PasswordReusePrevention'
+              #boolean values
+              @response['AccountPasswordPolicy'][name] = !!value
+            when 'RequireSymbols','RequireNumbers','RequireUppercaseCharacters','RequireLowercaseCharacters','AllowUsersToChangePassword','HardExpiry','ExpirePasswords'
+              #integer values              
+              @response['AccountPasswordPolicy'][name] = value.to_i
+            when 'RequestId'
+              @response[name] = value
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/parsers/iam/get_account_summary.rb b/lib/fog/aws/parsers/iam/get_account_summary.rb
index 2d10fd9..dcaf021 100644
--- a/lib/fog/aws/parsers/iam/get_account_summary.rb
+++ b/lib/fog/aws/parsers/iam/get_account_summary.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class GetAccountSummary < Fog::Parsers::Base
-
           def reset
             super
             @stack = []
@@ -37,9 +35,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/get_group.rb b/lib/fog/aws/parsers/iam/get_group.rb
index d359602..f6f6990 100644
--- a/lib/fog/aws/parsers/iam/get_group.rb
+++ b/lib/fog/aws/parsers/iam/get_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class GetGroup < Fog::Parsers::Base
         # http://docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_GetGroup.html
 
@@ -40,15 +39,13 @@ module Fog
             when 'member'
               @response['Users'] << @user
               @user = {}
-            when 'IsTruncated'	
+            when 'IsTruncated'
               response[name] = (value == 'true')
             when 'Marker', 'RequestId'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/get_group_policy.rb b/lib/fog/aws/parsers/iam/get_group_policy.rb
index 8bb0b14..5c8ca99 100644
--- a/lib/fog/aws/parsers/iam/get_group_policy.rb
+++ b/lib/fog/aws/parsers/iam/get_group_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class GetGroupPolicy < Fog::Parsers::Base
         # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_GetGroupPolicy.html
 
@@ -24,9 +23,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/get_role_policy.rb b/lib/fog/aws/parsers/iam/get_role_policy.rb
index 5971788..124cc46 100644
--- a/lib/fog/aws/parsers/iam/get_role_policy.rb
+++ b/lib/fog/aws/parsers/iam/get_role_policy.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class GetRolePolicy < Fog::Parsers::Base
-
           def reset
             @response = {'Policy' => {}}
           end
@@ -23,9 +21,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/get_user.rb b/lib/fog/aws/parsers/iam/get_user.rb
index 1ab68e3..ec737d9 100644
--- a/lib/fog/aws/parsers/iam/get_user.rb
+++ b/lib/fog/aws/parsers/iam/get_user.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class GetUser < Fog::Parsers::Base
         # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_GetUser.html
 
@@ -20,9 +19,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/get_user_policy.rb b/lib/fog/aws/parsers/iam/get_user_policy.rb
index 5610cf1..af26e7b 100644
--- a/lib/fog/aws/parsers/iam/get_user_policy.rb
+++ b/lib/fog/aws/parsers/iam/get_user_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class GetUserPolicy < Fog::Parsers::Base
         # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_GetUserPolicy.html
 
@@ -24,9 +23,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/instance_profile.rb b/lib/fog/aws/parsers/iam/instance_profile.rb
index 1bbdb94..4b9b4a6 100644
--- a/lib/fog/aws/parsers/iam/instance_profile.rb
+++ b/lib/fog/aws/parsers/iam/instance_profile.rb
@@ -2,32 +2,26 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         require 'fog/aws/parsers/iam/base_instance_profile'
 
         class InstanceProfile < Fog::Parsers::AWS::IAM::BaseInstanceProfile
-
           def reset
             super
             @response = {}
           end
 
-
           def finished_instance_profile(profile)
             @response['InstanceProfile'] = profile
           end
 
           def end_element(name)
-
             case name
             when 'RequestId'
               @response[name] = value
             end
             super
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_access_keys.rb b/lib/fog/aws/parsers/iam/list_access_keys.rb
index 2d56449..fb141b3 100644
--- a/lib/fog/aws/parsers/iam/list_access_keys.rb
+++ b/lib/fog/aws/parsers/iam/list_access_keys.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListAccessKeys < Fog::Parsers::Base
-
           def reset
             @access_key = {}
             @response = { 'AccessKeys' => [] }
@@ -23,9 +21,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_account_aliases.rb b/lib/fog/aws/parsers/iam/list_account_aliases.rb
index c179332..55a8058 100644
--- a/lib/fog/aws/parsers/iam/list_account_aliases.rb
+++ b/lib/fog/aws/parsers/iam/list_account_aliases.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListAccountAliases < Fog::Parsers::Base
-
           def reset
             @response = { 'AccountAliases' => [] }
           end
@@ -19,9 +17,7 @@ module Fog
               response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_groups.rb b/lib/fog/aws/parsers/iam/list_groups.rb
index b98d11b..b44bde9 100644
--- a/lib/fog/aws/parsers/iam/list_groups.rb
+++ b/lib/fog/aws/parsers/iam/list_groups.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListGroups < Fog::Parsers::Base
-
           def reset
             @group = {}
             @response = { 'Groups' => [] }
@@ -23,9 +21,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_groups_for_user.rb b/lib/fog/aws/parsers/iam/list_groups_for_user.rb
index 6a0e15b..645083a 100644
--- a/lib/fog/aws/parsers/iam/list_groups_for_user.rb
+++ b/lib/fog/aws/parsers/iam/list_groups_for_user.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListGroupsForUser < Fog::Parsers::Base
-
           def reset
             @group_for_user = {}
             @response = { 'GroupsForUser' => [] }
@@ -23,9 +21,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_instance_profiles.rb b/lib/fog/aws/parsers/iam/list_instance_profiles.rb
index feaeb48..4d0f24d 100644
--- a/lib/fog/aws/parsers/iam/list_instance_profiles.rb
+++ b/lib/fog/aws/parsers/iam/list_instance_profiles.rb
@@ -2,16 +2,13 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         require 'fog/aws/parsers/iam/base_instance_profile'
         class ListInstanceProfiles < Fog::Parsers::AWS::IAM::BaseInstanceProfile
-
           def reset
             super
             @response = {'InstanceProfiles' => []}
           end
 
-
           def finished_instance_profile(profile)
             @response['InstanceProfiles'] << profile
           end
@@ -25,9 +22,7 @@ module Fog
             end
             super
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_mfa_devices.rb b/lib/fog/aws/parsers/iam/list_mfa_devices.rb
index 2ae74dd..08c3592 100644
--- a/lib/fog/aws/parsers/iam/list_mfa_devices.rb
+++ b/lib/fog/aws/parsers/iam/list_mfa_devices.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListMFADevices < Fog::Parsers::Base
-
           def reset
             @mfa_device = {}
             @response = { 'MFADevices' => [] }
@@ -25,9 +23,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_policies.rb b/lib/fog/aws/parsers/iam/list_policies.rb
index b59d6d6..13976a1 100644
--- a/lib/fog/aws/parsers/iam/list_policies.rb
+++ b/lib/fog/aws/parsers/iam/list_policies.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListPolicies < Fog::Parsers::Base
-
           def reset
             @response = { 'PolicyNames' => [] }
           end
@@ -19,9 +17,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_roles.rb b/lib/fog/aws/parsers/iam/list_roles.rb
index 1093e17..4a8733a 100644
--- a/lib/fog/aws/parsers/iam/list_roles.rb
+++ b/lib/fog/aws/parsers/iam/list_roles.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         require 'fog/aws/parsers/iam/role_parser'
         class ListRoles < Fog::Parsers::AWS::IAM::RoleParser
-
           def reset
             super
             @response = { 'Roles' => [] }
diff --git a/lib/fog/aws/parsers/iam/list_server_certificates.rb b/lib/fog/aws/parsers/iam/list_server_certificates.rb
index a9c899e..1810a78 100644
--- a/lib/fog/aws/parsers/iam/list_server_certificates.rb
+++ b/lib/fog/aws/parsers/iam/list_server_certificates.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListServerCertificates < Fog::Parsers::Base
-
           def reset
             @response = { 'Certificates' => [] }
             reset_certificate
@@ -29,9 +27,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/list_signing_certificates.rb b/lib/fog/aws/parsers/iam/list_signing_certificates.rb
index 3c0d376..2d3e80d 100644
--- a/lib/fog/aws/parsers/iam/list_signing_certificates.rb
+++ b/lib/fog/aws/parsers/iam/list_signing_certificates.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListSigningCertificates < Fog::Parsers::Base
-
           def reset
             @signing_certificate = {}
             @response = { 'SigningCertificates' => [] }
@@ -23,10 +21,8 @@ module Fog
               response[name] = value
             end
           end
-
         end
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/iam/list_users.rb b/lib/fog/aws/parsers/iam/list_users.rb
index dc69e60..ee51ade 100644
--- a/lib/fog/aws/parsers/iam/list_users.rb
+++ b/lib/fog/aws/parsers/iam/list_users.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class ListUsers < Fog::Parsers::Base
-
           def reset
             @user = {}
             @response = { 'Users' => [] }
@@ -25,9 +23,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/login_profile.rb b/lib/fog/aws/parsers/iam/login_profile.rb
index dddf89c..210bda3 100644
--- a/lib/fog/aws/parsers/iam/login_profile.rb
+++ b/lib/fog/aws/parsers/iam/login_profile.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class LoginProfile < Fog::Parsers::Base
-
           def reset
             @response = { 'LoginProfile' => {} }
           end
@@ -19,7 +17,6 @@ module Fog
               @response[name] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/iam/role_parser.rb b/lib/fog/aws/parsers/iam/role_parser.rb
index 6100309..3660ec2 100644
--- a/lib/fog/aws/parsers/iam/role_parser.rb
+++ b/lib/fog/aws/parsers/iam/role_parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class RoleParser < Fog::Parsers::Base
-
           def reset
             @role = {}
             @stack = []
@@ -44,9 +42,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/single_role.rb b/lib/fog/aws/parsers/iam/single_role.rb
index a686f74..4ea4ca0 100644
--- a/lib/fog/aws/parsers/iam/single_role.rb
+++ b/lib/fog/aws/parsers/iam/single_role.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         require 'fog/aws/parsers/iam/role_parser'
         class SingleRole < Fog::Parsers::AWS::IAM::RoleParser
-
           def reset
             super
             @response = { 'Role' => {} }
diff --git a/lib/fog/aws/parsers/iam/update_group.rb b/lib/fog/aws/parsers/iam/update_group.rb
index 3232db3..fa84f57 100644
--- a/lib/fog/aws/parsers/iam/update_group.rb
+++ b/lib/fog/aws/parsers/iam/update_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class UpdateGroup < Fog::Parsers::Base
         # http://docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateGroup.html
           def reset
@@ -17,9 +16,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/update_user.rb b/lib/fog/aws/parsers/iam/update_user.rb
index 35a169f..bbe889c 100644
--- a/lib/fog/aws/parsers/iam/update_user.rb
+++ b/lib/fog/aws/parsers/iam/update_user.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class UpdateUser < Fog::Parsers::Base
         # http://docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateUser.html
 
@@ -18,9 +17,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/upload_server_certificate.rb b/lib/fog/aws/parsers/iam/upload_server_certificate.rb
index 80ddc29..8c77159 100644
--- a/lib/fog/aws/parsers/iam/upload_server_certificate.rb
+++ b/lib/fog/aws/parsers/iam/upload_server_certificate.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class UploadServerCertificate < Fog::Parsers::Base
-
           def reset
             @response = { 'Certificate' => {} }
           end
@@ -19,9 +17,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/iam/upload_signing_certificate.rb b/lib/fog/aws/parsers/iam/upload_signing_certificate.rb
index 4f473f7..2bc5684 100644
--- a/lib/fog/aws/parsers/iam/upload_signing_certificate.rb
+++ b/lib/fog/aws/parsers/iam/upload_signing_certificate.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module IAM
-
         class UploadSigningCertificate < Fog::Parsers::Base
-
           def reset
             @response = { 'Certificate' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb b/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb
index 7b2d2ff..8248051 100644
--- a/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb
+++ b/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/security_group_parser'
 
         class AuthorizeDBSecurityGroupIngress < Fog::Parsers::AWS::RDS::SecurityGroupParser
-
           def reset
             @response = { 'AuthorizeDBSecurityGroupIngressResult' => {}, 'ResponseMetadata' => {} }
             super
@@ -26,13 +24,9 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/base.rb b/lib/fog/aws/parsers/rds/base.rb
index cc3cad5..de9ad65 100644
--- a/lib/fog/aws/parsers/rds/base.rb
+++ b/lib/fog/aws/parsers/rds/base.rb
@@ -2,10 +2,8 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         # Base parser for ResponseMetadata, RequestId
         class Base < Fog::Parsers::Base
-
           def reset
             super
             @response = { 'ResponseMetadata' => {} }
@@ -23,9 +21,7 @@ module Fog
               super
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/create_db_instance.rb b/lib/fog/aws/parsers/rds/create_db_instance.rb
index 6a8d0d6..7bdfa72 100644
--- a/lib/fog/aws/parsers/rds/create_db_instance.rb
+++ b/lib/fog/aws/parsers/rds/create_db_instance.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class CreateDBInstance < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'CreateDBInstanceResult' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb b/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb
index a7ee488..b19b3a7 100644
--- a/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb
+++ b/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class CreateDBInstanceReadReplica < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'CreateDBInstanceReadReplicaResult' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/create_db_parameter_group.rb b/lib/fog/aws/parsers/rds/create_db_parameter_group.rb
index 12cdba5..0b05708 100644
--- a/lib/fog/aws/parsers/rds/create_db_parameter_group.rb
+++ b/lib/fog/aws/parsers/rds/create_db_parameter_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class CreateDbParameterGroup < Fog::Parsers::Base
-
           def reset
             @response = { 'CreateDBParameterGroupResult' => {}, 'ResponseMetadata' => {} }
             @db_parameter_group = {}
diff --git a/lib/fog/aws/parsers/rds/create_db_security_group.rb b/lib/fog/aws/parsers/rds/create_db_security_group.rb
index 5933896..f35c1f2 100644
--- a/lib/fog/aws/parsers/rds/create_db_security_group.rb
+++ b/lib/fog/aws/parsers/rds/create_db_security_group.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/security_group_parser'
 
         class CreateDBSecurityGroup < Fog::Parsers::AWS::RDS::SecurityGroupParser
-
           def reset
             @response = { 'CreateDBSecurityGroupResult' => {}, 'ResponseMetadata' => {} }
             super
@@ -26,13 +24,9 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/create_db_snapshot.rb b/lib/fog/aws/parsers/rds/create_db_snapshot.rb
index a89b9f0..d24fc17 100644
--- a/lib/fog/aws/parsers/rds/create_db_snapshot.rb
+++ b/lib/fog/aws/parsers/rds/create_db_snapshot.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/rds/snapshot_parser'
 
         class CreateDBSnapshot < Fog::Parsers::AWS::RDS::SnapshotParser
-
           def reset
             @response = { 'CreateDBSnapshotResult' => {}, 'ResponseMetadata' => {} }
             super
@@ -26,9 +25,7 @@ module Fog
               super
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/create_db_subnet_group.rb b/lib/fog/aws/parsers/rds/create_db_subnet_group.rb
index 50c0abd..6cce888 100644
--- a/lib/fog/aws/parsers/rds/create_db_subnet_group.rb
+++ b/lib/fog/aws/parsers/rds/create_db_subnet_group.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/subnet_group_parser'
 
         class CreateDBSubnetGroup < Fog::Parsers::AWS::RDS::SubnetGroupParser
-
           def reset
             @response = { 'CreateDBSubnetGroupResult' => {}, 'ResponseMetadata' => {} }
             super
@@ -26,13 +24,9 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/db_engine_version_parser.rb b/lib/fog/aws/parsers/rds/db_engine_version_parser.rb
index f26dc16..1826b80 100644
--- a/lib/fog/aws/parsers/rds/db_engine_version_parser.rb
+++ b/lib/fog/aws/parsers/rds/db_engine_version_parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DBEngineVersionParser < Fog::Parsers::Base
-
           def reset
             @db_engine_version = fresh_engine_version
           end
@@ -15,7 +13,6 @@ module Fog
 
           def start_element(name, attrs = [])
             super
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/rds/db_parser.rb b/lib/fog/aws/parsers/rds/db_parser.rb
index 23d91c9..01fcac9 100644
--- a/lib/fog/aws/parsers/rds/db_parser.rb
+++ b/lib/fog/aws/parsers/rds/db_parser.rb
@@ -2,12 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DbParser < Fog::Parsers::Base
-
           def reset
             @db_instance = fresh_instance
-
           end
 
           def fresh_instance
@@ -39,17 +36,14 @@ module Fog
               @in_vpc_security_groups = true
               @vpc_security_groups = []
             end
-
           end
 
           def end_element(name)
-
             case name
 
             when 'LatestRestorableTime', 'InstanceCreateTime'
               @db_instance[name] = Time.parse value
-            when 'Engine',
-              'DBInstanceStatus', 'DBInstanceIdentifier', 'EngineVersion',
+            when 'Engine', 'DBInstanceStatus', 'DBInstanceIdentifier', 
               'PreferredBackupWindow', 'PreferredMaintenanceWindow',
               'AvailabilityZone', 'MasterUsername', 'DBName', 'LicenseModel',
               'DBSubnetGroupName'
@@ -77,7 +71,8 @@ module Fog
               else
                 @db_instance[name] = value.to_i
               end
-            when 'DBInstanceClass', 'EngineVersion', 'MasterUserPassword', 'MultiAZ'
+            when 'DBInstanceClass', 'EngineVersion', 'MasterUserPassword', 
+                'MultiAZ', 'Iops', 'AllocatedStorage'
               if @in_pending_modified_values
                 @pending_modified_values[name] = value
               else
@@ -100,18 +95,6 @@ module Fog
               @vpc_security_group = {}
             when 'VpcSecurityGroupId'
               @vpc_security_group[name] = value
-            when 'Iops'
-              if @in_pending_modified_values
-                @pending_modified_values[name] = value.to_i
-              else
-                @db_instance[name] = value.to_i
-              end
-            when 'AllocatedStorage'
-              if @in_pending_modified_values
-                @pending_modified_values[name] = value.to_i
-              else
-                @db_instance[name] = value.to_i
-              end
 
             when 'Status'
               # Unfortunately, status is used in VpcSecurityGroupMemebership and
diff --git a/lib/fog/aws/parsers/rds/delete_db_instance.rb b/lib/fog/aws/parsers/rds/delete_db_instance.rb
index 738d714..98b9989 100644
--- a/lib/fog/aws/parsers/rds/delete_db_instance.rb
+++ b/lib/fog/aws/parsers/rds/delete_db_instance.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class DeleteDBInstance < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'DeleteDBInstanceResult' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb b/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb
index 98cf233..8056bbc 100644
--- a/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb
+++ b/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DeleteDbParameterGroup < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
             @db_parameter_group = {}
diff --git a/lib/fog/aws/parsers/rds/delete_db_security_group.rb b/lib/fog/aws/parsers/rds/delete_db_security_group.rb
index 282c7d6..7928265 100644
--- a/lib/fog/aws/parsers/rds/delete_db_security_group.rb
+++ b/lib/fog/aws/parsers/rds/delete_db_security_group.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/rds/snapshot_parser'
 
         class DeleteDBSecurityGroup < Fog::Parsers::AWS::RDS::SnapshotParser
-
           def reset
             @response = { 'ResponseMetadata' => {} }
             super
@@ -23,11 +22,8 @@ module Fog
               super
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/delete_db_snapshot.rb b/lib/fog/aws/parsers/rds/delete_db_snapshot.rb
index 4d733de..6250daa 100644
--- a/lib/fog/aws/parsers/rds/delete_db_snapshot.rb
+++ b/lib/fog/aws/parsers/rds/delete_db_snapshot.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/snapshot_parser'
 
         class DeleteDBSnapshot < Fog::Parsers::AWS::RDS::SnapshotParser
-
           def reset
             @response = { 'DeleteDBSnapshotResult' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/delete_db_subnet_group.rb b/lib/fog/aws/parsers/rds/delete_db_subnet_group.rb
index 3052516..923c65e 100644
--- a/lib/fog/aws/parsers/rds/delete_db_subnet_group.rb
+++ b/lib/fog/aws/parsers/rds/delete_db_subnet_group.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/subnet_group_parser'
 
         class DeleteDBSubnetGroup < Fog::Parsers::AWS::RDS::SubnetGroupParser
-
           def reset
             @response = { 'DeleteDBSubnetGroupResponse' => {}, 'ResponseMetadata' => {} }
             super
@@ -23,13 +21,9 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/describe_db_engine_versions.rb b/lib/fog/aws/parsers/rds/describe_db_engine_versions.rb
index a8d8853..452d1b5 100644
--- a/lib/fog/aws/parsers/rds/describe_db_engine_versions.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_engine_versions.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_engine_version_parser'
 
         class DescribeDBEngineVersions < Fog::Parsers::AWS::RDS::DBEngineVersionParser
-
           def reset
             @response = { 'DescribeDBEngineVersionsResult' => {'DBEngineVersions' => []}, 'ResponseMetadata' => {} }
             super
@@ -28,11 +26,8 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/describe_db_instances.rb b/lib/fog/aws/parsers/rds/describe_db_instances.rb
index 9bd8d8b..d20c08a 100644
--- a/lib/fog/aws/parsers/rds/describe_db_instances.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_instances.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class DescribeDBInstances < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'DescribeDBInstancesResult' => {'DBInstances' => []}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/describe_db_log_files.rb b/lib/fog/aws/parsers/rds/describe_db_log_files.rb
index da8998b..bdbcadc 100644
--- a/lib/fog/aws/parsers/rds/describe_db_log_files.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_log_files.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DescribeDBLogFiles < Fog::Parsers::Base
-
           attr_reader :rds_id
 
           def initialize(rds_id)
diff --git a/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb b/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb
index 576fb13..f724cb7 100644
--- a/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DescribeDBParameterGroups < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeDBParameterGroupsResult' => {'DBParameterGroups' => []}, 'ResponseMetadata' => {} }
             @db_parameter_group = {}
@@ -27,11 +25,8 @@ module Fog
             when 'RequestId'
               @response['ResponseMetadata'][name] = value
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/describe_db_parameters.rb b/lib/fog/aws/parsers/rds/describe_db_parameters.rb
index 60e32ae..c74b179 100644
--- a/lib/fog/aws/parsers/rds/describe_db_parameters.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_parameters.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DescribeDBParameters < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeDBParametersResult' =>{}, 'ResponseMetadata' => {} }
             @parameter = {}
diff --git a/lib/fog/aws/parsers/rds/describe_db_reserved_instances.rb b/lib/fog/aws/parsers/rds/describe_db_reserved_instances.rb
index fad7954..9cf07cc 100644
--- a/lib/fog/aws/parsers/rds/describe_db_reserved_instances.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_reserved_instances.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DescribeDBReservedInstances < Fog::Parsers::Base
-
           def reset
             @reserved_instance = {}
             @response = { 'ReservedDBInstances' => [] }
@@ -33,11 +31,8 @@ module Fog
               @reserved_instance[name] = Time.parse(@value)
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/describe_db_security_groups.rb b/lib/fog/aws/parsers/rds/describe_db_security_groups.rb
index acb0dd5..3e2acba 100644
--- a/lib/fog/aws/parsers/rds/describe_db_security_groups.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_security_groups.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/security_group_parser'
 
         class DescribeDBSecurityGroups < Fog::Parsers::AWS::RDS::SecurityGroupParser
-
           def reset
             @response = { 'DescribeDBSecurityGroupsResult' => {'DBSecurityGroups' => []}, 'ResponseMetadata' => {} }
             super
@@ -28,11 +26,8 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/describe_db_snapshots.rb b/lib/fog/aws/parsers/rds/describe_db_snapshots.rb
index 45f62fa..fe89f61 100644
--- a/lib/fog/aws/parsers/rds/describe_db_snapshots.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_snapshots.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/snapshot_parser'
 
         class DescribeDBSnapshots < Fog::Parsers::AWS::RDS::SnapshotParser
-
           def reset
             @response = { 'DescribeDBSnapshotsResult' => {'DBSnapshots' => []}, 'ResponseMetadata' => {} }
             super
@@ -28,11 +26,8 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/describe_db_subnet_groups.rb b/lib/fog/aws/parsers/rds/describe_db_subnet_groups.rb
index 959de18..57c048f 100644
--- a/lib/fog/aws/parsers/rds/describe_db_subnet_groups.rb
+++ b/lib/fog/aws/parsers/rds/describe_db_subnet_groups.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/subnet_group_parser'
 
         class DescribeDBSubnetGroups < Fog::Parsers::AWS::RDS::SubnetGroupParser
-
           def reset
             @response = { 'DescribeDBSubnetGroupsResult' => {'DBSubnetGroups' => []}, 'ResponseMetadata' => {} }
             super
@@ -28,9 +26,7 @@ module Fog
             else
               super
             end
-
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb b/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb
index 8535c93..cb0f78a 100644
--- a/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb
+++ b/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DescribeOrderableDBInstanceOptions < Fog::Parsers::Base
-
           def reset
             @response = { 'DescribeOrderableDBInstanceOptionsResult' => {'OrderableDBInstanceOptions' => []}, 'ResponseMetadata' => {} }
             @db_instance_option = {}
diff --git a/lib/fog/aws/parsers/rds/download_db_logfile_portion.rb b/lib/fog/aws/parsers/rds/download_db_logfile_portion.rb
index 7ded798..8b1d97f 100644
--- a/lib/fog/aws/parsers/rds/download_db_logfile_portion.rb
+++ b/lib/fog/aws/parsers/rds/download_db_logfile_portion.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class DownloadDBLogFilePortion < Fog::Parsers::Base
-
           def reset
             @response = { 'DownloadDBLogFilePortionResult' => {}, 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
             key = (name == 'RequestId') ? 'ResponseMetadata' : 'DownloadDBLogFilePortionResult'
             @response[key][name] = value
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/rds/event_list.rb b/lib/fog/aws/parsers/rds/event_list.rb
index 77a8874..35753e9 100644
--- a/lib/fog/aws/parsers/rds/event_list.rb
+++ b/lib/fog/aws/parsers/rds/event_list.rb
@@ -5,7 +5,6 @@ module Fog
         require 'fog/aws/parsers/rds/base'
 
         class EventListParser < Base
-
           def reset
             super
             @response['Events'] = []
@@ -16,7 +15,6 @@ module Fog
             case name
             when 'Event'; then @event = {}
             end
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/rds/modify_db_instance.rb b/lib/fog/aws/parsers/rds/modify_db_instance.rb
index 6dea9dd..e1232cb 100644
--- a/lib/fog/aws/parsers/rds/modify_db_instance.rb
+++ b/lib/fog/aws/parsers/rds/modify_db_instance.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class ModifyDBInstance < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'ModifyDBInstanceResult' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb b/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb
index fd922cb..60c63f4 100644
--- a/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb
+++ b/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class ModifyDbParameterGroup < Fog::Parsers::Base
-
           def reset
             @response = { 'ModifyDBParameterGroupResult' => {}, 'ResponseMetadata' => {} }
           end
diff --git a/lib/fog/aws/parsers/rds/promote_read_replica.rb b/lib/fog/aws/parsers/rds/promote_read_replica.rb
new file mode 100644
index 0000000..80fbc0e
--- /dev/null
+++ b/lib/fog/aws/parsers/rds/promote_read_replica.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Parsers
+    module AWS
+      module RDS
+        require 'fog/aws/parsers/rds/db_parser'
+
+        class PromoteReadReplica < Fog::Parsers::AWS::RDS::DbParser
+          def reset
+            @response = { 'PromoteReadReplicaResult' => {}, 'ResponseMetadata' => {} }
+            super
+          end
+
+          def start_element(name, attrs = [])
+            super
+          end
+
+          def end_element(name)
+            case name
+            when 'DBInstance'
+              @response['PromoteReadReplicaResult']['DBInstance'] = @db_instance
+              @db_instance = fresh_instance
+            when 'RequestId'
+              @response['ResponseMetadata'][name] = value
+            else
+              super
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/parsers/rds/reboot_db_instance.rb b/lib/fog/aws/parsers/rds/reboot_db_instance.rb
index 4cc32fb..334d3db 100644
--- a/lib/fog/aws/parsers/rds/reboot_db_instance.rb
+++ b/lib/fog/aws/parsers/rds/reboot_db_instance.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class RebootDBInstance < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'RebootDBInstanceResult' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb b/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb
index d022e5d..db12ec8 100644
--- a/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb
+++ b/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class RestoreDBInstanceFromDBSnapshot < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'RestoreDBInstanceFromDBSnapshot' => {}, 'ResponseMetadata' => {} }
             super
diff --git a/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb b/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb
index b8482f0..d9b3da0 100644
--- a/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb
+++ b/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/db_parser'
 
         class RestoreDBInstanceToPointInTime < Fog::Parsers::AWS::RDS::DbParser
-
           def reset
             @response = { 'RestoreDBInstanceToPointInTime' => {}, 'ResponseMetadata' => {} }
             super
@@ -32,4 +30,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb b/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb
index e846ba3..84d6bd8 100644
--- a/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb
+++ b/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb
@@ -2,11 +2,9 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         require 'fog/aws/parsers/rds/security_group_parser'
 
         class RevokeDBSecurityGroupIngress < Fog::Parsers::AWS::RDS::SecurityGroupParser
-
           def reset
             @response = { 'RevokeDBSecurityGroupIngressResult' => {}, 'ResponseMetadata' => {} }
             super
@@ -26,14 +24,9 @@ module Fog
             else
               super
             end
-
           end
-
         end
-
       end
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/rds/security_group_parser.rb b/lib/fog/aws/parsers/rds/security_group_parser.rb
index 37317f5..e3e8be0 100644
--- a/lib/fog/aws/parsers/rds/security_group_parser.rb
+++ b/lib/fog/aws/parsers/rds/security_group_parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class SecurityGroupParser < Fog::Parsers::Base
-
           def reset
             @security_group = fresh_security_group
           end
@@ -18,7 +16,6 @@ module Fog
             case name
             when 'EC2SecurityGroup', 'IPRange'; then @ingress = {}
             end
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/rds/snapshot_parser.rb b/lib/fog/aws/parsers/rds/snapshot_parser.rb
index 16c2df1..f41534e 100644
--- a/lib/fog/aws/parsers/rds/snapshot_parser.rb
+++ b/lib/fog/aws/parsers/rds/snapshot_parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class SnapshotParser < Fog::Parsers::Base
-
           def reset
             @db_snapshot = fresh_snapshot
           end
@@ -15,7 +13,6 @@ module Fog
 
           def start_element(name, attrs = [])
             super
-
           end
 
           def end_element(name)
diff --git a/lib/fog/aws/parsers/rds/subnet_group_parser.rb b/lib/fog/aws/parsers/rds/subnet_group_parser.rb
index b94e9f5..03aea7b 100644
--- a/lib/fog/aws/parsers/rds/subnet_group_parser.rb
+++ b/lib/fog/aws/parsers/rds/subnet_group_parser.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module RDS
-
         class SubnetGroupParser < Fog::Parsers::Base
-
           def reset
             @db_subnet_group = fresh_subnet_group
           end
@@ -30,7 +28,6 @@ module Fog
           def fresh_subnet_group
             {'Subnets' => []}
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/rds/tag_list_parser.rb b/lib/fog/aws/parsers/rds/tag_list_parser.rb
index 2441f46..a453dad 100644
--- a/lib/fog/aws/parsers/rds/tag_list_parser.rb
+++ b/lib/fog/aws/parsers/rds/tag_list_parser.rb
@@ -4,7 +4,6 @@ module Fog
       module RDS
         # parses an XML-formatted list of resource tags from AWS
         class TagListParser < Fog::Parsers::Base
-
           # each tag is modeled as a String pair (2-element Array)
           def reset
             @this_key   = nil
@@ -27,7 +26,6 @@ module Fog
               @response['ListTagsForResourceResult']['TagList'] = @tags
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/parsers/redshift/cluster.rb b/lib/fog/aws/parsers/redshift/cluster.rb
index 8278720..5fdb57a 100644
--- a/lib/fog/aws/parsers/redshift/cluster.rb
+++ b/lib/fog/aws/parsers/redshift/cluster.rb
@@ -26,4 +26,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/redshift/cluster_parser.rb b/lib/fog/aws/parsers/redshift/cluster_parser.rb
index 5d5d6b0..b0a4bb9 100644
--- a/lib/fog/aws/parsers/redshift/cluster_parser.rb
+++ b/lib/fog/aws/parsers/redshift/cluster_parser.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class ClusterParser < Fog::Parsers::Base
           # :cluster_identifier - (String)
           # :node_type - (String)
diff --git a/lib/fog/aws/parsers/redshift/cluster_security_group_parser.rb b/lib/fog/aws/parsers/redshift/cluster_security_group_parser.rb
index 7c659ad..9c1d639 100644
--- a/lib/fog/aws/parsers/redshift/cluster_security_group_parser.rb
+++ b/lib/fog/aws/parsers/redshift/cluster_security_group_parser.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class ClusterSecurityGroupParser < Fog::Parsers::Base
           #   :cluster_security_group_name - (String)
           #   :description - (String)
diff --git a/lib/fog/aws/parsers/redshift/cluster_snapshot.rb b/lib/fog/aws/parsers/redshift/cluster_snapshot.rb
index 6d4dd5a..c74e514 100644
--- a/lib/fog/aws/parsers/redshift/cluster_snapshot.rb
+++ b/lib/fog/aws/parsers/redshift/cluster_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         require 'fog/aws/parsers/redshift/cluster_snapshot_parser'
 
         class ClusterSnapshot < ClusterSnapshotParser
diff --git a/lib/fog/aws/parsers/redshift/cluster_snapshot_parser.rb b/lib/fog/aws/parsers/redshift/cluster_snapshot_parser.rb
index 4c7c2d9..2aa62c7 100644
--- a/lib/fog/aws/parsers/redshift/cluster_snapshot_parser.rb
+++ b/lib/fog/aws/parsers/redshift/cluster_snapshot_parser.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class ClusterSnapshotParser < Fog::Parsers::Base
           # :snapshot_identifier - (String)
           # :cluster_identifier - (String)
diff --git a/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb b/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb
index cf6678c..7374013 100644
--- a/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb
+++ b/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class ClusterSubnetGroupParser < Fog::Parsers::Base
           # :cluster_subnet_group_name - (String)
           # :description - (String)
diff --git a/lib/fog/aws/parsers/redshift/create_cluster_parameter_group.rb b/lib/fog/aws/parsers/redshift/create_cluster_parameter_group.rb
index ad7d70b..50b85dc 100644
--- a/lib/fog/aws/parsers/redshift/create_cluster_parameter_group.rb
+++ b/lib/fog/aws/parsers/redshift/create_cluster_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class CreateClusterParameterGroup < Fog::Parsers::Base
           # :parameter_group_name - (String)
           # :parameter_group_family - (String)
diff --git a/lib/fog/aws/parsers/redshift/create_cluster_security_group.rb b/lib/fog/aws/parsers/redshift/create_cluster_security_group.rb
index 59a936e..2e542ac 100644
--- a/lib/fog/aws/parsers/redshift/create_cluster_security_group.rb
+++ b/lib/fog/aws/parsers/redshift/create_cluster_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         require 'fog/aws/parsers/redshift/cluster_security_group_parser'
 
         class CreateClusterSecurityGroup < ClusterSecurityGroupParser
diff --git a/lib/fog/aws/parsers/redshift/describe_cluster_parameter_groups.rb b/lib/fog/aws/parsers/redshift/describe_cluster_parameter_groups.rb
index ad6c366..3b680e1 100644
--- a/lib/fog/aws/parsers/redshift/describe_cluster_parameter_groups.rb
+++ b/lib/fog/aws/parsers/redshift/describe_cluster_parameter_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeClusterParameterGroups < Fog::Parsers::Base
           # :marker - (String)
           # :parameter_groups - (Array)
diff --git a/lib/fog/aws/parsers/redshift/describe_cluster_parameters.rb b/lib/fog/aws/parsers/redshift/describe_cluster_parameters.rb
index f9a5780..ef6507d 100644
--- a/lib/fog/aws/parsers/redshift/describe_cluster_parameters.rb
+++ b/lib/fog/aws/parsers/redshift/describe_cluster_parameters.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeClusterParameters < Fog::Parsers::Base
           # :marker - (String)
           # :parameters - (Array)
diff --git a/lib/fog/aws/parsers/redshift/describe_cluster_security_groups.rb b/lib/fog/aws/parsers/redshift/describe_cluster_security_groups.rb
index f3508a9..50d492b 100644
--- a/lib/fog/aws/parsers/redshift/describe_cluster_security_groups.rb
+++ b/lib/fog/aws/parsers/redshift/describe_cluster_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         require 'fog/aws/parsers/redshift/cluster_security_group_parser'
 
         class DescribeClusterSecurityGroups < ClusterSecurityGroupParser
diff --git a/lib/fog/aws/parsers/redshift/describe_cluster_snapshots.rb b/lib/fog/aws/parsers/redshift/describe_cluster_snapshots.rb
index 5f46526..20f22d6 100644
--- a/lib/fog/aws/parsers/redshift/describe_cluster_snapshots.rb
+++ b/lib/fog/aws/parsers/redshift/describe_cluster_snapshots.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         require 'fog/aws/parsers/redshift/cluster_snapshot_parser'
 
         class DescribeClusterSnapshots < ClusterSnapshotParser
diff --git a/lib/fog/aws/parsers/redshift/describe_cluster_subnet_groups.rb b/lib/fog/aws/parsers/redshift/describe_cluster_subnet_groups.rb
index 2a5c8f4..53981a8 100644
--- a/lib/fog/aws/parsers/redshift/describe_cluster_subnet_groups.rb
+++ b/lib/fog/aws/parsers/redshift/describe_cluster_subnet_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeClusterSubnetGroups < Fog::Parsers::Base
           # :marker - (String)
           # :cluster_subnet_groups - (Array<Hash>)
@@ -54,5 +53,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/redshift/describe_cluster_versions.rb b/lib/fog/aws/parsers/redshift/describe_cluster_versions.rb
index 2feb4b2..d6a2f39 100644
--- a/lib/fog/aws/parsers/redshift/describe_cluster_versions.rb
+++ b/lib/fog/aws/parsers/redshift/describe_cluster_versions.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeClusterVersions < Fog::Parsers::Base
           # :marker - (String)
           # :cluster_versions - (Array<Hash>)
@@ -49,5 +48,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/parsers/redshift/describe_clusters.rb b/lib/fog/aws/parsers/redshift/describe_clusters.rb
index 9b23080..2307673 100644
--- a/lib/fog/aws/parsers/redshift/describe_clusters.rb
+++ b/lib/fog/aws/parsers/redshift/describe_clusters.rb
@@ -27,4 +27,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/redshift/describe_default_cluster_parameters.rb b/lib/fog/aws/parsers/redshift/describe_default_cluster_parameters.rb
index 7f935f3..8a7bca7 100644
--- a/lib/fog/aws/parsers/redshift/describe_default_cluster_parameters.rb
+++ b/lib/fog/aws/parsers/redshift/describe_default_cluster_parameters.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeDefaultClusterParameters < Fog::Parsers::Base
           # :marker - (String)
           # :parameter_group_family - (String)
diff --git a/lib/fog/aws/parsers/redshift/describe_events.rb b/lib/fog/aws/parsers/redshift/describe_events.rb
index d0d8cff..e224f9a 100644
--- a/lib/fog/aws/parsers/redshift/describe_events.rb
+++ b/lib/fog/aws/parsers/redshift/describe_events.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeEvents < Fog::Parsers::Base
           # :marker - (String)
           # :events - (Array)
diff --git a/lib/fog/aws/parsers/redshift/describe_orderable_cluster_options.rb b/lib/fog/aws/parsers/redshift/describe_orderable_cluster_options.rb
index 206810a..b99a1d7 100644
--- a/lib/fog/aws/parsers/redshift/describe_orderable_cluster_options.rb
+++ b/lib/fog/aws/parsers/redshift/describe_orderable_cluster_options.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeOrderableClusterOptions < Fog::Parsers::Base
           # :marker - (String)
           # :orderable_cluster_options - (Array)
diff --git a/lib/fog/aws/parsers/redshift/describe_reserved_node_offerings.rb b/lib/fog/aws/parsers/redshift/describe_reserved_node_offerings.rb
index 4fbaede..b43effe 100644
--- a/lib/fog/aws/parsers/redshift/describe_reserved_node_offerings.rb
+++ b/lib/fog/aws/parsers/redshift/describe_reserved_node_offerings.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeReservedNodeOfferings < Fog::Parsers::Base
           # :marker - (String)
           # :reserved_node_offerings - (Array)
diff --git a/lib/fog/aws/parsers/redshift/describe_reserved_nodes.rb b/lib/fog/aws/parsers/redshift/describe_reserved_nodes.rb
index 2a86942..23a3989 100644
--- a/lib/fog/aws/parsers/redshift/describe_reserved_nodes.rb
+++ b/lib/fog/aws/parsers/redshift/describe_reserved_nodes.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeReservedNodes < Fog::Parsers::Base
           # :marker - (String)
           # :reserved_nodes - (Array)
diff --git a/lib/fog/aws/parsers/redshift/describe_resize.rb b/lib/fog/aws/parsers/redshift/describe_resize.rb
index 8e47fec..9211139 100644
--- a/lib/fog/aws/parsers/redshift/describe_resize.rb
+++ b/lib/fog/aws/parsers/redshift/describe_resize.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class DescribeResize < Fog::Parsers::Base
           # :target_node_type - (String)
           # :target_number_of_nodes - (Integer)
@@ -15,7 +14,6 @@ module Fog
             @response = { 'ImportTablesCompleted' => [], 'ImportTablesInProgress' => [], 'ImportTablesNotStarted' => []}
           end
 
-
           def start_element(name, attrs = [])
             super
             case name
diff --git a/lib/fog/aws/parsers/redshift/purchase_reserved_node_offering.rb b/lib/fog/aws/parsers/redshift/purchase_reserved_node_offering.rb
index b787436..441d44d 100644
--- a/lib/fog/aws/parsers/redshift/purchase_reserved_node_offering.rb
+++ b/lib/fog/aws/parsers/redshift/purchase_reserved_node_offering.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class PurchaseReservedNodeOffering < Fog::Parsers::Base
-
           # :reserved_node_id - (String)
           # :reserved_node_offering_id - (String)
           # :node_type - (String)
diff --git a/lib/fog/aws/parsers/redshift/revoke_cluster_security_group_ingress.rb b/lib/fog/aws/parsers/redshift/revoke_cluster_security_group_ingress.rb
index 129d536..70f4452 100644
--- a/lib/fog/aws/parsers/redshift/revoke_cluster_security_group_ingress.rb
+++ b/lib/fog/aws/parsers/redshift/revoke_cluster_security_group_ingress.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         require 'fog/aws/parsers/redshift/cluster_security_group_parser'
 
         class RevokeClusterSecurityGroupIngress < ClusterSecurityGroupParser
diff --git a/lib/fog/aws/parsers/redshift/update_cluster_parameter_group_parser.rb b/lib/fog/aws/parsers/redshift/update_cluster_parameter_group_parser.rb
index d477c40..4d0a029 100644
--- a/lib/fog/aws/parsers/redshift/update_cluster_parameter_group_parser.rb
+++ b/lib/fog/aws/parsers/redshift/update_cluster_parameter_group_parser.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Redshift
       module AWS
-
         class UpdateClusterParameterGroupParser < Fog::Parsers::Base
           # :parameter_group_name - (String)
           # :parameter_group_status - (String)
diff --git a/lib/fog/aws/parsers/ses/delete_verified_email_address.rb b/lib/fog/aws/parsers/ses/delete_verified_email_address.rb
index 1472b92..9d357f0 100644
--- a/lib/fog/aws/parsers/ses/delete_verified_email_address.rb
+++ b/lib/fog/aws/parsers/ses/delete_verified_email_address.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class DeleteVerifiedEmailAddress < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -15,9 +13,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/get_send_quota.rb b/lib/fog/aws/parsers/ses/get_send_quota.rb
index ffff267..9430d4b 100644
--- a/lib/fog/aws/parsers/ses/get_send_quota.rb
+++ b/lib/fog/aws/parsers/ses/get_send_quota.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class GetSendQuota < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/get_send_statistics.rb b/lib/fog/aws/parsers/ses/get_send_statistics.rb
index 76821e4..263848e 100644
--- a/lib/fog/aws/parsers/ses/get_send_statistics.rb
+++ b/lib/fog/aws/parsers/ses/get_send_statistics.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class GetSendStatistics < Fog::Parsers::Base
-
           def reset
             @response = { 'SendDataPoints' => [], 'ResponseMetadata' => {} }
             @send_data_point = {}
@@ -22,7 +20,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb b/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb
index 3ce65d9..32fdf71 100644
--- a/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb
+++ b/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class ListVerifiedEmailAddresses < Fog::Parsers::Base
-
           def reset
             @response = { 'VerifiedEmailAddresses' => [], 'ResponseMetadata' => {} }
           end
@@ -18,7 +16,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/send_email.rb b/lib/fog/aws/parsers/ses/send_email.rb
index 5d2ec10..c98378e 100644
--- a/lib/fog/aws/parsers/ses/send_email.rb
+++ b/lib/fog/aws/parsers/ses/send_email.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class SendEmail < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/send_raw_email.rb b/lib/fog/aws/parsers/ses/send_raw_email.rb
index e48a875..1229dbd 100644
--- a/lib/fog/aws/parsers/ses/send_raw_email.rb
+++ b/lib/fog/aws/parsers/ses/send_raw_email.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class SendRawEmail < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/verify_domain_identity.rb b/lib/fog/aws/parsers/ses/verify_domain_identity.rb
index 63ba4e2..63a5b99 100644
--- a/lib/fog/aws/parsers/ses/verify_domain_identity.rb
+++ b/lib/fog/aws/parsers/ses/verify_domain_identity.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class VerifyDomainIdentity < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/ses/verify_email_address.rb b/lib/fog/aws/parsers/ses/verify_email_address.rb
index 983a8b4..f557f04 100644
--- a/lib/fog/aws/parsers/ses/verify_email_address.rb
+++ b/lib/fog/aws/parsers/ses/verify_email_address.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SES
-
         class VerifyEmailAddress < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -15,9 +13,7 @@ module Fog
               @response['ResponseMetadata'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/simpledb/basic.rb b/lib/fog/aws/parsers/simpledb/basic.rb
index 9560148..7550ce8 100644
--- a/lib/fog/aws/parsers/simpledb/basic.rb
+++ b/lib/fog/aws/parsers/simpledb/basic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SimpleDB
-
         class Basic < Fog::Parsers::Base
-
           def initialize(nil_string)
             @nil_string = nil_string
             reset
@@ -22,9 +20,7 @@ module Fog
           def sdb_decode(value)
             value.eql?(@nil_string) ? nil : value
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/simpledb/domain_metadata.rb b/lib/fog/aws/parsers/simpledb/domain_metadata.rb
index aed3ff1..df5acc3 100644
--- a/lib/fog/aws/parsers/simpledb/domain_metadata.rb
+++ b/lib/fog/aws/parsers/simpledb/domain_metadata.rb
@@ -4,9 +4,7 @@ module Fog
   module Parsers
     module AWS
       module SimpleDB
-
         class DomainMetadata < Fog::Parsers::AWS::SimpleDB::Basic
-
           def reset
             @response = {}
           end
@@ -23,9 +21,7 @@ module Fog
               response[name] = Time.at(value.to_i)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/simpledb/get_attributes.rb b/lib/fog/aws/parsers/simpledb/get_attributes.rb
index ea00b6f..7757d1b 100644
--- a/lib/fog/aws/parsers/simpledb/get_attributes.rb
+++ b/lib/fog/aws/parsers/simpledb/get_attributes.rb
@@ -4,9 +4,7 @@ module Fog
   module Parsers
     module AWS
       module SimpleDB
-
         class GetAttributes < Fog::Parsers::AWS::SimpleDB::Basic
-
           def reset
             @attribute = nil
             @response = { 'Attributes' => {} }
@@ -27,9 +25,7 @@ module Fog
               response['Attributes'][@attribute] << sdb_decode(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/simpledb/list_domains.rb b/lib/fog/aws/parsers/simpledb/list_domains.rb
index 12a70db..998f4ba 100644
--- a/lib/fog/aws/parsers/simpledb/list_domains.rb
+++ b/lib/fog/aws/parsers/simpledb/list_domains.rb
@@ -4,9 +4,7 @@ module Fog
   module Parsers
     module AWS
       module SimpleDB
-
         class ListDomains < Fog::Parsers::AWS::SimpleDB::Basic
-
           def reset
             @response = { 'Domains' => [] }
           end
@@ -21,9 +19,7 @@ module Fog
               response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/simpledb/select.rb b/lib/fog/aws/parsers/simpledb/select.rb
index ce39786..cb616af 100644
--- a/lib/fog/aws/parsers/simpledb/select.rb
+++ b/lib/fog/aws/parsers/simpledb/select.rb
@@ -4,9 +4,7 @@ module Fog
   module Parsers
     module AWS
       module SimpleDB
-
         class Select < Fog::Parsers::AWS::SimpleDB::Basic
-
           def reset
             @item_name = @attribute_name = nil
             @response = { 'Items' => {} }
@@ -32,9 +30,7 @@ module Fog
               response['Items'][@item_name][@attribute_name] << sdb_decode(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/add_permission.rb b/lib/fog/aws/parsers/sns/add_permission.rb
index 8da7226..04cdd6e 100644
--- a/lib/fog/aws/parsers/sns/add_permission.rb
+++ b/lib/fog/aws/parsers/sns/add_permission.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class AddPermission < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/confirm_subscription.rb b/lib/fog/aws/parsers/sns/confirm_subscription.rb
index dc9c95b..bd69223 100644
--- a/lib/fog/aws/parsers/sns/confirm_subscription.rb
+++ b/lib/fog/aws/parsers/sns/confirm_subscription.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class ConfirmSubscription < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value.strip
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/create_topic.rb b/lib/fog/aws/parsers/sns/create_topic.rb
index a037cec..311d8ae 100644
--- a/lib/fog/aws/parsers/sns/create_topic.rb
+++ b/lib/fog/aws/parsers/sns/create_topic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class CreateTopic < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value.strip
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/delete_topic.rb b/lib/fog/aws/parsers/sns/delete_topic.rb
index 0a0a27f..7739a0e 100644
--- a/lib/fog/aws/parsers/sns/delete_topic.rb
+++ b/lib/fog/aws/parsers/sns/delete_topic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class DeleteTopic < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/get_topic_attributes.rb b/lib/fog/aws/parsers/sns/get_topic_attributes.rb
index ea974f5..c1e9df3 100644
--- a/lib/fog/aws/parsers/sns/get_topic_attributes.rb
+++ b/lib/fog/aws/parsers/sns/get_topic_attributes.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class GetTopicAttributes < Fog::Parsers::Base
-
           def reset
             @response = { 'Attributes' => {} }
           end
@@ -25,7 +23,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/list_subscriptions.rb b/lib/fog/aws/parsers/sns/list_subscriptions.rb
index b19c9c9..02533d9 100644
--- a/lib/fog/aws/parsers/sns/list_subscriptions.rb
+++ b/lib/fog/aws/parsers/sns/list_subscriptions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class ListSubscriptions < Fog::Parsers::Base
-
           def reset
             @response = { 'Subscriptions' => [] }
             @subscription = {}
@@ -22,7 +20,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/list_topics.rb b/lib/fog/aws/parsers/sns/list_topics.rb
index b3df3fb..40df34d 100644
--- a/lib/fog/aws/parsers/sns/list_topics.rb
+++ b/lib/fog/aws/parsers/sns/list_topics.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class ListTopics < Fog::Parsers::Base
-
           def reset
             @response = { 'Topics' => [] }
           end
@@ -17,9 +15,7 @@ module Fog
               response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/publish.rb b/lib/fog/aws/parsers/sns/publish.rb
index 91b2a62..68f69b3 100644
--- a/lib/fog/aws/parsers/sns/publish.rb
+++ b/lib/fog/aws/parsers/sns/publish.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class Publish < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value.rstrip
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/remove_permission.rb b/lib/fog/aws/parsers/sns/remove_permission.rb
index e4e43a1..345c1f1 100644
--- a/lib/fog/aws/parsers/sns/remove_permission.rb
+++ b/lib/fog/aws/parsers/sns/remove_permission.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class RemovePermission < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/set_topic_attributes.rb b/lib/fog/aws/parsers/sns/set_topic_attributes.rb
index 19639b7..e652e57 100644
--- a/lib/fog/aws/parsers/sns/set_topic_attributes.rb
+++ b/lib/fog/aws/parsers/sns/set_topic_attributes.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class SetTopicAttributes < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/subscribe.rb b/lib/fog/aws/parsers/sns/subscribe.rb
index c0b77a7..9385404 100644
--- a/lib/fog/aws/parsers/sns/subscribe.rb
+++ b/lib/fog/aws/parsers/sns/subscribe.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class Subscribe < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value.strip
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sns/unsubscribe.rb b/lib/fog/aws/parsers/sns/unsubscribe.rb
index dcab5e4..5efd437 100644
--- a/lib/fog/aws/parsers/sns/unsubscribe.rb
+++ b/lib/fog/aws/parsers/sns/unsubscribe.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SNS
-
         class Unsubscribe < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sqs/basic.rb b/lib/fog/aws/parsers/sqs/basic.rb
index f997631..2ea4e20 100644
--- a/lib/fog/aws/parsers/sqs/basic.rb
+++ b/lib/fog/aws/parsers/sqs/basic.rb
@@ -3,7 +3,6 @@ module Fog
     module AWS
       module SQS
         class Basic < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -14,9 +13,7 @@ module Fog
               @response['ResponseMetadata'][name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sqs/create_queue.rb b/lib/fog/aws/parsers/sqs/create_queue.rb
index 516feae..59614e1 100644
--- a/lib/fog/aws/parsers/sqs/create_queue.rb
+++ b/lib/fog/aws/parsers/sqs/create_queue.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SQS
-
         class CreateQueue < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['QueueUrl'] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sqs/get_queue_attributes.rb b/lib/fog/aws/parsers/sqs/get_queue_attributes.rb
index dbbd655..50f0786 100644
--- a/lib/fog/aws/parsers/sqs/get_queue_attributes.rb
+++ b/lib/fog/aws/parsers/sqs/get_queue_attributes.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SQS
-
         class GetQueueAttributes < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {}, 'Attributes' => {}}
           end
@@ -26,9 +24,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sqs/list_queues.rb b/lib/fog/aws/parsers/sqs/list_queues.rb
index 8f3664b..0e47f37 100644
--- a/lib/fog/aws/parsers/sqs/list_queues.rb
+++ b/lib/fog/aws/parsers/sqs/list_queues.rb
@@ -3,7 +3,6 @@ module Fog
     module AWS
       module SQS
         class ListQueues < Fog::Parsers::Base
-
           def reset
             @response = { 'QueueUrls' => [], 'ResponseMetadata' => {} }
           end
@@ -16,9 +15,7 @@ module Fog
               @response['QueueUrls'] << @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sqs/receive_message.rb b/lib/fog/aws/parsers/sqs/receive_message.rb
index 75a56ba..d39b693 100644
--- a/lib/fog/aws/parsers/sqs/receive_message.rb
+++ b/lib/fog/aws/parsers/sqs/receive_message.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SQS
-
         class ReceiveMessage < Fog::Parsers::Base
-
           def reset
             @message  = { 'Attributes' => {} }
             @response = { 'ResponseMetadata' => {}, 'Message' => []}
@@ -32,9 +30,7 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sqs/send_message.rb b/lib/fog/aws/parsers/sqs/send_message.rb
index 00374bf..e2ba085 100644
--- a/lib/fog/aws/parsers/sqs/send_message.rb
+++ b/lib/fog/aws/parsers/sqs/send_message.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module SQS
-
         class SendMessage < Fog::Parsers::Base
-
           def reset
             @response = { 'ResponseMetadata' => {} }
           end
@@ -19,9 +17,7 @@ module Fog
               @response['MD5OfMessageBody'] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/access_control_list.rb b/lib/fog/aws/parsers/storage/access_control_list.rb
index 7f65acf..53247e1 100644
--- a/lib/fog/aws/parsers/storage/access_control_list.rb
+++ b/lib/fog/aws/parsers/storage/access_control_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class AccessControlList < Fog::Parsers::Base
-
           def reset
             @in_access_control_list = false
             @grant = { 'Grantee' => {} }
@@ -37,9 +35,7 @@ module Fog
               @grant['Grantee'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/complete_multipart_upload.rb b/lib/fog/aws/parsers/storage/complete_multipart_upload.rb
index b12cc72..6c02c71 100644
--- a/lib/fog/aws/parsers/storage/complete_multipart_upload.rb
+++ b/lib/fog/aws/parsers/storage/complete_multipart_upload.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class CompleteMultipartUpload < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/copy_object.rb b/lib/fog/aws/parsers/storage/copy_object.rb
index bf7df5f..7223f4a 100644
--- a/lib/fog/aws/parsers/storage/copy_object.rb
+++ b/lib/fog/aws/parsers/storage/copy_object.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class CopyObject < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'ETag'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = Time.parse(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/cors_configuration.rb b/lib/fog/aws/parsers/storage/cors_configuration.rb
index 654f34f..f969feb 100644
--- a/lib/fog/aws/parsers/storage/cors_configuration.rb
+++ b/lib/fog/aws/parsers/storage/cors_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class CorsConfiguration < Fog::Parsers::Base
           def reset
             @in_cors_configuration_list = false
@@ -32,9 +31,7 @@ module Fog
               (@cors_rule[name] ||= []) << value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/delete_multiple_objects.rb b/lib/fog/aws/parsers/storage/delete_multiple_objects.rb
index 82679d1..6d6198d 100644
--- a/lib/fog/aws/parsers/storage/delete_multiple_objects.rb
+++ b/lib/fog/aws/parsers/storage/delete_multiple_objects.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class DeleteMultipleObjects < Fog::Parsers::Base
-
           def reset
             @deleted = { 'Deleted' => {} }
             @error = { 'Error' => {} }
@@ -40,11 +38,8 @@ module Fog
               @error['Error'][name] = value
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/parsers/storage/get_bucket.rb b/lib/fog/aws/parsers/storage/get_bucket.rb
index a2d55f7..0a98d30 100644
--- a/lib/fog/aws/parsers/storage/get_bucket.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucket < Fog::Parsers::Base
-
           def reset
             @object = { 'Owner' => {} }
             @response = { 'Contents' => [], 'CommonPrefixes' => [] }
@@ -53,9 +51,7 @@ module Fog
               @object[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb b/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb
index 54f8983..ef9bc79 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketLifecycle < Fog::Parsers::Base
-
           def reset
             @expiration = {}
             @transition = {}
diff --git a/lib/fog/aws/parsers/storage/get_bucket_location.rb b/lib/fog/aws/parsers/storage/get_bucket_location.rb
index d176387..920f697 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_location.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_location.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketLocation < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'LocationConstraint'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_bucket_logging.rb b/lib/fog/aws/parsers/storage/get_bucket_logging.rb
index 2c1d470..931aeaa 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_logging.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_logging.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketLogging < Fog::Parsers::Base
-
           def reset
             @grant = { 'Grantee' => {} }
             @response = { 'BucketLoggingStatus' => {} }
@@ -31,9 +29,7 @@ module Fog
               @grant['Grantee'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb b/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb
index dcd210d..dae2f2d 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketObjectVersions < Fog::Parsers::Base
-
           def reset
             @delete_marker = { 'Owner' => {} }
             @version = { 'Owner' => {} }
@@ -79,9 +77,7 @@ module Fog
               end[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_bucket_tagging.rb b/lib/fog/aws/parsers/storage/get_bucket_tagging.rb
index 3f5319c..3b26b89 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_tagging.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_tagging.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketTagging < Fog::Parsers::Base
-
           def reset
             @in_tag = {}
             @response = {'BucketTagging' => {}}
@@ -28,9 +26,7 @@ module Fog
               @in_tag = {@in_tag.keys.first => value}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_bucket_versioning.rb b/lib/fog/aws/parsers/storage/get_bucket_versioning.rb
index cabb52d..549c6eb 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_versioning.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_versioning.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketVersioning < Fog::Parsers::Base
-
           def reset
             @response = { 'VersioningConfiguration' => {} }
           end
@@ -15,9 +13,7 @@ module Fog
               @response['VersioningConfiguration'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_bucket_website.rb b/lib/fog/aws/parsers/storage/get_bucket_website.rb
index e4f3bdc..794489b 100644
--- a/lib/fog/aws/parsers/storage/get_bucket_website.rb
+++ b/lib/fog/aws/parsers/storage/get_bucket_website.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetBucketWebsite < Fog::Parsers::Base
-
           def reset
             @response = { 'ErrorDocument' => {}, 'IndexDocument' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['IndexDocument'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_request_payment.rb b/lib/fog/aws/parsers/storage/get_request_payment.rb
index 1d94e2f..91edb28 100644
--- a/lib/fog/aws/parsers/storage/get_request_payment.rb
+++ b/lib/fog/aws/parsers/storage/get_request_payment.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetRequestPayment < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'Payer'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/get_service.rb b/lib/fog/aws/parsers/storage/get_service.rb
index 7642818..403cb81 100644
--- a/lib/fog/aws/parsers/storage/get_service.rb
+++ b/lib/fog/aws/parsers/storage/get_service.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class GetService < Fog::Parsers::Base
-
           def reset
             @bucket = {}
             @response = { 'Owner' => {}, 'Buckets' => [] }
@@ -23,9 +21,7 @@ module Fog
               @bucket[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb b/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb
index ec51f86..df5d663 100644
--- a/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb
+++ b/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class InitiateMultipartUpload < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/list_multipart_uploads.rb b/lib/fog/aws/parsers/storage/list_multipart_uploads.rb
index bd53757..0692f00 100644
--- a/lib/fog/aws/parsers/storage/list_multipart_uploads.rb
+++ b/lib/fog/aws/parsers/storage/list_multipart_uploads.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class ListMultipartUploads < Fog::Parsers::Base
-
           def reset
             @upload = { 'Initiator' => {}, 'Owner' => {} }
             @response = { 'Upload' => [] }
@@ -47,9 +45,7 @@ module Fog
               @upload = { 'Initiator' => {}, 'Owner' => {} }
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/storage/list_parts.rb b/lib/fog/aws/parsers/storage/list_parts.rb
index 0a774e4..4cb6916 100644
--- a/lib/fog/aws/parsers/storage/list_parts.rb
+++ b/lib/fog/aws/parsers/storage/list_parts.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module AWS
-
         class ListParts < Fog::Parsers::Base
-
           def reset
             @part = {}
             @response = { 'Initiator' => {}, 'Part' => [] }
@@ -31,9 +29,7 @@ module Fog
               @part[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sts/assume_role.rb b/lib/fog/aws/parsers/sts/assume_role.rb
index 2c28fce..f29a725 100644
--- a/lib/fog/aws/parsers/sts/assume_role.rb
+++ b/lib/fog/aws/parsers/sts/assume_role.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module AWS
       module STS
-
         class AssumeRole < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -21,9 +19,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/parsers/sts/get_session_token.rb b/lib/fog/aws/parsers/sts/get_session_token.rb
index 9eed371..cb57d20 100644
--- a/lib/fog/aws/parsers/sts/get_session_token.rb
+++ b/lib/fog/aws/parsers/sts/get_session_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module AWS
       module STS
-
         class GetSessionToken < Fog::Parsers::Base
 					# http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?CreatingFedTokens.html
 
@@ -20,9 +19,7 @@ module Fog
               @response[name] = @value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/rds.rb b/lib/fog/aws/rds.rb
index 233dc6f..0759391 100644
--- a/lib/fog/aws/rds.rb
+++ b/lib/fog/aws/rds.rb
@@ -10,7 +10,7 @@ module Fog
       class AuthorizationAlreadyExists < Fog::Errors::Error; end
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :version
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :version, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/rds'
       request :describe_events
@@ -57,6 +57,8 @@ module Fog
       request :describe_db_log_files
       request :download_db_logfile_portion
 
+      request :promote_read_replica
+
       model_path 'fog/aws/models/rds'
       model       :server
       collection  :servers
@@ -83,7 +85,6 @@ module Fog
       collection  :log_files
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, region|
             hash[region] = Hash.new do |region_hash, key|
@@ -111,14 +112,12 @@ module Fog
         end
 
         def initialize(options={})
-
           @use_iam_profile = options[:use_iam_profile]
           @region = options[:region] || 'us-east-1'
 
           unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'sa-east-1'].include?(@region)
             raise ArgumentError, "Unknown region: #{@region.inspect}"
           end
-
         end
 
         def data
@@ -132,7 +131,6 @@ module Fog
         def setup_credentials(options)
           @aws_access_key_id = options[:aws_access_key_id]
         end
-
       end
 
       class Real
@@ -160,6 +158,8 @@ module Fog
         def initialize(options={})
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.rds'
           @connection_options     = options[:connection_options] || {}
 
           @region     = options[:region]      || 'us-east-1'
@@ -210,39 +210,46 @@ module Fog
             }
           )
 
-          begin
-            @connection.request({
-              :body       => body,
-              :expects    => 200,
-              :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
-              :idempotent => idempotent,
-              :method     => 'POST',
-              :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError => error
-            match = Fog::AWS::Errors.match_error(error)
-            if match.empty?
-              case error.message
-              when 'Not Found'
-                raise Fog::AWS::RDS::NotFound.slurp(error, 'RDS Instance not found')
-              else
-                raise
-              end
-            else
-              raise case match[:code]
-                    when 'DBInstanceNotFound', 'DBParameterGroupNotFound', 'DBSnapshotNotFound', 'DBSecurityGroupNotFound'
-                      Fog::AWS::RDS::NotFound.slurp(error, match[:message])
-                    when 'DBParameterGroupAlreadyExists'
-                      Fog::AWS::RDS::IdentifierTaken.slurp(error, match[:message])
-                    when 'AuthorizationAlreadyExists'
-                      Fog::AWS::RDS::AuthorizationAlreadyExists.slurp(error, match[:message])
-                    else
-                      Fog::AWS::RDS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
-                    end
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
             end
+          else
+            _request(body, idempotent, parser)
           end
         end
 
+        def _request(body, idempotent, parser)
+          @connection.request({
+            :body       => body,
+            :expects    => 200,
+            :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
+            :idempotent => idempotent,
+            :method     => 'POST',
+            :parser     => parser
+          })
+        rescue Excon::Errors::HTTPStatusError => error
+          match = Fog::AWS::Errors.match_error(error)
+          if match.empty?
+            case error.message
+            when 'Not Found'
+              raise Fog::AWS::RDS::NotFound.slurp(error, 'RDS Instance not found')
+            else
+              raise
+            end
+          else
+            raise case match[:code]
+                  when 'DBInstanceNotFound', 'DBParameterGroupNotFound', 'DBSnapshotNotFound', 'DBSecurityGroupNotFound'
+                    Fog::AWS::RDS::NotFound.slurp(error, match[:message])
+                  when 'DBParameterGroupAlreadyExists'
+                    Fog::AWS::RDS::IdentifierTaken.slurp(error, match[:message])
+                  when 'AuthorizationAlreadyExists'
+                    Fog::AWS::RDS::AuthorizationAlreadyExists.slurp(error, match[:message])
+                  else
+                    Fog::AWS::RDS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
+                  end
+          end
+        end
       end
     end
   end
diff --git a/lib/fog/aws/redshift.rb b/lib/fog/aws/redshift.rb
index 66e0a53..7914260 100644
--- a/lib/fog/aws/redshift.rb
+++ b/lib/fog/aws/redshift.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/redshift'
 
@@ -47,11 +47,9 @@ module Fog
       request :revoke_snapshot_access
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -75,13 +73,13 @@ module Fog
         # ==== Returns
         # * Redshift object with connection to AWS.
 
-
         def initialize(options={})
-
           @use_iam_profile = options[:use_iam_profile]
           @region = options[:region] || 'us-east-1'
           setup_credentials(options)
 
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.redshift'
           @connection_options     = options[:connection_options] || {}
           @host = options[:host] || "redshift.#{@region}.amazonaws.com"
           @version = '2012-12-01'
@@ -91,8 +89,7 @@ module Fog
           @scheme     = options[:scheme]      || 'https'
 
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
-       end
-
+        end
 
         private
         def setup_credentials(options)
@@ -116,9 +113,19 @@ module Fog
           params[:headers]['x-amz-redshift-version'] = @version
           params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
           params[:headers]['Authorization'] = @signer.sign params, date
+          params[:parser] = parser
+
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(params, &block)
+            end
+          else
+            _request(params, &block)
+          end
+        end
 
-          response = @connection.request(params.merge(:parser => parser), &block)
-          response
+        def _request(params, &block)
+          @connection.request(params, &block)
         end
       end
     end
diff --git a/lib/fog/aws/region_methods.rb b/lib/fog/aws/region_methods.rb
index 80f56d6..57eacdc 100644
--- a/lib/fog/aws/region_methods.rb
+++ b/lib/fog/aws/region_methods.rb
@@ -1,13 +1,11 @@
 module Fog
   module AWS
     module RegionMethods
-
-      def validate_aws_region region
-        unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'sa-east-1'].include?(region)
+      def validate_aws_region host, region
+        if host.end_with?('.amazonaws.com') and not ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'sa-east-1'].include?(region)
           raise ArgumentError, "Unknown region: #{region.inspect}"
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb b/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb
index 9b986ab..3b110bb 100644
--- a/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb
+++ b/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Creates a new Auto Scaling group with the specified name. Once the
@@ -92,21 +90,19 @@ module Fog
             :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {})
           unexpected_options = options.keys - ExpectedOptions[:create_auto_scaling_group]
           unless unexpected_options.empty?
             raise Fog::AWS::AutoScaling::ValidationError.new("Options #{unexpected_options.join(',')} should not be included in request")
           end
 
-          if self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          if self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::IdentifierTaken.new("AutoScalingGroup by this name already exists - A group with the name #{auto_scaling_group_name} already exists")
           end
-          unless self.data[:launch_configurations].has_key?(launch_configuration_name)
+          unless self.data[:launch_configurations].key?(launch_configuration_name)
             raise Fog::AWS::AutoScaling::ValidationError.new('Launch configuration name not found - null')
           end
           self.data[:auto_scaling_groups][auto_scaling_group_name] = {
@@ -138,9 +134,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb b/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb
index c0ba191..67a86bb 100644
--- a/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb
+++ b/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Creates a new launch configuration. When created, the new launch
@@ -41,6 +39,8 @@ module Fog
         #     market price.
         #   * 'UserData'<~String> - The user data available to the launched
         #     Amazon EC2 instances.
+        #   * 'EbsOptimized'<~Boolean> - Whether the instance is optimized for
+        #     EBS I/O. Not required, default false.
         #
         # ==== Returns
         # * response<~Excon::Response>:
@@ -73,19 +73,18 @@ module Fog
             :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def create_launch_configuration(image_id, instance_type, launch_configuration_name, options = {})
-          if self.data[:launch_configurations].has_key?(launch_configuration_name)
+          if self.data[:launch_configurations].key?(launch_configuration_name)
             raise Fog::AWS::AutoScaling::IdentifierTaken.new("Launch Configuration by this name already exists - A launch configuration already exists with the name #{launch_configuration_name}")
           end
           self.data[:launch_configurations][launch_configuration_name] = {
             'AssociatePublicIpAddress' => nil,
             'BlockDeviceMappings'     => [],
             'CreatedTime'             => Time.now.utc,
+            'EbsOptimized'            => false,
             'IamInstanceProfile'      => nil,
             'ImageId'                 => image_id,
             'InstanceMonitoring'      => {'Enabled' => true},
@@ -106,9 +105,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb b/lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb
index 7cb2aef..d102a8b 100644
--- a/lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb
+++ b/lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Creates new tags or updates existing tags for an Auto Scaling group.
@@ -44,20 +42,16 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def create_or_update_tags(tags)
           if tags.to_a.empty?
             raise Fog::AWS::AutoScaling::ValidationError.new("1 validation error detected: Value null at 'tags' failed to satisfy constraint: Member must not be null")
           end
           raise Fog::Mock::NotImplementedError
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb b/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb
index cf149c0..d0493a8 100644
--- a/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb
+++ b/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Deletes the specified auto scaling group if the group has no
@@ -34,11 +32,9 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def delete_auto_scaling_group(auto_scaling_group_name, options = {})
           unless self.data[:auto_scaling_groups].delete(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError, "The auto scaling group '#{auto_scaling_group_name}' does not exist."
@@ -54,7 +50,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb b/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb
index d4b092d..753c537 100644
--- a/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb
+++ b/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Deletes the specified launch configuration.
@@ -32,11 +30,9 @@ module Fog
             :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
           })
         end
-
       end
 
       class Mock
-
         def delete_launch_configuration(launch_configuration_name)
           unless self.data[:launch_configurations].delete(launch_configuration_name)
             raise Fog::AWS::AutoScaling::NotFound, "The launch configuration '#{launch_configuration_name}' does not exist."
@@ -49,9 +45,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb b/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb
index 6a10707..2c37343 100644
--- a/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb
+++ b/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Deletes notifications created by put_notification_configuration.
@@ -31,16 +29,14 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           })
         end
-
       end
 
       class Mock
-
         def delete_notification_configuration(auto_scaling_group_name, topic_arn)
-          unless self.data[:notification_configurations].has_key?(auto_scaling_group_name)
+          unless self.data[:notification_configurations].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError.new('AutoScalingGroup name not found - %s' % auto_scaling_group_name)
           end
-          unless self.data[:notification_configurations][auto_scaling_group_name].has_key?(topic_arn)
+          unless self.data[:notification_configurations][auto_scaling_group_name].key?(topic_arn)
             raise Fog::AWS::AutoScaling::ValidationError.new("Notification Topic '#{topic_arn}' doesn't exist for '#{self.data[:owner_id]}'")
           end
 
@@ -57,7 +53,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/delete_policy.rb b/lib/fog/aws/requests/auto_scaling/delete_policy.rb
index 31e1afa..307a05c 100644
--- a/lib/fog/aws/requests/auto_scaling/delete_policy.rb
+++ b/lib/fog/aws/requests/auto_scaling/delete_policy.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Deletes a policy created by put_scaling_policy
@@ -31,11 +29,9 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           })
         end
-
       end
 
       class Mock
-
         def delete_policy(auto_scaling_group_name, policy_name)
           unless self.data[:scaling_policies].delete(policy_name)
             raise Fog::AWS::AutoScaling::NotFound, "The scaling policy '#{policy_name}' does not exist."
@@ -48,9 +44,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb b/lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb
index 8f23322..5e2b948 100644
--- a/lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb
+++ b/lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Deletes a scheduled action previously created using the
@@ -32,17 +30,13 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           })
         end
-
       end
 
       class Mock
-
         def delete_scheduled_action(auto_scaling_group_name, scheduled_action_name)
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/delete_tags.rb b/lib/fog/aws/requests/auto_scaling/delete_tags.rb
index e447feb..cfe6dcf 100644
--- a/lib/fog/aws/requests/auto_scaling/delete_tags.rb
+++ b/lib/fog/aws/requests/auto_scaling/delete_tags.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Removes the specified tags or a set of tags from a set of resources.
@@ -44,20 +42,16 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def delete_tags(tags)
           if tags.to_a.empty?
             raise Fog::AWS::AutoScaling::ValidationError.new("1 validation error detected: Value null at 'tags' failed to satisfy constraint: Member must not be null")
           end
           raise Fog::Mock::NotImplementedError
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb b/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb
index e26f2ae..602abad 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_adjustment_types'
 
         # Returns policy adjustment types for use in the put_scaling_policy
@@ -28,11 +26,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::AutoScaling::DescribeAdjustmentTypes.new
           })
         end
-
       end
 
       class Mock
-
         def describe_adjustment_types()
           results = { 'AdjustmentTypes' => [] }
           self.data[:adjustment_types].each do |adjustment_type|
@@ -46,7 +42,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb b/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb
index 5d987af..6c27e3e 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_auto_scaling_groups'
 
         # Returns a full description of each Auto Scaling group in the given
@@ -104,11 +102,9 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeAutoScalingGroups.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_auto_scaling_groups(options = {})
           results = { 'AutoScalingGroups' => [] }
           asg_set = self.data[:auto_scaling_groups]
@@ -132,9 +128,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb b/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb
index 1de1448..18f215e 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_auto_scaling_instances'
 
         # Returns a description of each Auto Scaling instance in the
@@ -65,11 +63,9 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeAutoScalingInstances.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_auto_scaling_instances(options = {})
           results = { 'AutoScalingInstances' => [] }
           self.data[:auto_scaling_groups].each do |asg_name, asg_data|
@@ -87,9 +83,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb b/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb
index 269ed03..8764e71 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types'
 
         # Returns a list of all notification types that are supported by Auto
@@ -28,11 +26,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::AutoScaling::DescribeAutoScalingNotificationTypes.new
           })
         end
-
       end
 
       class Mock
-
         def describe_auto_scaling_notification_types()
           results = {
             'AutoScalingNotificationTypes' => [],
@@ -48,7 +44,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb b/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb
index 33ff84b..3e85b0c 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_launch_configurations'
 
         # Returns a full description of the launch configurations given the
@@ -80,11 +78,9 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeLaunchConfigurations.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_launch_configurations(options = {})
           launch_configuration_names = options.delete('LaunchConfigurationNames')
           # even a nil object will turn into an empty array
@@ -109,9 +105,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb b/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb
index cd21705..dd10085 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_metric_collection_types'
 
         # Returns a list of metrics and a corresponding list of granularities
@@ -30,11 +28,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::AutoScaling::DescribeMetricCollectionTypes.new
           })
         end
-
       end
 
       class Mock
-
         def describe_metric_collection_types()
           results = {
             'Granularities' => [],
@@ -54,7 +50,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb b/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb
index bc701fb..247ae54 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_notification_configurations'
 
         # Returns a list of notification actions associated with Auto Scaling
@@ -44,11 +42,9 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeNotificationConfigurations.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_notification_configurations(options = {})
           results = { 'NotificationConfigurations' => [] }
           (options['AutoScalingGroupNames']||self.data[:notification_configurations].keys).each do |asg_name|
@@ -71,9 +67,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_policies.rb b/lib/fog/aws/requests/auto_scaling/describe_policies.rb
index d88a3fa..c8fa282 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_policies.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_policies.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_policies'
 
         # Returns descriptions of what each policy does. This action supports
@@ -69,11 +67,9 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribePolicies.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_policies(options = {})
           results = { 'ScalingPolicies' => [] }
           policy_set = self.data[:scaling_policies]
@@ -103,9 +99,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb b/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb
index de0e993..1673dd2 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_scaling_activities'
 
         # Returns the scaling activities for the specified Auto Scaling group.
@@ -72,17 +70,13 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeScalingActivities.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_scaling_activities(options = {})
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb b/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb
index b6b8cf7..63170a7 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_scaling_process_types'
 
         # Returns scaling process types for use in the resume_processes and
@@ -29,11 +27,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::AutoScaling::DescribeScalingProcessTypes.new
           })
         end
-
       end
 
       class Mock
-
         def describe_scaling_process_types()
           results = { 'Processes' => [] }
           self.data[:process_types].each do |process_type|
@@ -47,9 +43,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb b/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb
index ed6d3d4..23b3504 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_scheduled_actions'
 
         # List all the actions scheduled for your Auto Scaling group that
@@ -72,17 +70,13 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeScheduledActions.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_scheduled_actions(options = {})
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_tags.rb b/lib/fog/aws/requests/auto_scaling/describe_tags.rb
index 847e612..e20bdc4 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_tags.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_tags.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_tags'
 
         # Lists the Auto Scaling group tags.
@@ -58,17 +56,13 @@ module Fog
             :parser  => Fog::Parsers::AWS::AutoScaling::DescribeTags.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def describe_tags(options={})
           raise Fog::Mock::NotImplementedError
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb b/lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb
index 00ba4ba..96e39c0 100644
--- a/lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb
+++ b/lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/describe_termination_policy_types'
 
         # Returns a list of all termination policies supported by Auto Scaling.
@@ -27,11 +25,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::AutoScaling::DescribeTerminationPolicyTypes.new
           })
         end
-
       end
 
       class Mock
-
         def describe_termination_policy_types()
           results = { 'TerminationPolicyTypes' => [] }
           self.data[:termination_policy_types].each do |termination_policy_type|
@@ -45,9 +41,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb b/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb
index 7b8f7f6..cdee756 100644
--- a/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb
+++ b/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Disables monitoring of group metrics for the Auto Scaling group
@@ -36,21 +34,17 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def disable_metrics_collection(auto_scaling_group_name, options = {})
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             Fog::AWS::AutoScaling::ValidationError.new("Group #{auto_scaling_group_name} not found")
           end
 
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb b/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb
index 594decc..5fc414e 100644
--- a/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb
+++ b/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Enables monitoring of group metrics for the Auto Scaling group
@@ -43,13 +41,11 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def enable_metrics_collection(auto_scaling_group_name, granularity, options = {})
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             Fog::AWS::AutoScaling::ValidationError.new("Group #{auto_scaling_group_name} not found")
           end
           unless self.data[:metric_collection_types][:granularities].include?(granularity)
@@ -58,9 +54,7 @@ module Fog
 
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/execute_policy.rb b/lib/fog/aws/requests/auto_scaling/execute_policy.rb
index 30e980f..e6cd519 100644
--- a/lib/fog/aws/requests/auto_scaling/execute_policy.rb
+++ b/lib/fog/aws/requests/auto_scaling/execute_policy.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Runs the policy you create for your Auto Scaling group in
@@ -34,17 +32,13 @@ module Fog
             :parser      => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def execute_policy(policy_name, options = {})
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb b/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb
index fb0e3ef..0ba8c01 100644
--- a/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb
+++ b/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/put_notification_configuration'
 
         # Creates a notification configuration for an Auto Scaling group. To
@@ -35,13 +33,11 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::PutNotificationConfiguration.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def put_notification_configuration(auto_scaling_group_name, notification_types, topic_arn)
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError.new("AutoScalingGroup name not found - #{auto_scaling_group_name}")
           end
           if notification_types.to_a.empty?
@@ -62,9 +58,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb b/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb
index 51552d8..f73c1b4 100644
--- a/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb
+++ b/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/put_scaling_policy'
 
         # Creates or updates a policy for an Auto Scaling group. To update an
@@ -50,13 +48,11 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::PutScalingPolicy.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {})
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError.new('Auto Scaling Group name not found - null')
           end
           self.data[:scaling_policies][policy_name] = {
@@ -77,9 +73,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb b/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb
index bcd9932..b9be811 100644
--- a/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb
+++ b/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Creates a scheduled scaling action for a Auto Scaling group. If you
@@ -54,17 +52,13 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def put_scheduled_update_group_action(auto_scaling_group_name, scheduled_policy_name, time, options = {})
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/resume_processes.rb b/lib/fog/aws/requests/auto_scaling/resume_processes.rb
index bd653fc..0356221 100644
--- a/lib/fog/aws/requests/auto_scaling/resume_processes.rb
+++ b/lib/fog/aws/requests/auto_scaling/resume_processes.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Resumes Auto Scaling processes for an Auto Scaling group.
@@ -34,13 +32,11 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def resume_processes(auto_scaling_group_name, options = {})
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError.new("AutoScalingGroup name not found - no such group: #{auto_scaling_group_name}")
           end
 
@@ -51,9 +47,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb b/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb
index 5b173a6..b7c11be 100644
--- a/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb
+++ b/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Adjusts the desired size of the AutoScalingGroup by initiating
@@ -61,13 +59,11 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def set_desired_capacity(auto_scaling_group_name, desired_capacity, options = {})
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             Fog::AWS::AutoScaling::ValidationError.new('AutoScalingGroup name not found - null')
           end
           self.data[:auto_scaling_groups][auto_scaling_group_name]['DesiredCapacity'] = desired_capacity
@@ -79,9 +75,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/set_instance_health.rb b/lib/fog/aws/requests/auto_scaling/set_instance_health.rb
index 68d07f5..775806e 100644
--- a/lib/fog/aws/requests/auto_scaling/set_instance_health.rb
+++ b/lib/fog/aws/requests/auto_scaling/set_instance_health.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Sets the health status of an instance.
@@ -35,11 +33,9 @@ module Fog
             :parser        => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def set_instance_health(health_status, instance_id, options = {})
           unless self.data[:health_states].include?(health_status)
             raise Fog::AWS::AutoScaling::ValidationError.new('Valid instance health states are: [#{self.data[:health_states].join(", ")}].')
@@ -47,9 +43,7 @@ module Fog
 
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/suspend_processes.rb b/lib/fog/aws/requests/auto_scaling/suspend_processes.rb
index 68edf0f..7dcd419 100644
--- a/lib/fog/aws/requests/auto_scaling/suspend_processes.rb
+++ b/lib/fog/aws/requests/auto_scaling/suspend_processes.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Suspends Auto Scaling processes for an Auto Scaling group. To suspend
@@ -37,13 +35,11 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def suspend_processes(auto_scaling_group_name, options = {})
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError.new("AutoScalingGroup name not found - no such group: #{auto_scaling_group_name}")
           end
 
@@ -54,9 +50,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb b/lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb
index 2e42743..4242543 100644
--- a/lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb
+++ b/lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class AutoScaling
-
       class Real
-
         require 'fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group'
 
         # Terminates the specified instance. Optionally, the desired group size
@@ -49,17 +47,13 @@ module Fog
             :parser                          => Fog::Parsers::AWS::AutoScaling::TerminateInstanceInAutoScalingGroup.new
           })
         end
-
       end
 
       class Mock
-
         def terminate_instance_in_auto_scaling_group(instance_id, should_decrement_desired_capacity)
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb b/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb
index f65fde0..5a53fc8 100644
--- a/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb
+++ b/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class AutoScaling
       class Real
-
         require 'fog/aws/parsers/auto_scaling/basic'
 
         # Updates the configuration for the specified AutoScalingGroup.
@@ -67,18 +66,16 @@ module Fog
             :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def update_auto_scaling_group(auto_scaling_group_name, options = {})
           unexpected_options = options.keys - ExpectedOptions[:update_auto_scaling_group]
           unless unexpected_options.empty?
             raise Fog::AWS::AutoScaling::ValidationError.new("Options #{unexpected_options.join(',')} should not be included in request")
           end
 
-          unless self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
+          unless self.data[:auto_scaling_groups].key?(auto_scaling_group_name)
             raise Fog::AWS::AutoScaling::ValidationError.new('AutoScalingGroup name not found - null')
           end
           self.data[:auto_scaling_groups][auto_scaling_group_name].merge!(options)
@@ -90,9 +87,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/beanstalk/check_dns_availability.rb b/lib/fog/aws/requests/beanstalk/check_dns_availability.rb
index 8bfbd38..afebeb5 100644
--- a/lib/fog/aws/requests/beanstalk/check_dns_availability.rb
+++ b/lib/fog/aws/requests/beanstalk/check_dns_availability.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/check_dns_availability'
 
         # Checks if the specified CNAME is available.
diff --git a/lib/fog/aws/requests/beanstalk/create_application.rb b/lib/fog/aws/requests/beanstalk/create_application.rb
index 3d4fabb..7e1ee4b 100644
--- a/lib/fog/aws/requests/beanstalk/create_application.rb
+++ b/lib/fog/aws/requests/beanstalk/create_application.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/create_application'
 
         # Creates an application that has one configuration template named default and no application versions.
diff --git a/lib/fog/aws/requests/beanstalk/create_application_version.rb b/lib/fog/aws/requests/beanstalk/create_application_version.rb
index eb31810..d4a48a3 100644
--- a/lib/fog/aws/requests/beanstalk/create_application_version.rb
+++ b/lib/fog/aws/requests/beanstalk/create_application_version.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/create_application_version'
 
         # Creates an application version for the specified application.
diff --git a/lib/fog/aws/requests/beanstalk/create_configuration_template.rb b/lib/fog/aws/requests/beanstalk/create_configuration_template.rb
index 7eb6ba3..d4adc4f 100644
--- a/lib/fog/aws/requests/beanstalk/create_configuration_template.rb
+++ b/lib/fog/aws/requests/beanstalk/create_configuration_template.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/create_configuration_template'
 
         # Creates a configuration template. Templates are associated with a specific application and are used to
diff --git a/lib/fog/aws/requests/beanstalk/create_environment.rb b/lib/fog/aws/requests/beanstalk/create_environment.rb
index f0f718d..cbf3e94 100644
--- a/lib/fog/aws/requests/beanstalk/create_environment.rb
+++ b/lib/fog/aws/requests/beanstalk/create_environment.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/create_environment'
 
         # Launches an environment for the specified application using the specified configuration.
diff --git a/lib/fog/aws/requests/beanstalk/create_storage_location.rb b/lib/fog/aws/requests/beanstalk/create_storage_location.rb
index 8ae384b..6b67e0a 100644
--- a/lib/fog/aws/requests/beanstalk/create_storage_location.rb
+++ b/lib/fog/aws/requests/beanstalk/create_storage_location.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/create_storage_location'
 
         # Creates the Amazon S3 storage location for the account.
diff --git a/lib/fog/aws/requests/beanstalk/delete_application.rb b/lib/fog/aws/requests/beanstalk/delete_application.rb
index cc436a3..b0b4510 100644
--- a/lib/fog/aws/requests/beanstalk/delete_application.rb
+++ b/lib/fog/aws/requests/beanstalk/delete_application.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Deletes the specified application along with all associated versions and configurations.
diff --git a/lib/fog/aws/requests/beanstalk/delete_application_version.rb b/lib/fog/aws/requests/beanstalk/delete_application_version.rb
index 9cfa16a..7e48a64 100644
--- a/lib/fog/aws/requests/beanstalk/delete_application_version.rb
+++ b/lib/fog/aws/requests/beanstalk/delete_application_version.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Deletes the specified version from the specified application.
diff --git a/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb b/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb
index 0d6ba30..0102158 100644
--- a/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb
+++ b/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Deletes the specified configuration template.
diff --git a/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb b/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb
index 0294a45..bcaee5e 100644
--- a/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb
+++ b/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Deletes the draft configuration associated with the running environment.
diff --git a/lib/fog/aws/requests/beanstalk/describe_application_versions.rb b/lib/fog/aws/requests/beanstalk/describe_application_versions.rb
index 66d7d18..b23fa74 100644
--- a/lib/fog/aws/requests/beanstalk/describe_application_versions.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_application_versions.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_application_versions'
 
         # Returns descriptions for existing application versions.
diff --git a/lib/fog/aws/requests/beanstalk/describe_applications.rb b/lib/fog/aws/requests/beanstalk/describe_applications.rb
index c0af5db..28f6e85 100644
--- a/lib/fog/aws/requests/beanstalk/describe_applications.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_applications.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_applications'
 
         # Returns the descriptions of existing applications.
diff --git a/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb b/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb
index 60c83ba..61b942d 100644
--- a/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_configuration_options'
 
         # Describes the configuration options that are used in a particular configuration template or environment,
diff --git a/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb b/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb
index 15810fa..6c3e261 100644
--- a/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_configuration_settings'
 
         # Returns a description of the settings for the specified configuration set, that is, either a configuration
diff --git a/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb b/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb
index 0f16500..3ee6852 100644
--- a/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_environment_resources'
 
         # Returns AWS resources for this environment.
diff --git a/lib/fog/aws/requests/beanstalk/describe_environments.rb b/lib/fog/aws/requests/beanstalk/describe_environments.rb
index 653e45a..e0c5733 100644
--- a/lib/fog/aws/requests/beanstalk/describe_environments.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_environments.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_environments'
 
         # Returns descriptions for existing environments.
diff --git a/lib/fog/aws/requests/beanstalk/describe_events.rb b/lib/fog/aws/requests/beanstalk/describe_events.rb
index cb52728..ebbe772 100644
--- a/lib/fog/aws/requests/beanstalk/describe_events.rb
+++ b/lib/fog/aws/requests/beanstalk/describe_events.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/describe_events'
 
         # Returns list of event descriptions matching criteria up to the last 6 weeks.
diff --git a/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb b/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb
index f2be253..d478af6 100644
--- a/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb
+++ b/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/list_available_solution_stacks'
 
         # Checks if the specified CNAME is available.
diff --git a/lib/fog/aws/requests/beanstalk/rebuild_environment.rb b/lib/fog/aws/requests/beanstalk/rebuild_environment.rb
index 1cbd8a2..e722900 100644
--- a/lib/fog/aws/requests/beanstalk/rebuild_environment.rb
+++ b/lib/fog/aws/requests/beanstalk/rebuild_environment.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Deletes and recreates all of the AWS resources (for example: the Auto Scaling group, load balancer, etc.)
diff --git a/lib/fog/aws/requests/beanstalk/request_environment_info.rb b/lib/fog/aws/requests/beanstalk/request_environment_info.rb
index 42f6014..ea48d2e 100644
--- a/lib/fog/aws/requests/beanstalk/request_environment_info.rb
+++ b/lib/fog/aws/requests/beanstalk/request_environment_info.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Returns AWS resources for this environment.
diff --git a/lib/fog/aws/requests/beanstalk/restart_app_server.rb b/lib/fog/aws/requests/beanstalk/restart_app_server.rb
index f01e6b1..e5180a2 100644
--- a/lib/fog/aws/requests/beanstalk/restart_app_server.rb
+++ b/lib/fog/aws/requests/beanstalk/restart_app_server.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Returns AWS resources for this environment.
diff --git a/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb b/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb
index 5507c1f..f139042 100644
--- a/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb
+++ b/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/retrieve_environment_info'
 
         # Returns AWS resources for this environment.
diff --git a/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb b/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb
index 88e848e..aad9f42 100644
--- a/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb
+++ b/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/empty'
 
         # Swaps the CNAMEs of two environments.
diff --git a/lib/fog/aws/requests/beanstalk/terminate_environment.rb b/lib/fog/aws/requests/beanstalk/terminate_environment.rb
index ab8619b..ebf2507 100644
--- a/lib/fog/aws/requests/beanstalk/terminate_environment.rb
+++ b/lib/fog/aws/requests/beanstalk/terminate_environment.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/terminate_environment'
 
         # Terminates the specified environment.
diff --git a/lib/fog/aws/requests/beanstalk/update_application.rb b/lib/fog/aws/requests/beanstalk/update_application.rb
index f3c1941..c8055c3 100644
--- a/lib/fog/aws/requests/beanstalk/update_application.rb
+++ b/lib/fog/aws/requests/beanstalk/update_application.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/update_application'
 
         # Updates the specified application to have the specified properties.
diff --git a/lib/fog/aws/requests/beanstalk/update_application_version.rb b/lib/fog/aws/requests/beanstalk/update_application_version.rb
index 02f200b..ef1f392 100644
--- a/lib/fog/aws/requests/beanstalk/update_application_version.rb
+++ b/lib/fog/aws/requests/beanstalk/update_application_version.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/update_application_version'
 
         # Updates the specified application version to have the specified properties.
diff --git a/lib/fog/aws/requests/beanstalk/update_configuration_template.rb b/lib/fog/aws/requests/beanstalk/update_configuration_template.rb
index 485a75f..6cca4d1 100644
--- a/lib/fog/aws/requests/beanstalk/update_configuration_template.rb
+++ b/lib/fog/aws/requests/beanstalk/update_configuration_template.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/update_configuration_template'
 
         # Updates the specified configuration template to have the specified properties or configuration option values.
diff --git a/lib/fog/aws/requests/beanstalk/update_environment.rb b/lib/fog/aws/requests/beanstalk/update_environment.rb
index 69c2130..f9f80fa 100644
--- a/lib/fog/aws/requests/beanstalk/update_environment.rb
+++ b/lib/fog/aws/requests/beanstalk/update_environment.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/update_environment'
 
         # Updates the environment description, deploys a new application version, updates the configuration settings
diff --git a/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb b/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb
index 6783470..466ba0b 100644
--- a/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb
+++ b/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ElasticBeanstalk
       class Real
-
         require 'fog/aws/parsers/beanstalk/validate_configuration_settings'
 
         # Updates the specified configuration template to have the specified properties or configuration option values.
diff --git a/lib/fog/aws/requests/cdn/delete_distribution.rb b/lib/fog/aws/requests/cdn/delete_distribution.rb
index 8b9d779..01b9647 100644
--- a/lib/fog/aws/requests/cdn/delete_distribution.rb
+++ b/lib/fog/aws/requests/cdn/delete_distribution.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         # Delete a distribution from CloudFront.
         #
         # @param distribution_id [String] Id of distribution to delete.
@@ -19,11 +18,9 @@ module Fog
             :path       => "/distribution/#{distribution_id}"
           })
         end
-
       end
 
       class Mock
-
         def delete_distribution(distribution_id, etag)
           distribution = self.data[:distributions][distribution_id]
 
@@ -49,9 +46,7 @@ module Fog
             Fog::CDN::AWS::Mock.error(:no_such_distribution)
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb b/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb
index 2473dff..1437055 100644
--- a/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb
+++ b/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         # Delete a streaming distribution from CloudFront.
         #
         # @param [String] distribution_id Id of distribution to delete.
@@ -19,11 +18,9 @@ module Fog
             :path       => "/streaming-distribution/#{distribution_id}"
           })
         end
-
       end
 
       class Mock
-
         def delete_streaming_distribution(distribution_id, etag)
           distribution = self.data[:streaming_distributions][distribution_id]
 
@@ -48,9 +45,7 @@ module Fog
             Fog::CDN::AWS::Mock.error(:no_such_streaming_distribution)
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/get_distribution.rb b/lib/fog/aws/requests/cdn/get_distribution.rb
index ea01f31..5061cb7 100644
--- a/lib/fog/aws/requests/cdn/get_distribution.rb
+++ b/lib/fog/aws/requests/cdn/get_distribution.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/distribution'
 
         # Get information about a distribution from CloudFront.
@@ -47,11 +46,9 @@ module Fog
             :path       => "/distribution/#{distribution_id}"
           })
         end
-
       end
 
       class Mock
-
         def get_distribution(distribution_id)
           response = Excon::Response.new
 
@@ -76,7 +73,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/get_distribution_list.rb b/lib/fog/aws/requests/cdn/get_distribution_list.rb
index bbd09c6..80e28e0 100644
--- a/lib/fog/aws/requests/cdn/get_distribution_list.rb
+++ b/lib/fog/aws/requests/cdn/get_distribution_list.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/get_distribution_list'
 
         # List information about distributions in CloudFront.
@@ -48,11 +47,9 @@ module Fog
             :query      => options
           })
         end
-
       end
 
       class Mock
-
         def get_distribution_list(options = {})
           response = Excon::Response.new
           response.status = 200
diff --git a/lib/fog/aws/requests/cdn/get_invalidation.rb b/lib/fog/aws/requests/cdn/get_invalidation.rb
index 1fc5f10..f1ec500 100644
--- a/lib/fog/aws/requests/cdn/get_invalidation.rb
+++ b/lib/fog/aws/requests/cdn/get_invalidation.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/get_invalidation'
 
         # Get invalidation.
@@ -29,11 +28,9 @@ module Fog
             :path       => "/distribution/#{distribution_id}/invalidation/#{invalidation_id}"
           })
         end
-
       end
 
       class Mock
-
         def get_invalidation(distribution_id, invalidation_id)
           distribution = self.data[:distributions][distribution_id]
           unless distribution
@@ -55,7 +52,6 @@ module Fog
           response.body = invalidation
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cdn/get_invalidation_list.rb b/lib/fog/aws/requests/cdn/get_invalidation_list.rb
index 6ef2d05..f0f4eb2 100644
--- a/lib/fog/aws/requests/cdn/get_invalidation_list.rb
+++ b/lib/fog/aws/requests/cdn/get_invalidation_list.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/get_invalidation_list'
 
         # Get invalidation list.
@@ -33,11 +32,9 @@ module Fog
             :query      => options
           })
         end
-
       end
 
       class Mock
-
         def get_invalidation_list(distribution_id, options = {})
           distribution = self.data[:distributions][distribution_id]
           unless distribution
@@ -73,9 +70,7 @@ module Fog
             'Status' => d['Status']
           }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/get_streaming_distribution.rb b/lib/fog/aws/requests/cdn/get_streaming_distribution.rb
index dc43cae..b212af1 100644
--- a/lib/fog/aws/requests/cdn/get_streaming_distribution.rb
+++ b/lib/fog/aws/requests/cdn/get_streaming_distribution.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/streaming_distribution'
 
         # Get information about a streaming distribution from CloudFront.
@@ -40,11 +39,9 @@ module Fog
             :path       => "/streaming-distribution/#{distribution_id}"
           })
         end
-
       end
 
       class Mock
-
         def get_streaming_distribution(distribution_id)
           response = Excon::Response.new
 
@@ -67,7 +64,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb b/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb
index b7be3eb..806de70 100644
--- a/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb
+++ b/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/get_streaming_distribution_list'
 
         # List information about distributions in CloudFront.
@@ -48,11 +47,9 @@ module Fog
             :query      => options
           })
         end
-
       end
 
       class Mock
-
         def get_streaming_distribution_list(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -79,7 +76,6 @@ module Fog
           }.merge(d['StreamingDistributionConfig'])
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/post_distribution.rb b/lib/fog/aws/requests/cdn/post_distribution.rb
index 09a3640..98b8efd 100644
--- a/lib/fog/aws/requests/cdn/post_distribution.rb
+++ b/lib/fog/aws/requests/cdn/post_distribution.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/distribution'
 
         # Create a new distribution in CloudFront.
@@ -82,11 +81,9 @@ module Fog
             :path       => "/distribution"
           })
         end
-
       end
 
       class Mock
-
         require 'time'
 
         def post_distribution(options = {})
diff --git a/lib/fog/aws/requests/cdn/post_invalidation.rb b/lib/fog/aws/requests/cdn/post_invalidation.rb
index 892f5f5..36bef96 100644
--- a/lib/fog/aws/requests/cdn/post_invalidation.rb
+++ b/lib/fog/aws/requests/cdn/post_invalidation.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/post_invalidation'
 
         # List information about distributions in CloudFront.
@@ -40,11 +39,9 @@ module Fog
             :path       => "/distribution/#{distribution_id}/invalidation"
           })
         end
-
       end
 
       class Mock
-
         def post_invalidation(distribution_id, paths, caller_reference = Time.now.to_i.to_s)
           distribution = self.data[:distributions][distribution_id]
           if distribution
@@ -72,9 +69,7 @@ module Fog
             Fog::CDN::AWS::Mock.error(:no_such_distribution)
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/post_streaming_distribution.rb b/lib/fog/aws/requests/cdn/post_streaming_distribution.rb
index 330cd38..4477a2a 100644
--- a/lib/fog/aws/requests/cdn/post_streaming_distribution.rb
+++ b/lib/fog/aws/requests/cdn/post_streaming_distribution.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/streaming_distribution'
 
         # Create a new streaming distribution in CloudFront.
@@ -69,12 +68,9 @@ module Fog
             :path       => "/streaming-distribution"
           })
         end
-
       end
 
-
       class Mock
-
         require 'time'
 
         def post_streaming_distribution(options = {})
@@ -114,7 +110,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/put_distribution_config.rb b/lib/fog/aws/requests/cdn/put_distribution_config.rb
index 81d9769..71d8286 100644
--- a/lib/fog/aws/requests/cdn/put_distribution_config.rb
+++ b/lib/fog/aws/requests/cdn/put_distribution_config.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/distribution'
 
         # Update a distribution in CloudFront.
@@ -85,11 +84,9 @@ module Fog
             :path       => "/distribution/#{distribution_id}/config"
           })
         end
-
       end
 
       class Mock
-
         def put_distribution_config(distribution_id, etag, options = {})
           distribution = self.data[:distributions][distribution_id]
 
@@ -114,7 +111,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb b/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb
index 32d3ef2..bb6d2a5 100644
--- a/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb
+++ b/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class AWS
       class Real
-
         require 'fog/aws/parsers/cdn/streaming_distribution'
 
         # Update a streaming distribution in CloudFront.
@@ -74,11 +73,9 @@ module Fog
             :path       => "/streaming-distribution/#{distribution_id}/config"
           })
         end
-
       end
 
       class Mock
-
         def put_streaming_distribution_config(distribution_id, etag, options = {})
           distribution = self.data[:streaming_distributions][distribution_id]
 
@@ -103,7 +100,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cloud_formation/create_stack.rb b/lib/fog/aws/requests/cloud_formation/create_stack.rb
index 39cff78..fd7dea1 100644
--- a/lib/fog/aws/requests/cloud_formation/create_stack.rb
+++ b/lib/fog/aws/requests/cloud_formation/create_stack.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/create_stack'
 
         # Create a stack.
@@ -83,7 +82,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::CreateStack.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/delete_stack.rb b/lib/fog/aws/requests/cloud_formation/delete_stack.rb
index cab9e6b..6fd9824 100644
--- a/lib/fog/aws/requests/cloud_formation/delete_stack.rb
+++ b/lib/fog/aws/requests/cloud_formation/delete_stack.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/basic'
 
         # Delete a stack.
@@ -20,7 +19,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb b/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb
index 167c444..32ce57c 100644
--- a/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb
+++ b/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/describe_stack_events'
 
         # Describe stack events.
@@ -34,7 +33,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::DescribeStackEvents.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb b/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb
index 72e2ce6..73ca748 100644
--- a/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb
+++ b/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/describe_stack_resources'
 
         # Describe stack resources.
@@ -33,7 +32,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::DescribeStackResources.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/describe_stacks.rb b/lib/fog/aws/requests/cloud_formation/describe_stacks.rb
index e814cb4..d5d3066 100644
--- a/lib/fog/aws/requests/cloud_formation/describe_stacks.rb
+++ b/lib/fog/aws/requests/cloud_formation/describe_stacks.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/describe_stacks'
 
         # Describe stacks.
@@ -32,7 +31,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::DescribeStacks.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/get_template.rb b/lib/fog/aws/requests/cloud_formation/get_template.rb
index 9ebf1b6..918203f 100644
--- a/lib/fog/aws/requests/cloud_formation/get_template.rb
+++ b/lib/fog/aws/requests/cloud_formation/get_template.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/get_template'
 
         # Describe stacks.
@@ -22,7 +21,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::GetTemplate.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/list_stack_resources.rb b/lib/fog/aws/requests/cloud_formation/list_stack_resources.rb
index 4425355..ba8d0b1 100644
--- a/lib/fog/aws/requests/cloud_formation/list_stack_resources.rb
+++ b/lib/fog/aws/requests/cloud_formation/list_stack_resources.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/list_stack_resources'
 
         # List stack resources.
@@ -29,7 +28,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::ListStackResources.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/list_stacks.rb b/lib/fog/aws/requests/cloud_formation/list_stacks.rb
index 7e7d4b9..1587f2a 100644
--- a/lib/fog/aws/requests/cloud_formation/list_stacks.rb
+++ b/lib/fog/aws/requests/cloud_formation/list_stacks.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/list_stacks'
 
         # List stacks.
@@ -30,7 +29,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::ListStacks.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/update_stack.rb b/lib/fog/aws/requests/cloud_formation/update_stack.rb
index 521d457..d372249 100644
--- a/lib/fog/aws/requests/cloud_formation/update_stack.rb
+++ b/lib/fog/aws/requests/cloud_formation/update_stack.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/update_stack'
 
         # Update a stack.
@@ -51,7 +50,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::UpdateStack.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_formation/validate_template.rb b/lib/fog/aws/requests/cloud_formation/validate_template.rb
index 2ef5ed5..b16911c 100644
--- a/lib/fog/aws/requests/cloud_formation/validate_template.rb
+++ b/lib/fog/aws/requests/cloud_formation/validate_template.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudFormation
       class Real
-
         require 'fog/aws/parsers/cloud_formation/validate_template'
 
         # Describe stacks.
@@ -24,7 +23,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::CloudFormation::ValidateTemplate.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_watch/delete_alarms.rb b/lib/fog/aws/requests/cloud_watch/delete_alarms.rb
index f0eca83..3784e1e 100644
--- a/lib/fog/aws/requests/cloud_watch/delete_alarms.rb
+++ b/lib/fog/aws/requests/cloud_watch/delete_alarms.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/delete_alarms'
 
         # Delete a list of alarms
@@ -29,7 +28,7 @@ module Fog
       class Mock
         def delete_alarms(alarm_names)
           [*alarm_names].each do |alarm_name|
-            unless data[:metric_alarms].has_key?(alarm_name)
+            unless data[:metric_alarms].key?(alarm_name)
               raise Fog::AWS::AutoScaling::NotFound, "The alarm '#{alarm_name}' does not exist."
             end
           end
diff --git a/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb b/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb
index ef16b65..ccb1e7a 100644
--- a/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb
+++ b/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/describe_alarm_history'
 
         # Retrieves history for the specified alarm
diff --git a/lib/fog/aws/requests/cloud_watch/describe_alarms.rb b/lib/fog/aws/requests/cloud_watch/describe_alarms.rb
index 7b53097..ecd7884 100644
--- a/lib/fog/aws/requests/cloud_watch/describe_alarms.rb
+++ b/lib/fog/aws/requests/cloud_watch/describe_alarms.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/describe_alarms'
 
         # Retrieves alarms with the specified names
diff --git a/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb b/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb
index eaa1ef4..e8c4179 100644
--- a/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb
+++ b/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/describe_alarms_for_metric'
 
         # Retrieves all alarms for a single metric
@@ -25,8 +24,8 @@ module Fog
 
         def describe_alarms_for_metric(options)
           if dimensions = options.delete('Dimensions')
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']}))
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.map {|dimension| dimension['Name']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.map {|dimension| dimension['Value']}))
           end
           request({
               'Action'    => 'DescribeAlarmsForMetric',
diff --git a/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb b/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb
index b14f91e..26ea6d0 100644
--- a/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb
+++ b/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/disable_alarm_actions'
 
         # Disables actions for the specified alarms
diff --git a/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb b/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb
index 4329610..1d229cc 100644
--- a/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb
+++ b/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/enable_alarm_actions'
 
         # Enables actions for the specified alarms
diff --git a/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb b/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb
index a237016..dbfcfef 100644
--- a/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb
+++ b/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/get_metric_statistics'
 
         # Fetch datapoints for a metric. At most 1440 datapoints will be returned, the most datapoints that can be queried is 50850
@@ -26,14 +25,14 @@ module Fog
         #
         def get_metric_statistics(options={})
           %w{Statistics StartTime EndTime Period MetricName Namespace}.each do |required_parameter|
-            raise ArgumentError, "Must provide #{required_parameter}" unless options.has_key?(required_parameter)
+            raise ArgumentError, "Must provide #{required_parameter}" unless options.key?(required_parameter)
           end
           statistics = options.delete 'Statistics'
           options.merge!(AWS.indexed_param('Statistics.member.%d', [*statistics]))
 
           if dimensions = options.delete('Dimensions')
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']}))
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.map {|dimension| dimension['Name']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.map {|dimension| dimension['Value']}))
           end
 
           request({
@@ -41,7 +40,6 @@ module Fog
               :parser     => Fog::Parsers::AWS::CloudWatch::GetMetricStatistics.new
             }.merge(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/cloud_watch/list_metrics.rb b/lib/fog/aws/requests/cloud_watch/list_metrics.rb
index cf8456a..de78214 100644
--- a/lib/fog/aws/requests/cloud_watch/list_metrics.rb
+++ b/lib/fog/aws/requests/cloud_watch/list_metrics.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/list_metrics'
 
         # List availabe metrics
@@ -22,8 +21,8 @@ module Fog
         #
         def list_metrics(options={})
           if dimensions = options.delete('Dimensions')
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']}))
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.map {|dimension| dimension['Name']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.map {|dimension| dimension['Value']}))
           end
 
           request({
@@ -31,7 +30,6 @@ module Fog
               :parser     => Fog::Parsers::AWS::CloudWatch::ListMetrics.new
             }.merge(options))
         end
-
       end
 
       class Mock
@@ -59,7 +57,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb b/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb
index bfba4a6..f159790 100644
--- a/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb
+++ b/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb
@@ -32,8 +32,8 @@ module Fog
         #
         def put_metric_alarm(options)
           if dimensions = options.delete('Dimensions')
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']}))
-            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.map {|dimension| dimension['Name']}))
+            options.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.map {|dimension| dimension['Value']}))
           end
           if alarm_actions = options.delete('AlarmActions')
             options.merge!(AWS.indexed_param('AlarmActions.member.%d', [*alarm_actions]))
@@ -66,7 +66,7 @@ module Fog
 
           requirements = [ "AlarmName", "ComparisonOperator", "EvaluationPeriods", "Namespace", "Period", "Statistic", "Threshold" ]
           requirements.each do |req|
-            unless options.has_key?(req)
+            unless options.key?(req)
               raise Fog::Compute::AWS::Error.new("The request must contain a the parameter '%s'" % req)
             end
           end
diff --git a/lib/fog/aws/requests/cloud_watch/put_metric_data.rb b/lib/fog/aws/requests/cloud_watch/put_metric_data.rb
index 6a713b7..9996e14 100644
--- a/lib/fog/aws/requests/cloud_watch/put_metric_data.rb
+++ b/lib/fog/aws/requests/cloud_watch/put_metric_data.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/put_metric_data'
 
         # Publishes one or more data points to CloudWatch. A new metric is created if necessary
@@ -32,15 +31,15 @@ module Fog
           options = {'Namespace' => namespace}
 
           #first index the dimensions for any of the datums that have dimensions
-          metric_data.collect! do |metric_datum|
+          metric_data.map! do |metric_datum|
             if dimensions = metric_datum.delete('Dimensions')
-              metric_datum.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']}))
-              metric_datum.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']}))
+              metric_datum.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.map {|dimension| dimension['Name']}))
+              metric_datum.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.map {|dimension| dimension['Value']}))
             end
             metric_datum
           end
           #then flatten out an hashes in the metric_data array
-          metric_data.collect! { |metric_datum| flatten_hash(metric_datum) }
+          metric_data.map! { |metric_datum| flatten_hash(metric_datum) }
           #then index the metric_data array
           options.merge!(AWS.indexed_param('MetricData.member.%d', [*metric_data]))
           #then finally flatten out an hashes in the overall options array
diff --git a/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb b/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb
index 722af26..f16d876 100644
--- a/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb
+++ b/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class CloudWatch
       class Real
-
         require 'fog/aws/parsers/cloud_watch/set_alarm_state'
 
         # Temporarily sets the state of an alarm
diff --git a/lib/fog/aws/requests/compute/allocate_address.rb b/lib/fog/aws/requests/compute/allocate_address.rb
index 9efb02f..e57a9af 100644
--- a/lib/fog/aws/requests/compute/allocate_address.rb
+++ b/lib/fog/aws/requests/compute/allocate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/allocate_address'
 
         # Acquire an elastic IP address.
@@ -24,11 +23,9 @@ module Fog
             :parser   => Fog::Parsers::Compute::AWS::AllocateAddress.new
           )
         end
-
       end
 
       class Mock
-
         def allocate_address(domain = 'standard')
           domain = domain == 'vpc' ? 'vpc' : 'standard'
           response = Excon::Response.new
@@ -52,7 +49,6 @@ module Fog
             raise(Excon::Errors.status_error({:expects => 200}, response))
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb b/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb
index 048059b..a1dde0e 100644
--- a/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb
+++ b/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/assign_private_ip_addresses'
 
         # Assigns one or more secondary private IP addresses to the specified network interface.
@@ -20,7 +19,6 @@ module Fog
         #
         # {Amazon API Reference}[http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AssignPrivateIpAddresses.html]
         def assign_private_ip_addresses(network_interface_id, options={})
-
           if options['PrivateIpAddresses'] && options['SecondaryPrivateIpAddressCount']
             raise Fog::Compute::AWS::Error.new("You may specify secondaryPrivateIpAddressCount or specific secondary private IP addresses, but not both.")
           end
@@ -35,11 +33,9 @@ module Fog
             :parser   => Fog::Parsers::Compute::AWS::AssignPrivateIpAddresses.new
           }.merge(options))
         end
-
       end
 
       class Mock
-
         def assign_private_ip_addresses(network_interface_id, options={})
           if options['PrivateIpAddresses'] && options['SecondaryPrivateIpAddressCount']
             raise Fog::Compute::AWS::Error.new("You may specify secondaryPrivateIpAddressCount or specific secondary private IP addresses, but not both.")
@@ -53,7 +49,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/associate_address.rb b/lib/fog/aws/requests/compute/associate_address.rb
index c316d20..ad6b7e1 100644
--- a/lib/fog/aws/requests/compute/associate_address.rb
+++ b/lib/fog/aws/requests/compute/associate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/associate_address'
 
         # Associate an elastic IP address with an instance
@@ -26,7 +25,7 @@ module Fog
         def associate_address(*args)
           if args.first.kind_of? Hash
             params = args.first
-          else 
+          else
             params = {
                 :instance_id => args[0],
                 :public_ip => args[1],
@@ -55,11 +54,10 @@ module Fog
       end
 
       class Mock
-
         def associate_address(*args)
           if args.first.kind_of? Hash
             params = args.first
-          else 
+          else
             params = {
                 :instance_id => args[0],
                 :public_ip => args[1],
@@ -122,7 +120,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new("You must specify either an InstanceId or a NetworkInterfaceID")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/associate_dhcp_options.rb b/lib/fog/aws/requests/compute/associate_dhcp_options.rb
index 009bee7..f49bbec 100644
--- a/lib/fog/aws/requests/compute/associate_dhcp_options.rb
+++ b/lib/fog/aws/requests/compute/associate_dhcp_options.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         #
         #
@@ -27,11 +26,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def associate_dhcp_options(dhcp_options_id, vpc_id)
           response = Excon::Response.new
           if dhcp_options_id && vpc_id
@@ -50,7 +47,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new(message)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/associate_route_table.rb b/lib/fog/aws/requests/compute/associate_route_table.rb
index 39d909e..704415d 100755
--- a/lib/fog/aws/requests/compute/associate_route_table.rb
+++ b/lib/fog/aws/requests/compute/associate_route_table.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/associate_route_table'
         # Associates a subnet with a route table.
         #
@@ -25,11 +24,9 @@ module Fog
             :parser        => Fog::Parsers::Compute::AWS::AssociateRouteTable.new
           )
         end
-
       end
 
       class Mock
-
         def associate_route_table(routeTableId, subnetId)
           routetable = self.data[:route_tables].find { |routetable| routetable["routeTableId"].eql? routeTableId }
           subnet = self.data[:subnets].find { |subnet| subnet["subnetId"].eql? subnetId }
@@ -49,7 +46,6 @@ module Fog
           else
             raise Fog::Compute::AWS::NotFound.new("The subnet ID '#{subnetId}' does not exist")
           end
-
         end
 
         private
@@ -68,7 +64,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/attach_internet_gateway.rb b/lib/fog/aws/requests/compute/attach_internet_gateway.rb
index 3a680c8..c2d3f4c 100644
--- a/lib/fog/aws/requests/compute/attach_internet_gateway.rb
+++ b/lib/fog/aws/requests/compute/attach_internet_gateway.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         # Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC
         #
@@ -26,11 +25,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def attach_internet_gateway(internet_gateway_id, vpc_id)
           response = Excon::Response.new
           if internet_gateway_id && vpc_id
@@ -49,7 +46,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new(message)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/attach_network_interface.rb b/lib/fog/aws/requests/compute/attach_network_interface.rb
index 8d63014..83c4fab 100644
--- a/lib/fog/aws/requests/compute/attach_network_interface.rb
+++ b/lib/fog/aws/requests/compute/attach_network_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/attach_network_interface'
 
         # Attach a network interface
@@ -30,15 +29,20 @@ module Fog
         end
       end
 
-
       class Mock
-
         def attach_network_interface(nic_id, instance_id, device_index)
           response = Excon::Response.new
-          if self.data[:network_interfaces][nic_id]
+          if ! self.data[:instances].find{ |i,i_conf|
+            i_conf['instanceId'] == instance_id
+          }
+            raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist")
+          elsif self.data[:network_interfaces].find{ |ni,ni_conf| ni_conf['attachment']['instanceId'] == instance_id && ni_conf['attachment']['deviceIndex'] == device_index }
+            raise Fog::Compute::AWS::Error.new("InvalidParameterValue => Instance '#{instance_id}' already has an interface attached at device index '#{device_index}'.")
+          elsif self.data[:network_interfaces][nic_id]
             attachment = self.data[:network_interfaces][nic_id]['attachment']
             attachment['attachmentId'] = Fog::AWS::Mock.request_id
             attachment['instanceId']   = instance_id
+            attachment['deviceIndex']  = device_index
 
             response.status = 200
             response.body = {
diff --git a/lib/fog/aws/requests/compute/attach_volume.rb b/lib/fog/aws/requests/compute/attach_volume.rb
index 166a434..58f2ad9 100644
--- a/lib/fog/aws/requests/compute/attach_volume.rb
+++ b/lib/fog/aws/requests/compute/attach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/attach_volume'
 
         # Attach an Amazon EBS volume with a running instance, exposing as specified device
@@ -33,11 +32,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::AttachVolume.new
           )
         end
-
       end
 
       class Mock
-
         def attach_volume(instance_id, volume_id, device)
           response = Excon::Response.new
           if instance_id && volume_id && device
@@ -80,7 +77,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new(message)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb b/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb
index 6690cf7..48eeb36 100644
--- a/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb
+++ b/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Add permissions to a security group
@@ -76,11 +75,9 @@ module Fog
           end
           params.reject {|k, v| v.nil? }
         end
-
       end
 
       class Mock
-
         def authorize_security_group_ingress(group_name, options = {})
           options = Fog::AWS.parse_security_group_options(group_name, options)
           if options.key?('GroupName')
@@ -141,7 +138,7 @@ module Fog
           if !is_vpc && (options['IpProtocol'] && (!options['FromPort'] || !options['ToPort']))
             raise Fog::Compute::AWS::Error.new("InvalidPermission.Malformed => TCP/UDP port (-1) out of range")
           end
-          if options.has_key?('IpPermissions')
+          if options.key?('IpPermissions')
             if !options['IpPermissions'].is_a?(Array) || options['IpPermissions'].empty?
               raise Fog::Compute::AWS::Error.new("InvalidRequest => The request received was invalid.")
             end
@@ -152,7 +149,12 @@ module Fog
         def normalize_permissions(options)
           normalized_permissions = []
           if options['SourceSecurityGroupName']
-            source_group_id=self.data[:security_groups][options['SourceSecurityGroupName']]['groupId']
+            group_name = if options['SourceSecurityGroupName'] =~ /default_elb/
+                           "default"
+                         else
+                           options['SourceSecurityGroupName']
+                         end
+            source_group_id=self.data[:security_groups][group_name]['groupId']
             ['tcp', 'udp'].each do |protocol|
               normalized_permissions << {
                 'ipProtocol' => protocol,
@@ -188,7 +190,7 @@ module Fog
                     security_group = if group_name = authorized_group['GroupName']
                                        self.data[:security_groups][group_name] || {}
                                      elsif group_id = authorized_group['GroupId']
-                                       self.data[:security_groups].values.find { |sg| sg['groupId'] == group_id }
+                                       self.data[:security_groups].values.find { |sg| sg['groupId'] == group_id } || {}
                                      end
 
                     {'groupName' => authorized_group['GroupName'] || security_group["groupName"], 'userId' => authorized_group['UserId'] || self.data[:owner_id], 'groupId' => authorized_group["GroupId"] || security_group['groupId']}
@@ -202,7 +204,7 @@ module Fog
                     security_group = if group_name = authorized_group['GroupName']
                                        self.data[:security_groups][group_name] || {}
                                      elsif group_id = authorized_group['GroupId']
-                                       self.data[:security_groups].values.find { |sg| sg['groupId'] == group_id }
+                                       self.data[:security_groups].values.find { |sg| sg['groupId'] == group_id } || {}
                                      end
 
                     {'groupName' => authorized_group['GroupName'] || security_group["groupName"], 'userId' => authorized_group['UserId'] || self.data[:owner_id], 'groupId' => authorized_group["GroupId"] || security_group['groupId']}
@@ -217,12 +219,11 @@ module Fog
         end
 
         def find_matching_permission(group, permission)
-          group['ipPermissions'].detect {|group_permission|
+          group['ipPermissions'].find {|group_permission|
             permission['ipProtocol'] == group_permission['ipProtocol'] &&
             permission['fromPort'] == group_permission['fromPort'] &&
             permission['toPort'] == group_permission['toPort'] }
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb b/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb
index a8480bf..01f1e09 100644
--- a/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb
+++ b/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/cancel_spot_instance_requests'
 
         # Terminate specified spot instance requests
@@ -27,7 +26,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::CancelSpotInstanceRequests.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/copy_image.rb b/lib/fog/aws/requests/compute/copy_image.rb
index b03ee77..a64e286 100644
--- a/lib/fog/aws/requests/compute/copy_image.rb
+++ b/lib/fog/aws/requests/compute/copy_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/copy_image'
 
         # Copy an image to a different region
@@ -32,11 +31,9 @@ module Fog
             :parser           => Fog::Parsers::Compute::AWS::CopyImage.new
           )
         end
-
       end
 
       class Mock
-
         #
         # Usage
         #
@@ -56,7 +53,6 @@ module Fog
           }.merge!(data)
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/copy_snapshot.rb b/lib/fog/aws/requests/compute/copy_snapshot.rb
index 229f3a8..c27235a 100644
--- a/lib/fog/aws/requests/compute/copy_snapshot.rb
+++ b/lib/fog/aws/requests/compute/copy_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/copy_snapshot'
 
         # Copy a snapshot to a different region
@@ -27,11 +26,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::CopySnapshot.new
           )
         end
-
       end
 
       class Mock
-
         #
         # Usage
         #
@@ -51,7 +48,6 @@ module Fog
           }.merge!(data)
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_dhcp_options.rb b/lib/fog/aws/requests/compute/create_dhcp_options.rb
index fc977c4..3816ec6 100644
--- a/lib/fog/aws/requests/compute/create_dhcp_options.rb
+++ b/lib/fog/aws/requests/compute/create_dhcp_options.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_dhcp_options'
 
         # Creates a set of DHCP options for your VPC
@@ -73,4 +72,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/compute/create_image.rb b/lib/fog/aws/requests/compute/create_image.rb
index 8fe44ee..6b1fa53 100644
--- a/lib/fog/aws/requests/compute/create_image.rb
+++ b/lib/fog/aws/requests/compute/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_image'
 
         # Create a bootable EBS volume AMI
@@ -30,6 +29,7 @@ module Fog
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.SnapshotId', block_device_mappings.map{|mapping| mapping['Ebs.SnapshotId']})
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.DeleteOnTermination', block_device_mappings.map{|mapping| mapping['Ebs.DeleteOnTermination']})
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.VolumeType', block_device_mappings.map{|mapping| mapping['Ebs.VolumeType']})
+          params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.Encrypted', block_device_mappings.map{|mapping| mapping['Ebs.Encrypted']})
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.Iops', block_device_mappings.map{|mapping| mapping['Ebs.Iops']})
           params.reject!{|k,v| v.nil?}
 
@@ -45,7 +45,6 @@ module Fog
       end
 
       class Mock
-
         # Usage
         #
         # AWS[:compute].create_image("i-ac65ee8c", "test", "something")
@@ -60,6 +59,7 @@ module Fog
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.SnapshotId', block_device_mappings.map{|mapping| mapping['Ebs.SnapshotId']})
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.DeleteOnTermination', block_device_mappings.map{|mapping| mapping['Ebs.DeleteOnTermination']})
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.VolumeType', block_device_mappings.map{|mapping| mapping['Ebs.VolumeType']})
+          params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.Encrypted', block_device_mappings.map{|mapping| mapping['Ebs.Encrypted']})
           params.merge!Fog::AWS.indexed_param('BlockDeviceMapping.%d.Ebs.Iops', block_device_mappings.map{|mapping| mapping['Ebs.Iops']})
           params.reject!{|k,v| v.nil?}
 
@@ -85,7 +85,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_internet_gateway.rb b/lib/fog/aws/requests/compute/create_internet_gateway.rb
index c71e840..ba0aee2 100644
--- a/lib/fog/aws/requests/compute/create_internet_gateway.rb
+++ b/lib/fog/aws/requests/compute/create_internet_gateway.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_internet_gateway'
 
         # Creates an InternetGateway
diff --git a/lib/fog/aws/requests/compute/create_key_pair.rb b/lib/fog/aws/requests/compute/create_key_pair.rb
index 221bd5c..688b1b4 100644
--- a/lib/fog/aws/requests/compute/create_key_pair.rb
+++ b/lib/fog/aws/requests/compute/create_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_key_pair'
 
         # Create a new key pair
@@ -26,11 +25,9 @@ module Fog
             :parser   => Fog::Parsers::Compute::AWS::CreateKeyPair.new
           )
         end
-
       end
 
       class Mock
-
         def create_key_pair(key_name)
           response = Excon::Response.new
           unless self.data[:key_pairs][key_name]
@@ -49,7 +46,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new("InvalidKeyPair.Duplicate => The keypair '#{key_name}' already exists.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_network_acl.rb b/lib/fog/aws/requests/compute/create_network_acl.rb
index 8c5c260..45bf4ad 100644
--- a/lib/fog/aws/requests/compute/create_network_acl.rb
+++ b/lib/fog/aws/requests/compute/create_network_acl.rb
@@ -53,7 +53,7 @@ module Fog
           if vpcId
             id = Fog::AWS::Mock.network_acl_id
 
-            unless self.data[:vpcs].detect { |s| s['vpcId'] == vpcId }
+            unless self.data[:vpcs].find { |s| s['vpcId'] == vpcId }
               raise Fog::Compute::AWS::Error.new("Unknown VPC '#{vpcId}' specified")
             end
 
@@ -82,7 +82,7 @@ module Fog
                 },
               ],
               'associationSet' => [],
-              'tagSet'         => {},
+              'tagSet'         => {}
             }
 
             self.data[:network_acls][id] = data
diff --git a/lib/fog/aws/requests/compute/create_network_acl_entry.rb b/lib/fog/aws/requests/compute/create_network_acl_entry.rb
index 2e0f907..e8b57b2 100644
--- a/lib/fog/aws/requests/compute/create_network_acl_entry.rb
+++ b/lib/fog/aws/requests/compute/create_network_acl_entry.rb
@@ -45,7 +45,7 @@ module Fog
           response = Excon::Response.new
           if self.data[:network_acls][network_acl_id]
 
-            if self.data[:network_acls][network_acl_id]['entrySet'].detect { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
+            if self.data[:network_acls][network_acl_id]['entrySet'].find { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
               raise Fog::Compute::AWS::Error.new("Already a rule with that number")
             end
 
diff --git a/lib/fog/aws/requests/compute/create_network_interface.rb b/lib/fog/aws/requests/compute/create_network_interface.rb
index cc35b90..3bb6e2c 100644
--- a/lib/fog/aws/requests/compute/create_network_interface.rb
+++ b/lib/fog/aws/requests/compute/create_network_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_network_interface'
 
         # Creates a network interface
@@ -57,7 +56,6 @@ module Fog
             'SubnetId'   => subnetId,
             :parser      => Fog::Parsers::Compute::AWS::CreateNetworkInterface.new
           }.merge!(options))
-
         end
       end
 
@@ -65,45 +63,63 @@ module Fog
         def create_network_interface(subnetId, options = {})
           response = Excon::Response.new
           if subnetId
-            id = Fog::AWS::Mock.network_interface_id
+            subnet = self.data[:subnets].find{ |s| s['subnetId'] == subnetId }
+            if subnet.nil?
+              raise Fog::Compute::AWS::Error.new("Unknown subnet '#{subnetId}' specified")
+            else
+              id = Fog::AWS::Mock.network_interface_id
+              cidr_block = IPAddress.parse(subnet['cidrBlock'])
 
-            groups = {}
-            if options['GroupSet']
-              options['GroupSet'].each do |group_id|
-                name = self.data[:security_groups].select { |k,v| v['groupId'] == group_id }.first
-                if name.nil?
-                  raise Fog::Compute::AWS::Error.new("Unknown security group '#{group_id}' specified")
+              groups = {}
+              if options['GroupSet']
+                options['GroupSet'].each do |group_id|
+                  group_obj = self.data[:security_groups].select { |k,v| v['groupId'] == group_id }.first
+                  if group_obj.nil?
+                    raise Fog::Compute::AWS::Error.new("Unknown security group '#{group_id}' specified")
+                  end
+                  groups[group_id] = group_obj
                 end
-                groups[group_id] = name
               end
-            end
-            if options['PrivateIpAddress'].nil?
-              options['PrivateIpAddress'] = "10.0.0.2"
-            end
 
-            data = {
-              'networkInterfaceId' => id,
-              'subnetId'           => subnetId,
-              'vpcId'              => 'mock-vpc-id',
-              'availabilityZone'   => 'mock-zone',
-              'description'        => options['Description'],
-              'ownerId'            => '',
-              'requesterManaged'   => 'false',
-              'status'             => 'available',
-              'macAddress'         => '00:11:22:33:44:55',
-              'privateIpAddress'   => options['PrivateIpAddress'],
-              'sourceDestCheck'    => true,
-              'groupSet'           => groups,
-              'attachment'         => {},
-              'association'        => {},
-              'tagSet'             => {}
-            }
-            self.data[:network_interfaces][id] = data
-            response.body = {
-              'requestId'        => Fog::AWS::Mock.request_id,
-              'networkInterface' => data
-            }
-            response
+              if options['PrivateIpAddress'].nil?
+                # Here we try to act like a DHCP server and pick the first
+                # available IP (not including the first in the cidr block,
+                # which is typically reserved for the gateway).
+                cidr_block.each_host do |p_ip|
+                  unless self.data[:network_interfaces].map{ |ni, ni_conf| ni_conf['privateIpAddress'] }.include?p_ip.to_s ||
+                    cidr_block.first == p_ip
+                    options['PrivateIpAddress'] = p_ip.to_s
+                    break
+                  end
+                end
+              elsif self.data[:network_interfaces].map{ |ni,ni_conf| ni_conf['privateIpAddress'] }.include?options['PrivateIpAddress']
+                raise Fog::Compute::AWS::Error.new('InUse => The specified address is already in use.')
+              end
+
+              data = {
+                'networkInterfaceId' => id,
+                'subnetId'           => subnetId,
+                'vpcId'              => 'mock-vpc-id',
+                'availabilityZone'   => 'mock-zone',
+                'description'        => options['Description'],
+                'ownerId'            => '',
+                'requesterManaged'   => 'false',
+                'status'             => 'available',
+                'macAddress'         => '00:11:22:33:44:55',
+                'privateIpAddress'   => options['PrivateIpAddress'],
+                'sourceDestCheck'    => true,
+                'groupSet'           => groups,
+                'attachment'         => {},
+                'association'        => {},
+                'tagSet'             => {}
+              }
+              self.data[:network_interfaces][id] = data
+              response.body = {
+                'requestId'        => Fog::AWS::Mock.request_id,
+                'networkInterface' => data
+              }
+              response
+            end
           else
             response.status = 400
             response.body = {
diff --git a/lib/fog/aws/requests/compute/create_placement_group.rb b/lib/fog/aws/requests/compute/create_placement_group.rb
index 7400b5c..c16f22e 100644
--- a/lib/fog/aws/requests/compute/create_placement_group.rb
+++ b/lib/fog/aws/requests/compute/create_placement_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Create a new placement group
@@ -26,9 +25,7 @@ module Fog
             :parser             => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/compute/create_route.rb b/lib/fog/aws/requests/compute/create_route.rb
index edff3ea..ceeda3d 100755
--- a/lib/fog/aws/requests/compute/create_route.rb
+++ b/lib/fog/aws/requests/compute/create_route.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Creates a route in a route table within a VPC.
@@ -40,7 +39,6 @@ module Fog
       end
 
       class Mock
-
         def create_route(route_table_id, destination_cidr_block, internet_gateway_id=nil, instance_id=nil, network_interface_id=nil)
           instance_owner_id = nil
           route_table = self.data[:route_tables].find { |routetable| routetable["routeTableId"].eql? route_table_id }
diff --git a/lib/fog/aws/requests/compute/create_route_table.rb b/lib/fog/aws/requests/compute/create_route_table.rb
index 77ae430..e5a1bce 100755
--- a/lib/fog/aws/requests/compute/create_route_table.rb
+++ b/lib/fog/aws/requests/compute/create_route_table.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_route_table'
 
         # Creates a route table for the specified VPC.
diff --git a/lib/fog/aws/requests/compute/create_security_group.rb b/lib/fog/aws/requests/compute/create_security_group.rb
index 509acdd..58233f9 100644
--- a/lib/fog/aws/requests/compute/create_security_group.rb
+++ b/lib/fog/aws/requests/compute/create_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_security_group'
 
         # Create a new security group
@@ -29,11 +28,9 @@ module Fog
             :parser             => Fog::Parsers::Compute::AWS::CreateSecurityGroup.new
           )
         end
-
       end
 
       class Mock
-
         def create_security_group(name, description, vpc_id=nil)
           response = Excon::Response.new
           unless self.data[:security_groups][name]
@@ -57,7 +54,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new("InvalidGroup.Duplicate => The security group '#{name}' already exists")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_snapshot.rb b/lib/fog/aws/requests/compute/create_snapshot.rb
index 1e7caa6..39747ee 100644
--- a/lib/fog/aws/requests/compute/create_snapshot.rb
+++ b/lib/fog/aws/requests/compute/create_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_snapshot'
 
         # Create a snapshot of an EBS volume and store it in S3
@@ -13,6 +12,7 @@ module Fog
         # ==== Returns
         # * response<~Excon::Response>:
         #   * body<~Hash>:
+        #     * 'encrypted'<~Boolean>: The encryption status of the snapshot.
         #     * 'progress'<~String> - The percentage progress of the snapshot
         #     * 'requestId'<~String> - id of request
         #     * 'snapshotId'<~String> - id of snapshot
@@ -29,11 +29,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::CreateSnapshot.new
           )
         end
-
       end
 
       class Mock
-
         #
         # Usage
         #
@@ -47,6 +45,7 @@ module Fog
             snapshot_id = Fog::AWS::Mock.snapshot_id
             data = {
               'description' => description,
+              'encrypted'   => false,
               'ownerId'     => self.data[:owner_id],
               'progress'    => nil,
               'snapshotId'  => snapshot_id,
@@ -65,7 +64,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_spot_datafeed_subscription.rb b/lib/fog/aws/requests/compute/create_spot_datafeed_subscription.rb
index 2e90c1e..7ae94f9 100644
--- a/lib/fog/aws/requests/compute/create_spot_datafeed_subscription.rb
+++ b/lib/fog/aws/requests/compute/create_spot_datafeed_subscription.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/spot_datafeed_subscription'
 
         # Create a spot datafeed subscription
@@ -34,7 +33,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::SpotDatafeedSubscription.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_subnet.rb b/lib/fog/aws/requests/compute/create_subnet.rb
index 1e6847f..c061fcc 100644
--- a/lib/fog/aws/requests/compute/create_subnet.rb
+++ b/lib/fog/aws/requests/compute/create_subnet.rb
@@ -2,7 +2,7 @@ module Fog
   module Compute
     class AWS
       class Real
-
+        require 'ipaddress'
         require 'fog/aws/parsers/compute/create_subnet'
 
         # Creates a Subnet with the CIDR block you specify.
@@ -36,7 +36,6 @@ module Fog
             'CidrBlock'  => cidrBlock,
             :parser      => Fog::Parsers::Compute::AWS::CreateSubnet.new
           }.merge!(options))
-
         end
       end
 
@@ -44,7 +43,20 @@ module Fog
         def create_subnet(vpcId, cidrBlock, options = {})
           av_zone = options['AvailabilityZone'].nil? ? 'us-east-1c' : options['AvailabilityZone']
           Excon::Response.new.tap do |response|
-            if cidrBlock  && vpcId
+            if cidrBlock && vpcId
+              vpc = self.data[:vpcs].find{ |v| v['vpcId'] == vpcId }
+              if vpc.nil?
+                raise Fog::Compute::AWS::NotFound.new("The vpc ID '#{vpcId}' does not exist")
+              end
+              if ! ::IPAddress.parse(vpc['cidrBlock']).include?(::IPAddress.parse(cidrBlock))
+                raise Fog::Compute::AWS::Error.new("Range => The CIDR '#{cidrBlock}' is invalid.")
+              end
+              self.data[:subnets].select{ |s| s['vpcId'] == vpcId }.each do |subnet|
+                if ::IPAddress.parse(subnet['cidrBlock']).include?(::IPAddress.parse(cidrBlock))
+                  raise Fog::Compute::AWS::Error.new("Conflict => The CIDR '#{cidrBlock}' conflicts with another subnet")
+                end
+              end
+
               response.status = 200
               data = {
                 'subnetId'                 => Fog::AWS::Mock.subnet_id,
@@ -58,7 +70,7 @@ module Fog
 
               # Add this subnet to the default network ACL
               accid = Fog::AWS::Mock.network_acl_association_id
-              default_nacl = self.data[:network_acls].values.detect { |nacl| nacl['vpcId'] == vpcId && nacl['default'] }
+              default_nacl = self.data[:network_acls].values.find { |nacl| nacl['vpcId'] == vpcId && nacl['default'] }
               default_nacl['associationSet'] << {
                 'networkAclAssociationId' => accid,
                 'networkAclId'            => default_nacl['networkAclId'],
diff --git a/lib/fog/aws/requests/compute/create_tags.rb b/lib/fog/aws/requests/compute/create_tags.rb
index 35c8173..c2ea762 100644
--- a/lib/fog/aws/requests/compute/create_tags.rb
+++ b/lib/fog/aws/requests/compute/create_tags.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Adds tags to resources
@@ -35,33 +34,12 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def create_tags(resources, tags)
           resources = [*resources]
-
-          tagged = resources.map do |resource_id|
-            type = case resource_id
-            when /^ami\-[a-z0-9]{8}$/i
-              'image'
-            when /^i\-[a-z0-9]{8}$/i
-              'instance'
-            when /^snap\-[a-z0-9]{8}$/i
-              'snapshot'
-            when /^vol\-[a-z0-9]{8}$/i
-              'volume'
-            when /^igw\-[a-z0-9]{8}$/i
-              'internet_gateway'
-            end
-            if type && ((type == 'image' && visible_images[resource_id]) || self.data[:"#{type}s"][resource_id])
-              { 'resourceId' => resource_id, 'resourceType' => type }
-            else
-              raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
-            end
-          end
+          tagged = tagged_resources(resources)
 
           tags.each do |key, value|
             self.data[:tags][key] ||= {}
@@ -81,9 +59,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/compute/create_volume.rb b/lib/fog/aws/requests/compute/create_volume.rb
index e948a8a..cda0a70 100644
--- a/lib/fog/aws/requests/compute/create_volume.rb
+++ b/lib/fog/aws/requests/compute/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_volume'
 
         # Create an EBS volume
@@ -14,6 +13,7 @@ module Fog
         #   * 'SnapshotId'<~String> - Optional, snapshot to create volume from
         #   * 'VolumeType'<~String> - Optional, volume type. standard or io1, default is standard.
         #   * 'Iops'<~Integer> - Number of IOPS the volume supports. Required if VolumeType is io1, must be between 1 and 4000.
+        #   * 'Encrypted'<~Boolean> - Optional, specifies whether the volume should be encrypted, default is false.
         #
         # ==== Returns
         # * response<~Excon::Response>:
@@ -26,6 +26,7 @@ module Fog
         #     * 'volumeId'<~String> - Reference to volume
         #     * 'volumeType'<~String> - Type of volume
         #     * 'iops'<~Integer> - Number of IOPS the volume supports
+        #     * 'encrypted'<~Boolean> - Indicates whether the volume will be encrypted
         #
         # {Amazon API Reference}[http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVolume.html]
         def create_volume(availability_zone, size, options = {})
@@ -41,11 +42,9 @@ module Fog
             :parser             => Fog::Parsers::Compute::AWS::CreateVolume.new
           }.merge(options))
         end
-
       end
 
       class Mock
-
         def create_volume(availability_zone, size, options = {})
           unless options.is_a?(Hash)
             Fog::Logger.deprecation("create_volume with a bare snapshot_id is deprecated, use create_volume(availability_zone, size, 'SnapshotId' => snapshot_id) instead [light_black](#{caller.first})[/]")
@@ -75,8 +74,8 @@ module Fog
                 raise Fog::Compute::AWS::Error.new("InvalidParameterValue => Volume of #{size}GiB is too small; minimum is 10GiB.")
               end
 
-              if (iops_to_size_ratio = iops.to_f / size.to_f) > 10.0
-                raise Fog::Compute::AWS::Error.new("InvalidParameterValue => Iops to volume size ratio of #{"%.1f" % iops_to_size_ratio} is too high; maximum is 10.0")
+              if (iops_to_size_ratio = iops.to_f / size.to_f) > 30.0
+                raise Fog::Compute::AWS::Error.new("InvalidParameterValue => Iops to volume size ratio of #{"%.1f" % iops_to_size_ratio} is too high; maximum is 30.0")
               end
 
               if iops < 100
@@ -95,6 +94,7 @@ module Fog
               'attachmentSet'     => [],
               'createTime'        => Time.now,
               'iops'              => options['Iops'],
+              'encrypted'         => options['Encrypted'] || false,
               'size'              => size,
               'snapshotId'        => options['SnapshotId'],
               'status'            => 'creating',
@@ -104,7 +104,7 @@ module Fog
             self.data[:volumes][volume_id] = data
             response.body = {
               'requestId' => Fog::AWS::Mock.request_id
-            }.merge!(data.reject {|key,value| !['availabilityZone','createTime','size','snapshotId','status','volumeId','volumeType'].include?(key) })
+            }.merge!(data.reject {|key,value| !['availabilityZone','createTime','encrypted','size','snapshotId','status','volumeId','volumeType'].include?(key) })
           else
             response.status = 400
             response.body = {
@@ -118,7 +118,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/create_vpc.rb b/lib/fog/aws/requests/compute/create_vpc.rb
index 124b406..0afd3c8 100644
--- a/lib/fog/aws/requests/compute/create_vpc.rb
+++ b/lib/fog/aws/requests/compute/create_vpc.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/create_vpc'
 
         # Creates a VPC with the CIDR block you specify.
@@ -34,7 +33,6 @@ module Fog
             'CidrBlock' => cidrBlock,
             :parser => Fog::Parsers::Compute::AWS::CreateVpc.new
           }.merge!(options))
-
         end
       end
 
@@ -45,11 +43,14 @@ module Fog
               response.status = 200
               vpc_id = Fog::AWS::Mock.vpc_id
               vpc = {
-                'vpcId'         => vpc_id,
-                'state'         => 'pending',
-                'cidrBlock'     => cidrBlock,
-                'dhcpOptionsId' => Fog::AWS::Mock.request_id,
-                'tagSet'        => {}
+                'vpcId'              => vpc_id,
+                'state'              => 'pending',
+                'cidrBlock'          => cidrBlock,
+                'dhcpOptionsId'      => Fog::AWS::Mock.request_id,
+                'tagSet'             => {},
+                'enableDnsSupport'   => true,
+                'enableDnsHostnames' => false,
+                'mapPublicIpOnLaunch'=> false
               }
               self.data[:vpcs].push(vpc)
 
diff --git a/lib/fog/aws/requests/compute/delete_dhcp_options.rb b/lib/fog/aws/requests/compute/delete_dhcp_options.rb
index 2ef0611..d8f076b 100644
--- a/lib/fog/aws/requests/compute/delete_dhcp_options.rb
+++ b/lib/fog/aws/requests/compute/delete_dhcp_options.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         #Deletes a set of DHCP options that you specify. Amazon VPC returns an error if the set of options you specify is currently
         #associated with a VPC. You can disassociate the set of options by associating either a new set of options or the default
diff --git a/lib/fog/aws/requests/compute/delete_internet_gateway.rb b/lib/fog/aws/requests/compute/delete_internet_gateway.rb
index 68c3431..ce725dc 100644
--- a/lib/fog/aws/requests/compute/delete_internet_gateway.rb
+++ b/lib/fog/aws/requests/compute/delete_internet_gateway.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         #Deletes an Internet gateway from your AWS account. The gateway must not be attached to a VPC
         #
diff --git a/lib/fog/aws/requests/compute/delete_key_pair.rb b/lib/fog/aws/requests/compute/delete_key_pair.rb
index 39c5486..c39cf3b 100644
--- a/lib/fog/aws/requests/compute/delete_key_pair.rb
+++ b/lib/fog/aws/requests/compute/delete_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Delete a key pair that you own
@@ -25,11 +24,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_key_pair(key_name)
           response = Excon::Response.new
           self.data[:key_pairs].delete(key_name)
@@ -40,7 +37,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/delete_network_acl_entry.rb b/lib/fog/aws/requests/compute/delete_network_acl_entry.rb
index fe7ebf6..7108bea 100644
--- a/lib/fog/aws/requests/compute/delete_network_acl_entry.rb
+++ b/lib/fog/aws/requests/compute/delete_network_acl_entry.rb
@@ -33,7 +33,7 @@ module Fog
         def delete_network_acl_entry(network_acl_id, rule_number, egress)
           response = Excon::Response.new
           if self.data[:network_acls][network_acl_id]
-            if self.data[:network_acls][network_acl_id]['entrySet'].detect { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
+            if self.data[:network_acls][network_acl_id]['entrySet'].find { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
               self.data[:network_acls][network_acl_id]['entrySet'].delete_if { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
             else
               raise Fog::Compute::AWS::Error.new("No rule with that number and egress value")
diff --git a/lib/fog/aws/requests/compute/delete_network_interface.rb b/lib/fog/aws/requests/compute/delete_network_interface.rb
index 40ed028..f80c37e 100644
--- a/lib/fog/aws/requests/compute/delete_network_interface.rb
+++ b/lib/fog/aws/requests/compute/delete_network_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         # Deletes a network interface.
         #
diff --git a/lib/fog/aws/requests/compute/delete_placement_group.rb b/lib/fog/aws/requests/compute/delete_placement_group.rb
index b82f5d4..adc5e84 100644
--- a/lib/fog/aws/requests/compute/delete_placement_group.rb
+++ b/lib/fog/aws/requests/compute/delete_placement_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Delete a placement group that you own
@@ -25,7 +24,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/delete_route.rb b/lib/fog/aws/requests/compute/delete_route.rb
index b7ff8d1..babe77a 100755
--- a/lib/fog/aws/requests/compute/delete_route.rb
+++ b/lib/fog/aws/requests/compute/delete_route.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Deletes the specified route from the specified route table.
@@ -26,11 +25,9 @@ module Fog
             :parser                 => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_route(route_table_id, destination_cidr_block)
           route_table = self.data[:route_tables].find { |routetable| routetable["routeTableId"].eql? route_table_id }
           unless route_table.nil?
diff --git a/lib/fog/aws/requests/compute/delete_route_table.rb b/lib/fog/aws/requests/compute/delete_route_table.rb
index 8f189e0..5ddb13d 100755
--- a/lib/fog/aws/requests/compute/delete_route_table.rb
+++ b/lib/fog/aws/requests/compute/delete_route_table.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Deletes the specified route table.
@@ -24,7 +23,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/compute/delete_security_group.rb b/lib/fog/aws/requests/compute/delete_security_group.rb
index 2315275..7117bcf 100644
--- a/lib/fog/aws/requests/compute/delete_security_group.rb
+++ b/lib/fog/aws/requests/compute/delete_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Delete a security group that you own
@@ -36,7 +35,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/compute/delete_snapshot.rb b/lib/fog/aws/requests/compute/delete_snapshot.rb
index c96521c..c64bdfc 100644
--- a/lib/fog/aws/requests/compute/delete_snapshot.rb
+++ b/lib/fog/aws/requests/compute/delete_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Delete a snapshot of an EBS volume that you own
@@ -25,11 +24,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_snapshot(snapshot_id)
           response = Excon::Response.new
           if snapshot = self.data[:snapshots].delete(snapshot_id)
@@ -43,7 +40,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The snapshot '#{snapshot_id}' does not exist.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/delete_spot_datafeed_subscription.rb b/lib/fog/aws/requests/compute/delete_spot_datafeed_subscription.rb
index ef94a2f..0a9e94c 100644
--- a/lib/fog/aws/requests/compute/delete_spot_datafeed_subscription.rb
+++ b/lib/fog/aws/requests/compute/delete_spot_datafeed_subscription.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Delete a spot datafeed subscription
@@ -21,7 +20,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/delete_subnet.rb b/lib/fog/aws/requests/compute/delete_subnet.rb
index 01df8a1..34874cd 100644
--- a/lib/fog/aws/requests/compute/delete_subnet.rb
+++ b/lib/fog/aws/requests/compute/delete_subnet.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         # Deletes a subnet from a VPC. You must terminate all running instances in the subnet before deleting it, otherwise Amazon
         # VPC returns an error
diff --git a/lib/fog/aws/requests/compute/delete_tags.rb b/lib/fog/aws/requests/compute/delete_tags.rb
index 83ad067..77111a2 100644
--- a/lib/fog/aws/requests/compute/delete_tags.rb
+++ b/lib/fog/aws/requests/compute/delete_tags.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Remove tags from resources
@@ -37,28 +36,11 @@ module Fog
             :parser             => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(params))
         end
-
       end
 
       class Mock
         def delete_tags(resources, tags)
-          tagged = Array(resources).map do |resource_id|
-            type = case resource_id
-            when /^ami\-[a-z0-9]{8}$/i
-              'image'
-            when /^i\-[a-z0-9]{8}$/i
-              'instance'
-            when /^snap\-[a-z0-9]{8}$/i
-              'snapshot'
-            when /^vol\-[a-z0-9]{8}$/i
-              'volume'
-            end
-            if type && ((type == 'image' && visible_images[resource_id]) || self.data[:"#{type}s"][resource_id])
-              { 'resourceId' => resource_id, 'resourceType' => type }
-            else
-              raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
-            end
-          end
+          tagged = tagged_resources(resources)
 
           tags.each do |key, value|
             self.data[:tags][key][value] = self.data[:tags][key][value] - tagged
@@ -67,7 +49,7 @@ module Fog
           tagged.each do |resource|
             tags.each do |key, value|
               tagset = self.data[:tag_sets][resource['resourceId']]
-              tagset.delete(key) if tagset.has_key?(key) && (value.nil? || tagset[key] == value)
+              tagset.delete(key) if tagset.key?(key) && (value.nil? || tagset[key] == value)
             end
           end
 
@@ -80,7 +62,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/compute/delete_volume.rb b/lib/fog/aws/requests/compute/delete_volume.rb
index cb44362..e3dd3eb 100644
--- a/lib/fog/aws/requests/compute/delete_volume.rb
+++ b/lib/fog/aws/requests/compute/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Delete an EBS volume
@@ -25,11 +24,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_volume(volume_id)
           response = Excon::Response.new
           if volume = self.data[:volumes][volume_id]
@@ -49,7 +46,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The volume '#{volume_id}' does not exist.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/delete_vpc.rb b/lib/fog/aws/requests/compute/delete_vpc.rb
index c547205..a2c99b5 100644
--- a/lib/fog/aws/requests/compute/delete_vpc.rb
+++ b/lib/fog/aws/requests/compute/delete_vpc.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Deletes a VPC. You must detach or delete all gateways or other objects
diff --git a/lib/fog/aws/requests/compute/deregister_image.rb b/lib/fog/aws/requests/compute/deregister_image.rb
index bea353d..c21b892 100644
--- a/lib/fog/aws/requests/compute/deregister_image.rb
+++ b/lib/fog/aws/requests/compute/deregister_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/deregister_image'
 
         # deregister an image
@@ -24,11 +23,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::DeregisterImage.new
           )
         end
-
       end
 
       class Mock
-
         def deregister_image(image_id)
           response = Excon::Response.new
           if image_id
@@ -46,7 +43,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new(message)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_account_attributes.rb b/lib/fog/aws/requests/compute/describe_account_attributes.rb
index bc296bf..222509a 100644
--- a/lib/fog/aws/requests/compute/describe_account_attributes.rb
+++ b/lib/fog/aws/requests/compute/describe_account_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_account_attributes'
 
         # Describe account attributes
diff --git a/lib/fog/aws/requests/compute/describe_addresses.rb b/lib/fog/aws/requests/compute/describe_addresses.rb
index 6cce437..fd52642 100644
--- a/lib/fog/aws/requests/compute/describe_addresses.rb
+++ b/lib/fog/aws/requests/compute/describe_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_addresses'
 
         # Describe all or specified IP addresses.
@@ -31,11 +30,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeAddresses.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_addresses(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_addresses with #{filters.class} param is deprecated, use describe_addresses('public-ip' => []) instead [light_black](#{caller.first})[/]")
@@ -59,7 +56,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_availability_zones.rb b/lib/fog/aws/requests/compute/describe_availability_zones.rb
index 45981bc..de27eec 100644
--- a/lib/fog/aws/requests/compute/describe_availability_zones.rb
+++ b/lib/fog/aws/requests/compute/describe_availability_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_availability_zones'
 
         # Describe all or specified availability zones
@@ -32,11 +31,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeAvailabilityZones.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_availability_zones(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_availability_zones with #{filters.class} param is deprecated, use describe_availability_zones('zone-name' => []) instead [light_black](#{caller.first})[/]")
@@ -91,7 +88,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_dhcp_options.rb b/lib/fog/aws/requests/compute/describe_dhcp_options.rb
index 3e1a744..9ae9b10 100644
--- a/lib/fog/aws/requests/compute/describe_dhcp_options.rb
+++ b/lib/fog/aws/requests/compute/describe_dhcp_options.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_dhcp_options'
 
         # Describe all or specified dhcp_options
diff --git a/lib/fog/aws/requests/compute/describe_images.rb b/lib/fog/aws/requests/compute/describe_images.rb
index 587f283..2f786c6 100644
--- a/lib/fog/aws/requests/compute/describe_images.rb
+++ b/lib/fog/aws/requests/compute/describe_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_images'
 
         # Describe all or specified images.
@@ -53,11 +52,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeImages.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_images(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_images with #{filters.class} param is deprecated, use describe_images('image-id' => []) instead [light_black](#{caller.first})[/]")
@@ -123,7 +120,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_instance_status.rb b/lib/fog/aws/requests/compute/describe_instance_status.rb
index 6ccca84..ba07c56 100644
--- a/lib/fog/aws/requests/compute/describe_instance_status.rb
+++ b/lib/fog/aws/requests/compute/describe_instance_status.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_instance_status'
 
         # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstanceStatus.html
@@ -40,7 +39,6 @@ module Fog
           }
 
           response
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/compute/describe_instances.rb b/lib/fog/aws/requests/compute/describe_instances.rb
index e2cce01..c7e0fac 100644
--- a/lib/fog/aws/requests/compute/describe_instances.rb
+++ b/lib/fog/aws/requests/compute/describe_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_instances'
 
         # Describe all or specified instances
@@ -75,11 +74,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeInstances.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_instances(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_instances with #{filters.class} param is deprecated, use describe_instances('instance-id' => []) instead [light_black](#{caller.first})[/]")
@@ -142,13 +139,16 @@ module Fog
           for filter_key, filter_value in filters
             if block_device_mapping_key = filter_key.split('block-device-mapping.')[1]
               aliased_key = block_device_mapping_aliases[block_device_mapping_key]
-              instance_set = instance_set.reject{|instance| !instance['blockDeviceMapping'].detect {|block_device_mapping| [*filter_value].include?(block_device_mapping[aliased_key])}}
+              instance_set = instance_set.reject{|instance| !instance['blockDeviceMapping'].find {|block_device_mapping| [*filter_value].include?(block_device_mapping[aliased_key])}}
             elsif instance_state_key = filter_key.split('instance-state-')[1]
               aliased_key = instance_state_aliases[instance_state_key]
               instance_set = instance_set.reject{|instance| ![*filter_value].include?(instance['instanceState'][aliased_key])}
             elsif state_reason_key = filter_key.split('state-reason-')[1]
               aliased_key = state_reason_aliases[state_reason_key]
               instance_set = instance_set.reject{|instance| ![*filter_value].include?(instance['stateReason'][aliased_key])}
+            elsif filter_key == "availability-zone"
+              aliased_key = aliases[filter_key]
+              instance_set = instance_set.reject{|instance| ![*filter_value].include?(instance['placement'][aliased_key])}
             elsif filter_key == "group-name"
               instance_set = instance_set.reject {|instance| !instance['groupSet'].include?(filter_value)}
             elsif filter_key == "group-id"
@@ -161,7 +161,7 @@ module Fog
             end
           end
 
-          brand_new_instances = instance_set.find_all do |instance|
+          brand_new_instances = instance_set.select do |instance|
             instance['instanceState']['name'] == 'pending' &&
               Time.now - instance['launchTime'] < Fog::Mock.delay * 2
           end
@@ -184,8 +184,6 @@ module Fog
                 instance['ipAddress']         = Fog::AWS::Mock.ip_address
                 instance['originalIpAddress'] = instance['ipAddress']
                 instance['dnsName']           = Fog::AWS::Mock.dns_name_for(instance['ipAddress'])
-                instance['privateIpAddress']  = Fog::AWS::Mock.private_ip_address
-                instance['privateDnsName']    = Fog::AWS::Mock.private_dns_name_for(instance['privateIpAddress'])
                 instance['instanceState']     = { 'code' => 16, 'name' => 'running' }
               end
             when 'rebooting'
@@ -209,18 +207,30 @@ module Fog
 
             if self.data[:instances][instance['instanceId']]
 
-              instance['networkInterfaces'] = self.data[:network_interfaces].select{|ni,ni_conf|
-                  ni_conf['attachment']['instanceId'] == instance['instanceId']
-                }.map{|ni,ni_conf|
-                  {
-                    'ownerId' => ni_conf['ownerId'],
-                    'subnetId' => ni_conf['subnetId'],
-                    'vpcId' => ni_conf['vpcId'],
-                    'networkInterfaceId' => ni_conf['networkInterfaceId'],
-                    'groupSet' => ni_conf['groupSet'],
-                    'attachmentId' => ni_conf['attachment']['attachmentId']
-                  }
+              nics = self.data[:network_interfaces].select{|ni,ni_conf|
+                ni_conf['attachment']['instanceId'] == instance['instanceId']
+              }
+              instance['networkInterfaces'] = nics.map{|ni,ni_conf|
+                {
+                  'ownerId' => ni_conf['ownerId'],
+                  'subnetId' => ni_conf['subnetId'],
+                  'vpcId' => ni_conf['vpcId'],
+                  'networkInterfaceId' => ni_conf['networkInterfaceId'],
+                  'groupSet' => ni_conf['groupSet'],
+                  'attachmentId' => ni_conf['attachment']['attachmentId']
                 }
+              }
+              if nics.count > 0
+
+                instance['privateIpAddress'] = nics.sort_by {|ni, ni_conf|
+                  ni_conf['attachment']['deviceIndex']
+                }.map{ |ni, ni_conf| ni_conf['privateIpAddress'] }.first
+
+                instance['privateDnsName'] = Fog::AWS::Mock.private_dns_name_for(instance['privateIpAddress'])
+              else
+                instance['privateIpAddress'] = ''
+                instance['privateDnsName'] = ''
+              end
 
               reservation_set[instance['reservationId']] ||= {
                 'groupSet'      => instance['groupSet'],
@@ -229,7 +239,7 @@ module Fog
                 'ownerId'       => instance['ownerId'],
                 'reservationId' => instance['reservationId']
               }
-              reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'architecture', 'blockDeviceMapping', 'clientToken', 'dnsName', 'ebsOptimized', 'hypervisor', 'iamInstanceProfile', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'ipAddress', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'networkInterfaces', 'ownerId', 'placement', 'platform', 'privateDnsName', 'privateIpAddress', 'productCodes', 'ramdiskId', 'reaso [...]
+              reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'architecture', 'blockDeviceMapping', 'clientToken', 'dnsName', 'ebsOptimized', 'hypervisor', 'iamInstanceProfile', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'ipAddress', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'networkInterfaces', 'ownerId', 'placement', 'platform', 'privateDnsName', 'privateIpAddress', 'productCodes', 'ramdiskId', 'reaso [...]
             end
           end
 
@@ -239,7 +249,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_internet_gateways.rb b/lib/fog/aws/requests/compute/describe_internet_gateways.rb
index f73f20e..d01fa3e 100644
--- a/lib/fog/aws/requests/compute/describe_internet_gateways.rb
+++ b/lib/fog/aws/requests/compute/describe_internet_gateways.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_internet_gateways'
 
         # Describe all or specified internet_gateways
diff --git a/lib/fog/aws/requests/compute/describe_key_pairs.rb b/lib/fog/aws/requests/compute/describe_key_pairs.rb
index 4744d64..cd98d2d 100644
--- a/lib/fog/aws/requests/compute/describe_key_pairs.rb
+++ b/lib/fog/aws/requests/compute/describe_key_pairs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_key_pairs'
 
         # Describe all or specified key pairs
@@ -31,11 +30,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeKeyPairs.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_key_pairs(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_key_pairs with #{filters.class} param is deprecated, use describe_key_pairs('key-name' => []) instead [light_black](#{caller.first})[/]")
@@ -61,7 +58,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_network_acls.rb b/lib/fog/aws/requests/compute/describe_network_acls.rb
index 0f88751..a788ec7 100644
--- a/lib/fog/aws/requests/compute/describe_network_acls.rb
+++ b/lib/fog/aws/requests/compute/describe_network_acls.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_network_acls'
 
         # Describe all or specified network ACLs
@@ -54,6 +53,7 @@ module Fog
           response = Excon::Response.new
 
           network_acls = self.data[:network_acls].values
+          network_acls = apply_tag_filters(network_acls, filters, 'networkAclId')
 
           aliases = {
             'vpc-id'         => 'vpcId',
@@ -77,20 +77,25 @@ module Fog
             filter_key = filter_key.to_s
             if association_key = filter_key.split('association.')[1]
               aliased_key = association_aliases[association_key]
-              network_acls = network_acls.reject{|nacl| !nacl['associationSet'].detect {|association| [*filter_value].include?(association[aliased_key])}}
+              network_acls = network_acls.reject{|nacl| !nacl['associationSet'].find {|association| [*filter_value].include?(association[aliased_key])}}
             elsif entry_key = filter_key.split('entry.icmp.')[1]
-              network_acls = network_acls.reject{|nacl| !nacl['entrySet'].detect {|association| [*filter_value].include?(association['icmpTypeCode'][entry_key])}}
+              network_acls = network_acls.reject{|nacl| !nacl['entrySet'].find {|association| [*filter_value].include?(association['icmpTypeCode'][entry_key])}}
             elsif entry_key = filter_key.split('entry.port-range.')[1]
-              network_acls = network_acls.reject{|nacl| !nacl['entrySet'].detect {|association| [*filter_value].include?(association['portRange'][entry_key])}}
+              network_acls = network_acls.reject{|nacl| !nacl['entrySet'].find {|association| [*filter_value].include?(association['portRange'][entry_key])}}
             elsif entry_key = filter_key.split('entry.')[1]
               aliased_key = entry_aliases[entry_key]
-              network_acls = network_acls.reject{|nacl| !nacl['entrySet'].detect {|association| [*filter_value].include?(association[aliased_key])}}
+              network_acls = network_acls.reject{|nacl| !nacl['entrySet'].find {|association| [*filter_value].include?(association[aliased_key])}}
             else
               aliased_key = aliases[filter_key]
               network_acls = network_acls.reject{|nacl| ![*filter_value].include?(nacl[aliased_key])}
             end
           end
 
+          network_acls.each do |acl|
+            tags = self.data[:tag_sets][acl['networkAclId']]
+            acl.merge!('tagSet' => tags) if tags
+          end
+
           response.status = 200
           response.body = {
             'requestId'     => Fog::AWS::Mock.request_id,
diff --git a/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb b/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb
index 1344512..708b740 100644
--- a/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb
+++ b/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_network_interface_attribute'
         # Describes a network interface attribute value
         #
diff --git a/lib/fog/aws/requests/compute/describe_network_interfaces.rb b/lib/fog/aws/requests/compute/describe_network_interfaces.rb
index 193f7e9..96a2644 100644
--- a/lib/fog/aws/requests/compute/describe_network_interfaces.rb
+++ b/lib/fog/aws/requests/compute/describe_network_interfaces.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_network_interfaces'
 
         # Describe all or specified network interfaces
@@ -63,9 +62,7 @@ module Fog
         end
       end
 
-
       class Mock
-
         def describe_network_interfaces(filters = {})
           response = Excon::Response.new
 
@@ -82,7 +79,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_placement_groups.rb b/lib/fog/aws/requests/compute/describe_placement_groups.rb
index dce5d28..a3f6541 100644
--- a/lib/fog/aws/requests/compute/describe_placement_groups.rb
+++ b/lib/fog/aws/requests/compute/describe_placement_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_placement_groups'
 
         # Describe all or specified placement groups
@@ -28,7 +27,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribePlacementGroups.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_regions.rb b/lib/fog/aws/requests/compute/describe_regions.rb
index 56289b4..c0b34b5 100644
--- a/lib/fog/aws/requests/compute/describe_regions.rb
+++ b/lib/fog/aws/requests/compute/describe_regions.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_regions'
 
         # Describe all or specified regions
@@ -31,11 +30,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeRegions.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_regions(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_regions with #{filters.class} param is deprecated, use describe_regions('region-name' => []) instead [light_black](#{caller.first})[/]")
@@ -61,7 +58,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_reserved_instances.rb b/lib/fog/aws/requests/compute/describe_reserved_instances.rb
index b662029..1c31fbd 100644
--- a/lib/fog/aws/requests/compute/describe_reserved_instances.rb
+++ b/lib/fog/aws/requests/compute/describe_reserved_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_reserved_instances'
 
         # Describe all or specified reserved instances
@@ -40,7 +39,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeReservedInstances.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb b/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb
index 7a52f6a..72b0b65 100644
--- a/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb
+++ b/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_reserved_instances_offerings'
 
         # Describe all or specified reserved instances offerings
diff --git a/lib/fog/aws/requests/compute/describe_route_tables.rb b/lib/fog/aws/requests/compute/describe_route_tables.rb
index 3db2ca4..19ce54d 100755
--- a/lib/fog/aws/requests/compute/describe_route_tables.rb
+++ b/lib/fog/aws/requests/compute/describe_route_tables.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_route_tables'
 
         # Describe one or more of your route tables.
diff --git a/lib/fog/aws/requests/compute/describe_security_groups.rb b/lib/fog/aws/requests/compute/describe_security_groups.rb
index d13570a..6d4beb6 100644
--- a/lib/fog/aws/requests/compute/describe_security_groups.rb
+++ b/lib/fog/aws/requests/compute/describe_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_security_groups'
 
         # Describe all or specified security groups
@@ -42,11 +41,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeSecurityGroups.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_security_groups(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_security_groups with #{filters.class} param is deprecated, use describe_security_groups('group-name' => []) instead [light_black](#{caller.first})[/]")
@@ -73,14 +70,14 @@ module Fog
           for filter_key, filter_value in filters
             if permission_key = filter_key.split('ip-permission.')[1]
               if permission_key == 'group-name'
-                security_group_info = security_group_info.reject{|security_group| !security_group_groups.call(security_group).detect {|group| [*filter_value].include?(group['groupName'])}}
+                security_group_info = security_group_info.reject{|security_group| !security_group_groups.call(security_group).find {|group| [*filter_value].include?(group['groupName'])}}
               elsif permission_key == 'group-id'
-                security_group_info = security_group_info.reject{|security_group| !security_group_groups.call(security_group).detect {|group| [*filter_value].include?(group['groupId'])}}
+                security_group_info = security_group_info.reject{|security_group| !security_group_groups.call(security_group).find {|group| [*filter_value].include?(group['groupId'])}}
               elsif permission_key == 'user-id'
-                security_group_info = security_group_info.reject{|security_group| !security_group_groups.call(security_group).detect {|group| [*filter_value].include?(group['userId'])}}
+                security_group_info = security_group_info.reject{|security_group| !security_group_groups.call(security_group).find {|group| [*filter_value].include?(group['userId'])}}
               else
                 aliased_key = permission_aliases[filter_key]
-                security_group_info = security_group_info.reject{|security_group| !security_group['ipPermissions'].detect {|permission| [*filter_value].include?(permission[aliased_key])}}
+                security_group_info = security_group_info.reject{|security_group| !security_group['ipPermissions'].find {|permission| [*filter_value].include?(permission[aliased_key])}}
               end
             else
               aliased_key = aliases[filter_key]
@@ -95,7 +92,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_snapshots.rb b/lib/fog/aws/requests/compute/describe_snapshots.rb
index 8f4c62d..dca6cda 100644
--- a/lib/fog/aws/requests/compute/describe_snapshots.rb
+++ b/lib/fog/aws/requests/compute/describe_snapshots.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_snapshots'
 
         # Describe all or specified snapshots
@@ -18,6 +17,7 @@ module Fog
         #   * body<~Hash>:
         #     * 'requestId'<~String> - Id of request
         #     * 'snapshotSet'<~Array>:
+        #       * 'encrypted'<~Boolean>: The encryption status of the snapshot.
         #       * 'progress'<~String>: The percentage progress of the snapshot
         #       * 'snapshotId'<~String>: Id of the snapshot
         #       * 'startTime'<~Time>: Timestamp of when snapshot was initiated
@@ -35,7 +35,7 @@ module Fog
           end
 
           for key in ['ExecutableBy', 'ImageId', 'Owner', 'RestorableBy']
-            if filters.has_key?(key)
+            if filters.key?(key)
               options[key] = filters.delete(key)
             end
           end
@@ -47,11 +47,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeSnapshots.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_snapshots(filters = {}, options = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_snapshots with #{filters.class} param is deprecated, use describe_snapshots('snapshot-id' => []) instead [light_black](#{caller.first})[/]")
@@ -76,6 +74,7 @@ module Fog
 
           aliases = {
             'description' => 'description',
+            'encrypted'   => 'encrypted',
             'owner-id'    => 'ownerId',
             'progress'    => 'progress',
             'snapshot-id' => 'snapshotId',
@@ -115,7 +114,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_spot_datafeed_subscription.rb b/lib/fog/aws/requests/compute/describe_spot_datafeed_subscription.rb
index 085ab42..25e0ca9 100644
--- a/lib/fog/aws/requests/compute/describe_spot_datafeed_subscription.rb
+++ b/lib/fog/aws/requests/compute/describe_spot_datafeed_subscription.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/spot_datafeed_subscription'
 
         # Describe spot datafeed subscription
@@ -28,7 +27,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::SpotDatafeedSubscription.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_spot_instance_requests.rb b/lib/fog/aws/requests/compute/describe_spot_instance_requests.rb
index 38c9867..a65b514 100644
--- a/lib/fog/aws/requests/compute/describe_spot_instance_requests.rb
+++ b/lib/fog/aws/requests/compute/describe_spot_instance_requests.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/spot_instance_requests'
 
         # Describe all or specified spot instance requests
@@ -41,7 +40,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::SpotInstanceRequests.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_spot_price_history.rb b/lib/fog/aws/requests/compute/describe_spot_price_history.rb
index 8d6e65f..ddff34f 100644
--- a/lib/fog/aws/requests/compute/describe_spot_price_history.rb
+++ b/lib/fog/aws/requests/compute/describe_spot_price_history.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_spot_price_history'
 
         # Describe all or specified spot price history
@@ -30,7 +29,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeSpotPriceHistory.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_subnets.rb b/lib/fog/aws/requests/compute/describe_subnets.rb
index 0af202c..f48967f 100644
--- a/lib/fog/aws/requests/compute/describe_subnets.rb
+++ b/lib/fog/aws/requests/compute/describe_subnets.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_subnets'
 
         # Describe all or specified subnets
diff --git a/lib/fog/aws/requests/compute/describe_tags.rb b/lib/fog/aws/requests/compute/describe_tags.rb
index 1c0a2b6..273db7c 100644
--- a/lib/fog/aws/requests/compute/describe_tags.rb
+++ b/lib/fog/aws/requests/compute/describe_tags.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_tags'
 
         # Describe all or specified tags
@@ -32,7 +31,6 @@ module Fog
       end
 
       class Mock
-
         def describe_tags(filters = {})
           response = Excon::Response.new
 
@@ -93,7 +91,7 @@ module Fog
           def deep_clone(obj)
             case obj
             when Hash
-              obj.inject({}) { |h, pair| h[pair.first] = deep_clone(pair.last); h }
+              obj.reduce({}) { |h, pair| h[pair.first] = deep_clone(pair.last); h }
             when Array
               obj.map { |o| deep_clone(o) }
             else
@@ -101,7 +99,6 @@ module Fog
             end
           end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/compute/describe_volume_status.rb b/lib/fog/aws/requests/compute/describe_volume_status.rb
index 4fa4fe6..7a8d57d 100644
--- a/lib/fog/aws/requests/compute/describe_volume_status.rb
+++ b/lib/fog/aws/requests/compute/describe_volume_status.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_volume_status'
 
         # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumeStatus.html
@@ -37,7 +36,6 @@ module Fog
           }
 
           response
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/compute/describe_volumes.rb b/lib/fog/aws/requests/compute/describe_volumes.rb
index 12c7452..ae7b4ef 100644
--- a/lib/fog/aws/requests/compute/describe_volumes.rb
+++ b/lib/fog/aws/requests/compute/describe_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_volumes'
 
         # Describe all or specified volumes.
@@ -16,6 +15,7 @@ module Fog
         #     * 'volumeSet'<~Array>:
         #       * 'availabilityZone'<~String> - Availability zone for volume
         #       * 'createTime'<~Time> - Timestamp for creation
+        #       * 'encrypted'<~Boolean> - Indicates whether the volume will be encrypted
         #       * 'iops'<~Integer> - Number of IOPS volume supports
         #       * 'size'<~Integer> - Size in GiBs for volume
         #       * 'snapshotId'<~String> - Snapshot volume was created from, if any
@@ -43,11 +43,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DescribeVolumes.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def describe_volumes(filters = {})
           unless filters.is_a?(Hash)
             Fog::Logger.deprecation("describe_volumes with #{filters.class} param is deprecated, use describe_volumes('volume-id' => []) instead [light_black](#{caller.first})[/]")
@@ -62,6 +60,7 @@ module Fog
           aliases = {
             'availability-zone' => 'availabilityZone',
             'create-time' => 'createTime',
+            'encrypted' => 'encrypted',
             'size' => 'size',
             'snapshot-id' => 'snapshotId',
             'status' => 'status',
@@ -78,7 +77,7 @@ module Fog
           for filter_key, filter_value in filters
             if attachment_key = filter_key.split('attachment.')[1]
               aliased_key = attachment_aliases[filter_key]
-              volume_set = volume_set.reject{|volume| !volume['attachmentSet'].detect {|attachment| [*filter_value].include?(attachment[aliased_key])}}
+              volume_set = volume_set.reject{|volume| !volume['attachmentSet'].find {|attachment| [*filter_value].include?(attachment[aliased_key])}}
             else
               aliased_key = aliases[filter_key]
               volume_set = volume_set.reject{|volume| ![*filter_value].include?(volume[aliased_key])}
@@ -113,7 +112,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/describe_vpc_attribute.rb b/lib/fog/aws/requests/compute/describe_vpc_attribute.rb
new file mode 100644
index 0000000..011f248
--- /dev/null
+++ b/lib/fog/aws/requests/compute/describe_vpc_attribute.rb
@@ -0,0 +1,55 @@
+module Fog
+  module Compute
+    class AWS
+      class Real
+        require 'fog/aws/parsers/compute/describe_vpc_attribute'
+        # Describes a vpc attribute value
+        #
+        # ==== Parameters
+        # * vpc_id<~String>    - The ID of the VPC you want to describe an attribute of
+        # * attribute<~String> - The attribute to describe, must be one of 'enableDnsSupport' or 'enableDnsHostnames'
+        #
+        # === Returns
+        # * response<~Excon::Response>:
+        # * body<~Hash>:
+        # * 'requestId'<~String>           - Id of request
+        # * 'vpcId'<~String>               - The ID of the VPC
+        # * 'enableDnsSupport'<~Boolean>   - Flag indicating whether DNS resolution is enabled for the VPC (if requested)
+        # * 'enableDnsHostnames'<~Boolean> - Flag indicating whether the instances launched in the VPC get DNS hostnames (if requested)
+        #
+        # (Amazon API Reference)[http://docs.amazonwebservices.com/AWSEC2/2014-02-01/APIReference/ApiReference-query-DescribeVpcAttribute.html]
+        def describe_vpc_attribute(vpc_id, attribute)
+          request(
+            'Action'    => 'DescribeVpcAttribute',
+            'VpcId'     => vpc_id,
+            'Attribute' => attribute,
+            :parser     => Fog::Parsers::Compute::AWS::DescribeVpcAttribute.new
+          )
+        end
+      end
+
+      class Mock
+        def describe_vpc_attribute(vpc_id, attribute)
+          response = Excon::Response.new
+          if vpc = self.data[:vpcs].find{ |v| v['vpcId'] == vpc_id }
+            response.status = 200
+            response.body = {
+              'requestId' => Fog::AWS::Mock.request_id,
+              'vpcId'     => vpc_id
+            }
+
+            case attribute
+            when 'enableDnsSupport', 'enableDnsHostnames'
+              response.body[attribute] = vpc[attribute]
+            else
+              raise Fog::Compute::AWS::Error.new("Illegal attribute '#{attribute}' specified")
+            end
+            response
+          else
+            raise Fog::Compute::AWS::NotFound.new("The VPC '#{vpc_id}' does not exist")
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/compute/describe_vpcs.rb b/lib/fog/aws/requests/compute/describe_vpcs.rb
index 9511ad9..ef85a54 100644
--- a/lib/fog/aws/requests/compute/describe_vpcs.rb
+++ b/lib/fog/aws/requests/compute/describe_vpcs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/describe_vpcs'
 
         # Describe all or specified vpcs
@@ -42,6 +41,7 @@ module Fog
       class Mock
         def describe_vpcs(filters = {})
           vpcs = self.data[:vpcs]
+          vpcs = apply_tag_filters(vpcs, filters, 'vpcId')
 
           # Transition from pending to available
           vpcs.each do |vpc|
@@ -55,6 +55,11 @@ module Fog
             vpcs = vpcs.reject {|vpc| vpc['vpcId'] != filters['vpc-id']}
           end
 
+          vpcs.each do |vpc|
+            tags = self.data[:tag_sets][vpc['vpcId']]
+            vpc.merge!('tagSet' => tags) if tags
+          end
+
           Excon::Response.new(
             :status => 200,
             :body   => {
diff --git a/lib/fog/aws/requests/compute/detach_internet_gateway.rb b/lib/fog/aws/requests/compute/detach_internet_gateway.rb
index 8b184f2..9ad8401 100644
--- a/lib/fog/aws/requests/compute/detach_internet_gateway.rb
+++ b/lib/fog/aws/requests/compute/detach_internet_gateway.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         # Detaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC
         #
@@ -26,11 +25,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def detach_internet_gateway(internet_gateway_id, vpc_id)
           response = Excon::Response.new
           if internet_gateway_id && vpc_id
@@ -49,7 +46,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new(message)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/detach_network_interface.rb b/lib/fog/aws/requests/compute/detach_network_interface.rb
index c1004fa..05d8e77 100644
--- a/lib/fog/aws/requests/compute/detach_network_interface.rb
+++ b/lib/fog/aws/requests/compute/detach_network_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
         # Detaches a network interface.
         #
diff --git a/lib/fog/aws/requests/compute/detach_volume.rb b/lib/fog/aws/requests/compute/detach_volume.rb
index d38c6f5..6a26178 100644
--- a/lib/fog/aws/requests/compute/detach_volume.rb
+++ b/lib/fog/aws/requests/compute/detach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/detach_volume'
 
         # Detach an Amazon EBS volume from a running instance
@@ -33,11 +32,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::DetachVolume.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def detach_volume(volume_id, options = {})
           response = Excon::Response.new
           response.status = 200
@@ -58,7 +55,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The volume '#{volume_id}' does not exist.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/disassociate_address.rb b/lib/fog/aws/requests/compute/disassociate_address.rb
index 45402cd..efbda12 100644
--- a/lib/fog/aws/requests/compute/disassociate_address.rb
+++ b/lib/fog/aws/requests/compute/disassociate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Disassociate an elastic IP address from its instance (if any)
@@ -27,11 +26,9 @@ module Fog
             :parser         => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def disassociate_address(public_ip)
           response = Excon::Response.new
           response.status = 200
@@ -52,7 +49,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new("AuthFailure => The address '#{public_ip}' does not belong to you.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/disassociate_route_table.rb b/lib/fog/aws/requests/compute/disassociate_route_table.rb
index 67e6cd7..47f67c4 100755
--- a/lib/fog/aws/requests/compute/disassociate_route_table.rb
+++ b/lib/fog/aws/requests/compute/disassociate_route_table.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Disassociates a subnet from a route table.
@@ -24,11 +23,9 @@ module Fog
             :parser         => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def disassociate_route_table(association_id)
           assoc_array = nil
           routetable = self.data[:route_tables].find { |routetable|
diff --git a/lib/fog/aws/requests/compute/get_console_output.rb b/lib/fog/aws/requests/compute/get_console_output.rb
index fcb2161..0c63960 100644
--- a/lib/fog/aws/requests/compute/get_console_output.rb
+++ b/lib/fog/aws/requests/compute/get_console_output.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/get_console_output'
 
         # Retrieve console output for specified instance
@@ -27,11 +26,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::GetConsoleOutput.new
           )
         end
-
       end
 
       class Mock
-
         def get_console_output(instance_id)
           response = Excon::Response.new
           if instance = self.data[:instances][instance_id]
@@ -47,7 +44,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/get_password_data.rb b/lib/fog/aws/requests/compute/get_password_data.rb
index 9aab302..8db8a77 100644
--- a/lib/fog/aws/requests/compute/get_password_data.rb
+++ b/lib/fog/aws/requests/compute/get_password_data.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/get_password_data'
 
         # Retrieves the encrypted administrator password for an instance running Windows.
@@ -29,11 +28,9 @@ module Fog
             :parser       => Fog::Parsers::Compute::AWS::GetPasswordData.new
           )
         end
-
       end
 
       class Mock
-
         def get_password_data(instance_id)
           response = Excon::Response.new
           if instance = self.data[:instances][instance_id]
@@ -49,7 +46,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/import_key_pair.rb b/lib/fog/aws/requests/compute/import_key_pair.rb
index 89c650e..ac8dbe1 100644
--- a/lib/fog/aws/requests/compute/import_key_pair.rb
+++ b/lib/fog/aws/requests/compute/import_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/import_key_pair'
 
         # Import an existing public key to create a new key pair
@@ -27,11 +26,9 @@ module Fog
             :parser   => Fog::Parsers::Compute::AWS::ImportKeyPair.new
           )
         end
-
       end
 
       class Mock
-
         def import_key_pair(key_name, public_key_material)
           response = Excon::Response.new
           unless self.data[:key_pairs][key_name]
@@ -49,7 +46,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new("InvalidKeyPair.Duplicate => The keypair '#{key_name}' already exists.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/modify_image_attribute.rb b/lib/fog/aws/requests/compute/modify_image_attribute.rb
index 8d8cf09..1eca49b 100644
--- a/lib/fog/aws/requests/compute/modify_image_attribute.rb
+++ b/lib/fog/aws/requests/compute/modify_image_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Modify image attributes
@@ -35,11 +34,9 @@ module Fog
             :parser         => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def modify_image_attribute(image_id, attributes)
           raise ArgumentError.new("image_id is required") unless image_id
 
@@ -67,7 +64,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/modify_instance_attribute.rb b/lib/fog/aws/requests/compute/modify_instance_attribute.rb
index 3972b3a..de18e0b 100644
--- a/lib/fog/aws/requests/compute/modify_instance_attribute.rb
+++ b/lib/fog/aws/requests/compute/modify_instance_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Modify instance attributes
@@ -37,7 +36,6 @@ module Fog
           Fog::Logger.deprecation("modify_instance_attributes method is deprecated, use 'modify_instance_attribute' instead")
           modify_instance_attribute(instance_id, attributes)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb b/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb
index 12f6370..4850ad7 100644
--- a/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb
+++ b/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Modifies a network interface attribute value
diff --git a/lib/fog/aws/requests/compute/modify_snapshot_attribute.rb b/lib/fog/aws/requests/compute/modify_snapshot_attribute.rb
index 698cd92..da6923c 100644
--- a/lib/fog/aws/requests/compute/modify_snapshot_attribute.rb
+++ b/lib/fog/aws/requests/compute/modify_snapshot_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Modify snapshot attributes
@@ -30,7 +29,6 @@ module Fog
             :parser         => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/modify_subnet_attribute.rb b/lib/fog/aws/requests/compute/modify_subnet_attribute.rb
new file mode 100644
index 0000000..9499f73
--- /dev/null
+++ b/lib/fog/aws/requests/compute/modify_subnet_attribute.rb
@@ -0,0 +1,58 @@
+module Fog
+  module Compute
+    class AWS
+      class Real
+        require 'fog/aws/parsers/compute/modify_subnet_attribute'
+
+        # Modifies a subnet attribute.
+        #
+        # ==== Parameters
+        # * SubnetId<~String> - The id of the subnet to modify
+        # * options<~Hash>:
+        #   * MapPublicIpOnLaunch<~Boolean> - Modifies the public IP addressing behavior for the subnet. 
+        #     Specify true to indicate that instances launched into the specified subnet should be assigned a public IP address. 
+        #     If set to true, the instance receives a public IP address only if the instance is launched with a single, 
+        #     new network interface with the device index of 0.
+        #
+        # === Returns
+        # * response<~Excon::Response>:
+        # * body<~Hash>:
+        # * 'requestId'<~String> - Id of request
+        # * 'return'<~Boolean> - Returns true if the request succeeds. Otherwise, returns an error.
+        # http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifySubnetAttribute.html
+        def modify_subnet_attribute(subnet_id, options = {})
+          params = {}
+          params['MapPublicIpOnLaunch.Value'] = options.delete 'MapPublicIpOnLaunch' if options['MapPublicIpOnLaunch']
+          request({
+            'Action' => 'ModifySubnetAttribute',
+            'SubnetId' => subnet_id,
+            :parser => Fog::Parsers::Compute::AWS::ModifySubnetAttribute.new
+          }.merge(params))
+        end
+      end
+
+      class Mock
+        def modify_subnet_attribute(subnet_id, options={})
+          Excon::Response.new.tap do |response|
+            subnet = self.data[:subnets].detect { |v| v['subnetId'] == subnet_id }            
+            if subnet
+              subnet['mapPublicIpOnLaunch'] = options['MapPublicIpOnLaunch']
+
+              response.status = 200
+              
+              response.body = {
+                'requestId' => Fog::AWS::Mock.request_id,
+                'return'    => true
+              }
+            else
+              response.status = 404
+              response.body = {
+                'Code' => 'InvalidParameterValue'
+              }
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/compute/modify_volume_attribute.rb b/lib/fog/aws/requests/compute/modify_volume_attribute.rb
index afbc776..95047c0 100644
--- a/lib/fog/aws/requests/compute/modify_volume_attribute.rb
+++ b/lib/fog/aws/requests/compute/modify_volume_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Modifies a volume attribute.
@@ -27,11 +26,9 @@ module Fog
             :parser              => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def modify_volume_attribute(volume_id=nil, auto_enable_io_value=false)
           response = Excon::Response.new
           if volume = self.data[:volumes][volume_id]
diff --git a/lib/fog/aws/requests/compute/modify_vpc_attribute.rb b/lib/fog/aws/requests/compute/modify_vpc_attribute.rb
index d3634c8..8562621 100644
--- a/lib/fog/aws/requests/compute/modify_vpc_attribute.rb
+++ b/lib/fog/aws/requests/compute/modify_vpc_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Modifies the specified attribute of the specified VPC.
@@ -31,26 +30,34 @@ module Fog
             :parser              => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def modify_vpc_attribute(vpc_id, options = {})
           response = Excon::Response.new
           if options.size == 0
             raise Fog::Compute::AWS::Error.new("InvalidParameterCombination => No attributes specified.")
           elsif options.size > 1
             raise Fog::Compute::AWS::Error.new("InvalidParameterCombination =>  InvalidParameterCombination => Fields for multiple attribute types specified: #{options.keys.join(', ')}")
-          elsif self.data[:vpcs].select{|x| x['vpcId'] == vpc_id}.size
+          elsif vpc = self.data[:vpcs].find{ |v| v['vpcId'] == vpc_id }
             response.status = 200
             response.body = {
               'requestId' => Fog::AWS::Mock.request_id,
               'return'    => true
             }
+
+            attribute = options.keys.first
+            case attribute
+            when 'EnableDnsSupport.Value'
+              vpc['enableDnsSupport'] = options[attribute]
+            when 'EnableDnsHostnames.Value'
+              vpc['enableDnsHostnames'] = options[attribute]
+            else
+              raise Fog::Compute::AWS::Error.new("Illegal attribute '#{attribute}' specified")
+            end
             response
           else
-            raise Fog::Compute::AWS::NotFound.new("The vpc '#{vpc_id}' does not exist.")
+            raise Fog::Compute::AWS::NotFound.new("The VPC '#{vpc_id}' does not exist.")
           end
         end
       end
diff --git a/lib/fog/aws/requests/compute/monitor_instances.rb b/lib/fog/aws/requests/compute/monitor_instances.rb
index 91cbb78..8ff7781 100644
--- a/lib/fog/aws/requests/compute/monitor_instances.rb
+++ b/lib/fog/aws/requests/compute/monitor_instances.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class AWS
-
       class Real
-
         require 'fog/aws/parsers/compute/monitor_unmonitor_instances'
 
         # Monitor specified instance
@@ -27,11 +25,9 @@ module Fog
                           :parser => Fog::Parsers::Compute::AWS::MonitorUnmonitorInstances.new
                   }.merge!(params))
         end
-
       end
 
       class Mock
-
         def monitor_instances(instance_ids)
           response        = Excon::Response.new
           response.status = 200
@@ -42,13 +38,11 @@ module Fog
               raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids}' does not exist")
             end
           end
-          instances_set = [*instance_ids].inject([]) { |memo, id| memo << {'instanceId' => id, 'monitoring' => 'enabled'} }
+          instances_set = [*instance_ids].reduce([]) { |memo, id| memo << {'instanceId' => id, 'monitoring' => 'enabled'} }
           response.body = {'requestId' => 'some_request_id', 'instancesSet' => instances_set}
           response
         end
-
       end
     end
-
   end
 end
diff --git a/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb b/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb
index c6e91d1..e5cad5c 100644
--- a/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb
+++ b/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/purchase_reserved_instances_offering'
 
         # Purchases a Reserved Instance for use with your account.
@@ -27,7 +26,6 @@ module Fog
             :parser                       => Fog::Parsers::Compute::AWS::PurchaseReservedInstancesOffering.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/compute/reboot_instances.rb b/lib/fog/aws/requests/compute/reboot_instances.rb
index 632607f..b68b626 100644
--- a/lib/fog/aws/requests/compute/reboot_instances.rb
+++ b/lib/fog/aws/requests/compute/reboot_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Reboot specified instances
@@ -25,11 +24,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def reboot_instances(instance_id = [])
           response = Excon::Response.new
           instance_id = [*instance_id]
@@ -47,7 +44,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The instance ID #{instance_id.inspect} does not exist")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/register_image.rb b/lib/fog/aws/requests/compute/register_image.rb
index 5881ac6..032653f 100644
--- a/lib/fog/aws/requests/compute/register_image.rb
+++ b/lib/fog/aws/requests/compute/register_image.rb
@@ -43,7 +43,7 @@ module Fog
           }
 
           # This determines if we are doing a snapshot or a S3 backed AMI.
-          if(location =~ /^\/dev\/sd[a-p]\d{0,2}$/)
+          if(location =~ /^\/dev\/(xvd|sd)[a-p]\d{0,2}$/)
             common_options['RootDeviceName'] = location
           else
             common_options['ImageLocation'] = location
@@ -90,7 +90,7 @@ module Fog
               'registered' => Time.now
             }
 
-            if location[/^\/dev\/sd[a-p]\d{0,2}$/]
+            if location[/^\/dev\/(xvd|sd)[a-p]\d{0,2}$/]
               image['rootDeviceName'] = location
               image['rootDeviceType'] = 'ebs'
             else
diff --git a/lib/fog/aws/requests/compute/release_address.rb b/lib/fog/aws/requests/compute/release_address.rb
index 41f4131..2219b98 100644
--- a/lib/fog/aws/requests/compute/release_address.rb
+++ b/lib/fog/aws/requests/compute/release_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Release an elastic IP address.
@@ -30,15 +29,13 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def release_address(public_ip_or_allocation_id)
           response = Excon::Response.new
 
-          address = self.data[:addresses][public_ip_or_allocation_id] || self.data[:addresses].values.detect {|a| a['allocationId'] == public_ip_or_allocation_id }
+          address = self.data[:addresses][public_ip_or_allocation_id] || self.data[:addresses].values.find {|a| a['allocationId'] == public_ip_or_allocation_id }
 
           if address
             if address['allocationId'] && public_ip_or_allocation_id == address['publicIp']
@@ -56,7 +53,6 @@ module Fog
             raise Fog::Compute::AWS::Error.new("AuthFailure => The address '#{public_ip_or_allocation_id}' does not belong to you.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/replace_network_acl_association.rb b/lib/fog/aws/requests/compute/replace_network_acl_association.rb
index bcdb544..9be55a5 100644
--- a/lib/fog/aws/requests/compute/replace_network_acl_association.rb
+++ b/lib/fog/aws/requests/compute/replace_network_acl_association.rb
@@ -32,15 +32,15 @@ module Fog
           response = Excon::Response.new
           if self.data[:network_acls][network_acl_id]
             # find the old assoc
-            old_nacl = self.data[:network_acls].values.detect do |n|
-              n['associationSet'].detect { |assoc| assoc['networkAclAssociationId'] == association_id }
+            old_nacl = self.data[:network_acls].values.find do |n|
+              n['associationSet'].find { |assoc| assoc['networkAclAssociationId'] == association_id }
             end
 
             unless old_nacl
               raise Fog::Compute::AWS::Error.new("Invalid association_id #{association_id}")
             end
 
-            subnet_id = old_nacl['associationSet'].detect { |assoc| assoc['networkAclAssociationId'] == association_id }['subnetId']
+            subnet_id = old_nacl['associationSet'].find { |assoc| assoc['networkAclAssociationId'] == association_id }['subnetId']
             old_nacl['associationSet'].delete_if { |assoc| assoc['networkAclAssociationId'] == association_id }
 
             id = Fog::AWS::Mock.network_acl_association_id
diff --git a/lib/fog/aws/requests/compute/replace_network_acl_entry.rb b/lib/fog/aws/requests/compute/replace_network_acl_entry.rb
index 61e26ff..e434c6f 100644
--- a/lib/fog/aws/requests/compute/replace_network_acl_entry.rb
+++ b/lib/fog/aws/requests/compute/replace_network_acl_entry.rb
@@ -45,7 +45,7 @@ module Fog
           response = Excon::Response.new
           if self.data[:network_acls][network_acl_id]
 
-            unless self.data[:network_acls][network_acl_id]['entrySet'].detect { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
+            unless self.data[:network_acls][network_acl_id]['entrySet'].find { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
               raise Fog::Compute::AWS::Error.new("No rule with that number")
             end
             self.data[:network_acls][network_acl_id]['entrySet'].delete_if { |r| r['ruleNumber'] == rule_number && r['egress'] == egress }
diff --git a/lib/fog/aws/requests/compute/replace_route.rb b/lib/fog/aws/requests/compute/replace_route.rb
index c49b1c8..d40144c 100755
--- a/lib/fog/aws/requests/compute/replace_route.rb
+++ b/lib/fog/aws/requests/compute/replace_route.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Replaces a route in a route table within a VPC.
@@ -31,12 +30,10 @@ module Fog
             :idempotent => true,
             :parser => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(options))
-
         end
       end
 
       class Mock
-
         def replace_route(route_table_id, destination_cidr_block, options = {})
           options['instanceOwnerId'] ||= nil
           options['DestinationCidrBlock'] ||= destination_cidr_block
@@ -77,7 +74,6 @@ module Fog
             raise Fog::Compute::AWS::InvalidParameterValue.new("Value () for parameter destinationCidrBlock is invalid. This is not a valid CIDR block.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/request_spot_instances.rb b/lib/fog/aws/requests/compute/request_spot_instances.rb
index 87b9f7d..4d0d72a 100644
--- a/lib/fog/aws/requests/compute/request_spot_instances.rb
+++ b/lib/fog/aws/requests/compute/request_spot_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/spot_instance_requests'
 
         # Launch specified instances
@@ -91,7 +90,6 @@ module Fog
             :parser                             => Fog::Parsers::Compute::AWS::SpotInstanceRequests.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb b/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb
index 79539d1..a4790bc 100644
--- a/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb
+++ b/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Resets a network interface attribute value
diff --git a/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb b/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb
index 957a2dd..bed017f 100644
--- a/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb
+++ b/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/basic'
 
         # Remove permissions from a security group
@@ -53,11 +52,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def revoke_security_group_ingress(group_name, options = {})
           options = Fog::AWS.parse_security_group_options(group_name, options)
           if options.key?('GroupName')
@@ -95,7 +92,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The security group '#{group_name}' does not exist")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/run_instances.rb b/lib/fog/aws/requests/compute/run_instances.rb
index 9d10717..7b68488 100644
--- a/lib/fog/aws/requests/compute/run_instances.rb
+++ b/lib/fog/aws/requests/compute/run_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/run_instances'
 
         # Launch specified instances
@@ -27,7 +26,8 @@ module Fog
         #     * 'VirtualName'<~String> - volume virtual device name
         #     * 'Ebs.SnapshotId'<~String> - id of snapshot to boot volume from
         #     * 'Ebs.VolumeSize'<~String> - size of volume in GiBs required unless snapshot is specified
-        #     * 'Ebs.DeleteOnTermination'<~String> - specifies whether or not to delete the volume on instance termination
+        #     * 'Ebs.DeleteOnTermination'<~Boolean> - specifies whether or not to delete the volume on instance termination
+        #     * 'Ebs.Encrypted'<~Boolean> - specifies whether or not the volume is to be encrypted unless snapshot is specified
         #     * 'Ebs.VolumeType'<~String> - Type of EBS volue. Valid options in ['standard', 'io1'] default is 'standard'.
         #     * 'Ebs.Iops'<~String> - The number of I/O operations per second (IOPS) that the volume supports. Required when VolumeType is 'io1'
         #   * 'NetworkInterfaces'<~Array>: array of hashes
@@ -48,7 +48,7 @@ module Fog
         #   * 'SecurityGroupId'<~Array> or <~String> - id's of security group(s) for instances, use this or SecurityGroup
         #   * 'InstanceInitiatedShutdownBehaviour'<~String> - specifies whether volumes are stopped or terminated when instance is shutdown, in [stop, terminate]
         #   * 'InstanceType'<~String> - Type of instance to boot. Valid options
-        #     in ['t1.micro', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'g2.2xlarge', 'hs1.8xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'm3.xlarge', 'm3.2xlarge', 'hi1.4xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge']
+        #     in ['t1.micro', 't2.micro', 't2.small', 't2.medium', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'g2.2xlarge', 'hs1.8xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'm3.xlarge', 'm3.2xlarge', 'hi1.4xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge']
         #     default is 'm1.small'
         #   * 'KernelId'<~String> - Id of kernel with which to launch
         #   * 'KeyName'<~String> - Name of a keypair to add to booting instances
@@ -145,11 +145,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::RunInstances.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def run_instances(image_id, min_count, max_count, options = {})
           response = Excon::Response.new
           response.status = 200
@@ -166,7 +164,7 @@ module Fog
             instance_id = Fog::AWS::Mock.instance_id
             availability_zone = options['Placement.AvailabilityZone'] || Fog::AWS::Mock.availability_zone(@region)
 
-            block_device_mapping = (options['BlockDeviceMapping'] || []).inject([]) do |mapping, device|
+            block_device_mapping = (options['BlockDeviceMapping'] || []).reduce([]) do |mapping, device|
               device_name           = device.fetch("DeviceName", "/dev/sda1")
               volume_size           = device.fetch("Ebs.VolumeSize", 15)            # @todo should pull this from the image
               delete_on_termination = device.fetch("Ebs.DeleteOnTermination", true) # @todo should pull this from the image
@@ -184,7 +182,17 @@ module Fog
               }
             end
 
-            network_interfaces = (options['NetworkInterfaces'] || []).inject([]) do |mapping, device|
+            if options['SubnetId']
+              if options['PrivateIpAddress']
+                ni_options = {'PrivateIpAddress' => options['PrivateIpAddress']}
+              else
+                ni_options = {}
+              end
+
+              network_interface_id = create_network_interface(options['SubnetId'], ni_options).body['networkInterface']['networkInterfaceId']
+            end
+
+            network_interfaces = (options['NetworkInterfaces'] || []).reduce([]) do |mapping, device|
               device_index          = device.fetch("DeviceIndex", 0)
               subnet_id             = device.fetch("SubnetId", options[:subnet_id] ||  Fog::AWS::Mock.subnet_id)
               private_ip_address    = device.fetch("PrivateIpAddress", options[:private_ip_address] || Fog::AWS::Mock.private_ip_address)
@@ -230,6 +238,7 @@ module Fog
               'privateDnsName'      => nil,
               'productCodes'        => [],
               'reason'              => nil,
+              'rootDeviceName'      => block_device_mapping.first && block_device_mapping.first["deviceName"],
               'rootDeviceType'      => 'instance-store',
               'virtualizationType'  => 'paravirtual'
             }
@@ -238,12 +247,17 @@ module Fog
               'groupIds'            => [],
               'groupSet'            => group_set,
               'iamInstanceProfile'  => {},
-              'networkInterfaces'   => [],
               'ownerId'             => self.data[:owner_id],
-              'privateIpAddress'    => nil,
               'reservationId'       => reservation_id,
               'stateReason'         => {}
             })
+
+            if options['SubnetId']
+              self.data[:instances][instance_id]['vpcId'] = self.data[:subnets].find{|subnet| subnet['subnetId'] == options['SubnetId'] }['vpcId']
+
+              attachment_id = attach_network_interface(network_interface_id, instance_id, '0').data[:body]['attachmentId']
+              modify_network_interface_attribute(network_interface_id, 'attachment', {'attachmentId' => attachment_id, 'deleteOnTermination' => 'true'})
+            end
           end
           response.body = {
             'groupSet'      => group_set,
@@ -254,7 +268,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/start_instances.rb b/lib/fog/aws/requests/compute/start_instances.rb
index d776568..d1df4f4 100644
--- a/lib/fog/aws/requests/compute/start_instances.rb
+++ b/lib/fog/aws/requests/compute/start_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/start_stop_instances'
 
         # Start specified instance
@@ -25,7 +24,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::StartStopInstances.new
           }.merge!(params))
         end
-
       end
 
       class Mock
@@ -34,7 +32,7 @@ module Fog
 
           instance_set = self.data[:instances].values
           instance_set = apply_tag_filters(instance_set, {'instance_id' => instance_ids}, 'instanceId')
-          instance_set = instance_set.find_all {|x| instance_ids.include?(x["instanceId"]) }
+          instance_set = instance_set.select {|x| instance_ids.include?(x["instanceId"]) }
 
           if instance_set.empty?
             raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
@@ -43,7 +41,7 @@ module Fog
             response.status = 200
 
             response.body = {
-              'instancesSet' => instance_set.inject([]) do |ia, instance|
+              'instancesSet' => instance_set.reduce([]) do |ia, instance|
                                   ia << {'currentState' => { 'code' => 0, 'name' => 'pending' },
                                          'previousState' => instance['instanceState'],
                                          'instanceId' => instance['instanceId'] }
diff --git a/lib/fog/aws/requests/compute/stop_instances.rb b/lib/fog/aws/requests/compute/stop_instances.rb
index 3a54dad..7eceb33 100644
--- a/lib/fog/aws/requests/compute/stop_instances.rb
+++ b/lib/fog/aws/requests/compute/stop_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/start_stop_instances'
 
         # Stop specified instance
@@ -26,7 +25,6 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::StartStopInstances.new
           }.merge!(params))
         end
-
       end
 
       class Mock
@@ -35,7 +33,7 @@ module Fog
 
           instance_set = self.data[:instances].values
           instance_set = apply_tag_filters(instance_set, {'instance_id' => instance_ids}, 'instanceId')
-          instance_set = instance_set.find_all {|x| instance_ids.include?(x["instanceId"]) }
+          instance_set = instance_set.select {|x| instance_ids.include?(x["instanceId"]) }
 
           if instance_set.empty?
             raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
@@ -44,7 +42,7 @@ module Fog
             response.status = 200
 
             response.body = {
-              'instancesSet' => instance_set.inject([]) do |ia, instance|
+              'instancesSet' => instance_set.reduce([]) do |ia, instance|
                                   ia << {'currentState' => { 'code' => 0, 'name' => 'stopping' },
                                          'previousState' => instance['instanceState'],
                                          'instanceId' => instance['instanceId'] }
diff --git a/lib/fog/aws/requests/compute/terminate_instances.rb b/lib/fog/aws/requests/compute/terminate_instances.rb
index 3c37a76..074d205 100644
--- a/lib/fog/aws/requests/compute/terminate_instances.rb
+++ b/lib/fog/aws/requests/compute/terminate_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class AWS
       class Real
-
         require 'fog/aws/parsers/compute/terminate_instances'
 
         # Terminate specified instances
@@ -32,11 +31,9 @@ module Fog
             :parser     => Fog::Parsers::Compute::AWS::TerminateInstances.new
           }.merge!(params))
         end
-
       end
 
       class Mock
-
         def terminate_instances(instance_id)
           response = Excon::Response.new
           instance_id = [*instance_id]
@@ -89,7 +86,6 @@ module Fog
             raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/compute/unmonitor_instances.rb b/lib/fog/aws/requests/compute/unmonitor_instances.rb
index d8ab419..9b02308 100644
--- a/lib/fog/aws/requests/compute/unmonitor_instances.rb
+++ b/lib/fog/aws/requests/compute/unmonitor_instances.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class AWS
-
       class Real
-
         require 'fog/aws/parsers/compute/monitor_unmonitor_instances'
 
         # UnMonitor specified instance
@@ -27,11 +25,9 @@ module Fog
                           :parser => Fog::Parsers::Compute::AWS::MonitorUnmonitorInstances.new
                   }.merge!(params))
         end
-
       end
 
       class Mock
-
         def unmonitor_instances(instance_ids)
           response        = Excon::Response.new
           response.status = 200
@@ -42,14 +38,11 @@ module Fog
               raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids}' does not exist")
             end
           end
-          instances_set = [*instance_ids].inject([]) { |memo, id| memo << {'instanceId' => id, 'monitoring' => 'disabled'} }
+          instances_set = [*instance_ids].reduce([]) { |memo, id| memo << {'instanceId' => id, 'monitoring' => 'disabled'} }
           response.body = {'requestId' => 'some_request_id', 'instancesSet' => instances_set}
           response
         end
-
       end
-
     end
-
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/activate_pipeline.rb b/lib/fog/aws/requests/data_pipeline/activate_pipeline.rb
index 928c697..c83a1ba 100644
--- a/lib/fog/aws/requests/data_pipeline/activate_pipeline.rb
+++ b/lib/fog/aws/requests/data_pipeline/activate_pipeline.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Activate a pipeline
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_ActivatePipeline.html
         # ==== Parameters
@@ -21,7 +19,6 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
@@ -29,7 +26,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/create_pipeline.rb b/lib/fog/aws/requests/data_pipeline/create_pipeline.rb
index 0e636f8..776dde2 100644
--- a/lib/fog/aws/requests/data_pipeline/create_pipeline.rb
+++ b/lib/fog/aws/requests/data_pipeline/create_pipeline.rb
@@ -1,23 +1,23 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Create a pipeline
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_CreatePipeline.html
         # ==== Parameters
         # * UniqueId <~String> - A unique ID for of the pipeline
         # * Name <~String> - The name of the pipeline
+        # * Tags <~Hash> - Key/value string pairs to categorize the pipeline
         # * Description <~String> - Description of the pipeline
         # ==== Returns
         # * response<~Excon::Response>:
         #   * body<~Hash>:
-        def create_pipeline(unique_id, name, description=nil)
+        def create_pipeline(unique_id, name, description=nil, tags=nil)
           params = {
             'uniqueId' => unique_id,
             'name' => name,
           }
+          params['tags'] = tags.map {|k,v| {"key" => k.to_s, "value" => v.to_s}} unless tags.nil? || tags.empty?
           params['Description'] = description if description
 
           response = request({
@@ -27,15 +27,13 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
-        def create_pipeline(unique_id, name, description=nil)
+        def create_pipeline(unique_id, name, description=nil, tags=nil)
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb b/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb
index ab3f3a2..e1bcb1f 100644
--- a/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb
+++ b/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Delete a pipeline
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_DeletePipeline.html
         # ==== Parameters
@@ -20,7 +18,6 @@ module Fog
 
           200 == response.status
         end
-
       end
 
       class Mock
@@ -28,7 +25,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/describe_objects.rb b/lib/fog/aws/requests/data_pipeline/describe_objects.rb
index 16f1e00..bac8b78 100644
--- a/lib/fog/aws/requests/data_pipeline/describe_objects.rb
+++ b/lib/fog/aws/requests/data_pipeline/describe_objects.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Queries a pipeline for the names of objects that match a specified set of conditions.
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_DescribeObjects.html
         # ==== Parameters
@@ -28,7 +26,6 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
@@ -36,7 +33,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/describe_pipelines.rb b/lib/fog/aws/requests/data_pipeline/describe_pipelines.rb
index 028a59c..8316c75 100644
--- a/lib/fog/aws/requests/data_pipeline/describe_pipelines.rb
+++ b/lib/fog/aws/requests/data_pipeline/describe_pipelines.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Describe pipelines
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_DescribePipelines.html
         # ==== Parameters
@@ -22,7 +20,6 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
@@ -30,7 +27,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb b/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb
index c20cca1..21da55b 100644
--- a/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb
+++ b/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Get pipeline definition JSON
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_GetPipelineDefinition.html
         # ==== Parameters
@@ -23,7 +21,6 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
@@ -31,7 +28,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/list_pipelines.rb b/lib/fog/aws/requests/data_pipeline/list_pipelines.rb
index 40e0574..30259ad 100644
--- a/lib/fog/aws/requests/data_pipeline/list_pipelines.rb
+++ b/lib/fog/aws/requests/data_pipeline/list_pipelines.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # List all pipelines
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_ListPipelines.html
         # ==== Parameters
@@ -22,7 +20,6 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
@@ -30,7 +27,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb b/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb
index cfa6133..e06e8c5 100644
--- a/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb
+++ b/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Put raw pipeline definition JSON
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_PutPipelineDefinition.html
         # ==== Parameters
@@ -47,7 +45,7 @@ module Fog
             }
           end
 
-        private
+          private
 
           def fields
             @json_fields.map{|k,v| field_for_kv(k,v)}.flatten
@@ -66,7 +64,6 @@ module Fog
             end
           end
         end
-
       end
 
       class Mock
@@ -74,7 +71,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/data_pipeline/query_objects.rb b/lib/fog/aws/requests/data_pipeline/query_objects.rb
index c391e47..a1a8ba9 100644
--- a/lib/fog/aws/requests/data_pipeline/query_objects.rb
+++ b/lib/fog/aws/requests/data_pipeline/query_objects.rb
@@ -1,9 +1,7 @@
 module Fog
   module AWS
     class DataPipeline
-
       class Real
-
         # Queries a pipeline for the names of objects that match a specified set of conditions.
         # http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_QueryObjects.html
         # ==== Parameters
@@ -28,7 +26,6 @@ module Fog
 
           Fog::JSON.decode(response.body)
         end
-
       end
 
       class Mock
@@ -36,8 +33,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/dns/change_resource_record_sets.rb b/lib/fog/aws/requests/dns/change_resource_record_sets.rb
index 7e7e35e..981ae14 100644
--- a/lib/fog/aws/requests/dns/change_resource_record_sets.rb
+++ b/lib/fog/aws/requests/dns/change_resource_record_sets.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/change_resource_record_sets'
 
         # Use this action to create or change your authoritative DNS information for a zone
@@ -18,10 +17,17 @@ module Fog
         #     * name<~String>   - This must be a fully-specified name, ending with a final period
         #     * type<~String>   - A | AAAA | CNAME | MX | NS | PTR | SOA | SPF | SRV | TXT
         #     * ttl<~Integer>   - Time-to-live value - omit if using an alias record
+        #     * weight<~Integer>   - Time-to-live value - omit if using an alias record
+        #     * set_identifier<~String> - An identifier that differentiates among multiple resource record sets that have the same combination of DNS name and type.
+        #     * region<~String> - The Amazon EC2 region where the resource that is specified in this resource record set resides.  (Latency only)
+        #     * failover<~String> - To configure failover, you add the Failover element to two resource record sets. For one resource record set, you specify PRIMARY as the value for Failover; for the other resource record set, you specify SECONDARY.
+        #     * geo_location<~String XML> - A complex type currently requiring XML that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query.
+        #     * health_check_id<~String> - If you want Amazon Route 53 to return this resource record set in response to a DNS query only when a health check is passing, include the HealthCheckId element and specify the ID of the applicable health check.
         #     * resource_records<~Array> - Omit if using an alias record
         #     * alias_target<~Hash> - Information about the domain to which you are redirecting traffic (Alias record sets only)
         #       * dns_name<~String> - The Elastic Load Balancing domain to which you want to reroute traffic
         #       * hosted_zone_id<~String> - The ID of the hosted zone that contains the Elastic Load Balancing domain to which you want to reroute traffic
+        #       * evaluate_target_health<~Boolean> - Applies only to alias, weighted alias, latency alias, and failover alias resource record sets: If you set the value of EvaluateTargetHealth to true, the alias resource record sets inherit the health of the referenced resource record sets.
         # ==== Returns
         # * response<~Excon::Response>:
         #   * body<~Hash>:
@@ -55,7 +61,6 @@ module Fog
         #     change_resource_record_sets("ABCDEFGHIJKLMN", change_batch_options)
         #
         def change_resource_record_sets(zone_id, change_batch, options = {})
-
           # AWS methods return zone_ids that looks like '/hostedzone/id'.  Let the caller either use
           # that form or just the actual id (which is what this request needs)
           zone_id = zone_id.sub('/hostedzone/', '')
@@ -93,6 +98,15 @@ module Fog
                   region_tag += %Q{<Region>#{change_item[:region]}</Region>}
                 end
               end
+
+              failover_tag = if change_item[:failover]
+                %Q{<Failover>#{change_item[:failover]}</Failover>}
+              end
+
+              geolocation_tag = if change_item[:geo_location]
+                %Q{<GeoLocation>#{change_item[:geo_location]}</GeoLocation>}
+              end
+
               resource_records = change_item[:resource_records] || []
               resource_record_tags = ''
               resource_records.each do |record|
@@ -108,17 +122,22 @@ module Fog
                 # Accept either underscore or camel case for hash keys.
                 dns_name = change_item[:alias_target][:dns_name] || change_item[:alias_target][:DNSName]
                 hosted_zone_id = change_item[:alias_target][:hosted_zone_id] || change_item[:alias_target][:HostedZoneId] || AWS.hosted_zone_for_alias_target(dns_name)
-                alias_target_tag += %Q{<AliasTarget><HostedZoneId>#{hosted_zone_id}</HostedZoneId><DNSName>#{dns_name}</DNSName></AliasTarget>}
+                evaluate_target_health = change_item[:alias_target][:evaluate_target_health] || change_item[:alias_target][:EvaluateTargetHealth] || false
+                evaluate_target_health_xml = !evaluate_target_health.nil? ? %Q{<EvaluateTargetHealth>#{evaluate_target_health}</EvaluateTargetHealth>} : ''
+                alias_target_tag += %Q{<AliasTarget><HostedZoneId>#{hosted_zone_id}</HostedZoneId><DNSName>#{dns_name}</DNSName>#{evaluate_target_health_xml}</AliasTarget>}
               end
 
-              change_tags = %Q{<Change>#{action_tag}<ResourceRecordSet>#{name_tag}#{type_tag}#{set_identifier_tag}#{weight_tag}#{region_tag}#{ttl_tag}#{resource_tag}#{alias_target_tag}</ResourceRecordSet></Change>}
+              health_check_id_tag = if change_item[:health_check_id]
+                %Q{<HealthCheckId>#{change_item[:health_check_id]}</HealthCheckId>}
+              end
+
+              change_tags = %Q{<Change>#{action_tag}<ResourceRecordSet>#{name_tag}#{type_tag}#{set_identifier_tag}#{weight_tag}#{region_tag}#{failover_tag}#{geolocation_tag}#{ttl_tag}#{resource_tag}#{alias_target_tag}#{health_check_id_tag}</ResourceRecordSet></Change>}
               changes += change_tags
             end
 
             changes += '</Changes></ChangeBatch>'
           end
 
-
           body = %Q{<?xml version="1.0" encoding="UTF-8"?><ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/#{@version}/">#{changes}</ChangeResourceRecordSetsRequest>}
           request({
             :body       => body,
@@ -127,13 +146,10 @@ module Fog
             :method     => 'POST',
             :path       => "hostedzone/#{zone_id}/rrset"
           })
-
         end
-
       end
 
       class Mock
-
         def change_resource_record_sets(zone_id, change_batch, options = {})
           response = Excon::Response.new
           errors   = []
@@ -200,7 +216,6 @@ module Fog
             response.body = "<?xml version=\"1.0\"?><Response><Errors><Error><Code>NoSuchHostedZone</Code><Message>A hosted zone with the specified hosted zone ID does not exist.</Message></Error></Errors><RequestID>#{Fog::AWS::Mock.request_id}</RequestID></Response>"
             raise(Excon::Errors.status_error({:expects => 200}, response))
           end
-
         end
       end
 
diff --git a/lib/fog/aws/requests/dns/create_health_check.rb b/lib/fog/aws/requests/dns/create_health_check.rb
new file mode 100644
index 0000000..886bd6c
--- /dev/null
+++ b/lib/fog/aws/requests/dns/create_health_check.rb
@@ -0,0 +1,64 @@
+module Fog
+  module DNS
+    class AWS
+      class Real
+        require 'fog/aws/parsers/dns/health_check'
+
+        # This action creates a new health check.
+        # http://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHealthCheck.html
+        #
+        # ==== Parameters (options as symbols Hash)
+        # * ip_address<~String> - (optional if fqdn) The IPv4 IP address of the endpoint on which you want Amazon Route 53 to perform health checks
+        # * port<~Integer> - The port on the endpoint on which you want Amazon Route 53 to perform health checks
+        # * type<~String> - HTTP | HTTPS | HTTP_STR_MATCH | HTTPS_STR_MATCH | TCP
+        # * resource_path<~Stringy> - (required for all types except TCP) The path that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy
+        # * fqdn<~String> - (optional if ip_address) The value that you want Amazon Route 53 to pass in the Host header in all health checks except TCP health checks
+        # * search_string<~String> - If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that you want Amazon Route 53 to search for in the response body from the specified resource
+        # * request_interval<~String> - 10 | 30 (optional) The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health-check request
+        # * failure_threshold<~Integer> - 1-10 (optional) The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa
+        # ==== Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+        #     * 'HealthCheck'<~Hash>
+        #       * 'Id'<~String> - The ID of the request
+        #       * 'CallerReference'<~String> - A unique string that identifies the request and that allows failed CreateHealthCheck requests to be retried without the risk of executing the operation twice.
+        #       * 'HealthCheckConfig'<~Hash>
+        #         * 'IPAddress'
+        #         * 'Port'
+        #         * 'Type'
+        #         * 'ResourcePath'
+        #         * 'FullyQualifiedDomainName'
+        #         * 'RequestInterval'
+        #         * 'FailureThreshold'
+        #   * status<~Integer> - 201 when successful
+
+        def create_health_check(ip_address, port, type, options = {})
+          version = @version
+          builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do
+            CreateHealthCheckRequest(:xmlns => "https://route53.amazonaws.com/doc/#{version}/") do
+              CallerReference options[:caller_reference] || "#{Time.now.to_i.to_s}-#{SecureRandom.hex(6)}"
+              HealthCheckConfig do
+                IPAddress ip_address unless ip_address.nil?
+                Port port
+                Type type
+                ResourcePath options[:resource_path] if options.has_key?(:resource_path)
+                FullyQualifiedDomainName options[:fqdn] if options.has_key?(:fqdn)
+                SearchString options[:search_string] if options.has_key?(:search_string)
+                RequestInterval options[:request_interval] if options.has_key?(:request_interval)
+                FailureThreshold options[:failure_threshold] if options.has_key?(:failure_threshold)
+              end
+            end
+          end
+
+          request({
+            :body    => builder.to_xml.to_s,
+            :expects => 201,
+            :method  => 'POST',
+            :path    => 'healthcheck',
+            :parser  => Fog::Parsers::DNS::AWS::HealthCheck.new
+          })
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/dns/create_hosted_zone.rb b/lib/fog/aws/requests/dns/create_hosted_zone.rb
index b8324b1..ad8218a 100644
--- a/lib/fog/aws/requests/dns/create_hosted_zone.rb
+++ b/lib/fog/aws/requests/dns/create_hosted_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/create_hosted_zone'
 
         # Creates a new hosted zone
@@ -30,7 +29,6 @@ module Fog
         #       * 'NameServer'<~String>
         #   * status<~Integer> - 201 when successful
         def create_hosted_zone(name, options = {})
-
           optional_tags = ''
           if options[:caller_ref]
             optional_tags += "<CallerReference>#{options[:caller_ref]}</CallerReference>"
@@ -50,13 +48,10 @@ module Fog
             :method  => 'POST',
             :path    => "hostedzone"
           })
-
         end
-
       end
 
       class Mock
-
         require 'time'
 
         def create_hosted_zone(name, options = {})
@@ -64,7 +59,7 @@ module Fog
           name = name + "." unless name.end_with?(".")
 
           response = Excon::Response.new
-          if list_hosted_zones.body['HostedZones'].find_all {|z| z['Name'] == name}.size < self.data[:limits][:duplicate_domains]
+          if list_hosted_zones.body['HostedZones'].select {|z| z['Name'] == name}.size < self.data[:limits][:duplicate_domains]
             response.status = 201
             if options[:caller_ref]
               caller_ref = options[:caller_ref]
diff --git a/lib/fog/aws/requests/dns/delete_health_check.rb b/lib/fog/aws/requests/dns/delete_health_check.rb
new file mode 100644
index 0000000..3efb260
--- /dev/null
+++ b/lib/fog/aws/requests/dns/delete_health_check.rb
@@ -0,0 +1,24 @@
+module Fog
+  module DNS
+    class AWS
+      class Real
+        # This action deletes a health check.
+        # http://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteHealthCheck.html
+        #
+        # ==== Parameters
+        # * id<~String> - Health check ID
+        # === Returns
+        # * response<~Excon::Response>:
+        #   * status<~Integer> - 200 when successful
+
+        def delete_health_check(id)
+          request({
+            :expects => 200,
+            :method  => 'DELETE',
+            :path    => "healthcheck/#{id}"
+          })
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/dns/delete_hosted_zone.rb b/lib/fog/aws/requests/dns/delete_hosted_zone.rb
index d26e255..a783b87 100644
--- a/lib/fog/aws/requests/dns/delete_hosted_zone.rb
+++ b/lib/fog/aws/requests/dns/delete_hosted_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/delete_hosted_zone'
 
         # Delete a hosted zone
@@ -19,7 +18,6 @@ module Fog
         #       * 'SubmittedAt'<~String> The date and time the change was made
         #   * status<~Integer> - 200 when successful
         def delete_hosted_zone(zone_id)
-
           # AWS methods return zone_ids that looks like '/hostedzone/id'.  Let the caller either use
           # that form or just the actual id (which is what this request needs)
           zone_id = zone_id.sub('/hostedzone/', '')
@@ -30,13 +28,10 @@ module Fog
             :method  => 'DELETE',
             :path    => "hostedzone/#{zone_id}"
           })
-
         end
-
       end
 
       class Mock
-
         require 'time'
 
         def delete_hosted_zone(zone_id)
@@ -66,7 +61,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/dns/get_change.rb b/lib/fog/aws/requests/dns/get_change.rb
index f706606..6785139 100644
--- a/lib/fog/aws/requests/dns/get_change.rb
+++ b/lib/fog/aws/requests/dns/get_change.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/get_change'
 
         # returns the current state of a change request
@@ -18,7 +17,6 @@ module Fog
         #     * 'SubmittedAt'<~String>
         #   * status<~Integer> - 200 when successful
         def get_change(change_id)
-
           # AWS methods return change_ids that looks like '/change/id'.  Let the caller either use
           # that form or just the actual id (which is what this request needs)
           change_id = change_id.sub('/change/', '')
@@ -29,9 +27,7 @@ module Fog
             :method  => 'GET',
             :path    => "change/#{change_id}"
           })
-
         end
-
       end
 
       class Mock
@@ -58,7 +54,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/dns/get_health_check.rb b/lib/fog/aws/requests/dns/get_health_check.rb
new file mode 100644
index 0000000..6bbc3d1
--- /dev/null
+++ b/lib/fog/aws/requests/dns/get_health_check.rb
@@ -0,0 +1,41 @@
+module Fog
+  module DNS
+    class AWS
+      class Real
+        require 'fog/aws/parsers/dns/health_check'
+
+        # This action gets information about a specified health check.
+        #http://docs.aws.amazon.com/Route53/latest/APIReference/API_GetHealthCheck.html
+        #
+        # ==== Parameters
+        # * id<~String> - The ID of the health check
+        #
+        # ==== Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+        #     * 'HealthCheck'<~Hash>:
+        #       * 'Id'<~String> -
+        #       * 'CallerReference'<~String>
+        #       * 'HealthCheckConfig'<~Hash>:
+        #         * 'IPAddress'<~String> -
+        #         * 'Port'<~String> -
+        #         * 'Type'<~String> -
+        #         * 'ResourcePath'<~String> -
+        #         * 'FullyQualifiedDomainName'<~String> -
+        #         * 'SearchString'<~String> -
+        #         * 'RequestInterval'<~Integer> -
+        #         * 'FailureThreshold'<~String> -
+        #       * 'HealthCheckVersion'<~Integer> -
+        #   * status<~Integer> - 200 when successful
+        def get_health_check(id)
+          request({
+            :expects => 200,
+            :parser  => Fog::Parsers::DNS::AWS::HealthCheck.new,
+            :method  => 'GET',
+            :path    => "healthcheck/#{id}"
+          })
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/dns/get_hosted_zone.rb b/lib/fog/aws/requests/dns/get_hosted_zone.rb
index 8a5c480..fbd72bc 100644
--- a/lib/fog/aws/requests/dns/get_hosted_zone.rb
+++ b/lib/fog/aws/requests/dns/get_hosted_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/get_hosted_zone'
 
         # retrieve information about a hosted zone
@@ -22,7 +21,6 @@ module Fog
         #       * 'NameServer'<~String>
         #   * status<~Integer> - 200 when successful
         def get_hosted_zone(zone_id)
-
           # AWS methods return zone_ids that looks like '/hostedzone/id'.  Let the caller either use
           # that form or just the actual id (which is what this request needs)
           zone_id = zone_id.sub('/hostedzone/', '')
@@ -33,9 +31,7 @@ module Fog
             :method  => 'GET',
             :path    => "hostedzone/#{zone_id}"
           })
-
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/dns/list_health_checks.rb b/lib/fog/aws/requests/dns/list_health_checks.rb
new file mode 100644
index 0000000..6da1847
--- /dev/null
+++ b/lib/fog/aws/requests/dns/list_health_checks.rb
@@ -0,0 +1,36 @@
+module Fog
+  module DNS
+    class AWS
+      class Real
+        require 'fog/aws/parsers/dns/list_health_checks'
+
+        # This action gets a list of the health checks that are associated with the current AWS account.
+        # http://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHealthChecks.html
+        #
+        # === Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+        #     * 'HealthChecks'<~Array>:
+        #       * 'HealthCheck'<~Hash>:
+        #         * 'Id'<~String> -
+        #         * 'CallerReference'<~String>
+        #         * 'HealthCheckVersion'<~Integer> -
+        #     * 'Marker'<~String> -
+        #     * 'MaxItems'<~Integer> -
+        #     * 'IsTruncated'<~String> -
+        #     * 'NextMarker'<~String>
+        #   * status<~Integer> - 200 when successful
+
+        def list_health_checks
+          request({
+            :expects => 200,
+            :method  => 'GET',
+            :path    => "healthcheck",
+            :parser  => Fog::Parsers::DNS::AWS::ListHealthChecks.new
+          })
+        end
+      end
+    end
+  end
+end
+
diff --git a/lib/fog/aws/requests/dns/list_hosted_zones.rb b/lib/fog/aws/requests/dns/list_hosted_zones.rb
index 82abc6b..9efd269 100644
--- a/lib/fog/aws/requests/dns/list_hosted_zones.rb
+++ b/lib/fog/aws/requests/dns/list_hosted_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/list_hosted_zones'
 
         # Describe all or specified instances
@@ -24,10 +23,9 @@ module Fog
         #     * 'Marker'<~String> -
         #     * 'MaxItems'<~Integer> -
         #     * 'IsTruncated'<~String> -
-        #     * 'NextMarket'<~String>
+        #     * 'NextMarker'<~String>
         #   * status<~Integer> - 200 when successful
         def list_hosted_zones(options = {})
-
           parameters = {}
           options.each do |option, value|
             case option
@@ -45,13 +43,10 @@ module Fog
             :method  => 'GET',
             :path    => "hostedzone"
           })
-
         end
-
       end
 
       class Mock
-
         def list_hosted_zones(options = {})
           maxitems = [options[:max_items]||100,100].min
 
@@ -87,7 +82,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dns/list_resource_record_sets.rb b/lib/fog/aws/requests/dns/list_resource_record_sets.rb
index 68d87d3..8333727 100644
--- a/lib/fog/aws/requests/dns/list_resource_record_sets.rb
+++ b/lib/fog/aws/requests/dns/list_resource_record_sets.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class AWS
       class Real
-
         require 'fog/aws/parsers/dns/list_resource_record_sets'
 
         # list your resource record sets
@@ -34,7 +33,6 @@ module Fog
         #     * 'NextRecordIdentifier'<~String>
         #   * status<~Integer> - 201 when successful
         def list_resource_record_sets(zone_id, options = {})
-
           # AWS methods return zone_ids that looks like '/hostedzone/id'.  Let the caller either use
           # that form or just the actual id (which is what this request needs)
           zone_id = zone_id.sub('/hostedzone/', '')
@@ -56,13 +54,10 @@ module Fog
             :method  => 'GET',
             :path    => "hostedzone/#{zone_id}/rrset"
           })
-
         end
-
       end
 
       class Mock
-
         def list_resource_record_sets(zone_id, options = {})
           maxitems = [options[:max_items]||100,100].min
 
@@ -129,7 +124,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/batch_get_item.rb b/lib/fog/aws/requests/dynamodb/batch_get_item.rb
index ebffc35..f97899d 100644
--- a/lib/fog/aws/requests/dynamodb/batch_get_item.rb
+++ b/lib/fog/aws/requests/dynamodb/batch_get_item.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Get DynamoDB items
         #
         # ==== Parameters
@@ -36,7 +35,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/batch_write_item.rb b/lib/fog/aws/requests/dynamodb/batch_write_item.rb
index 30e1c63..7cdae14 100644
--- a/lib/fog/aws/requests/dynamodb/batch_write_item.rb
+++ b/lib/fog/aws/requests/dynamodb/batch_write_item.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         def batch_put_item(request_items)
           Fog::Logger.deprecation("batch_put_item is deprecated, use batch_write_item instead")
           batch_write_item(request_items)
@@ -28,7 +27,6 @@ module Fog
             :headers    => {'x-amz-target' => 'DynamoDB_20111205.BatchWriteItem'}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/create_table.rb b/lib/fog/aws/requests/dynamodb/create_table.rb
index 693852e..3252bf5 100644
--- a/lib/fog/aws/requests/dynamodb/create_table.rb
+++ b/lib/fog/aws/requests/dynamodb/create_table.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Create DynamoDB table
         #
         # ==== Parameters
@@ -48,7 +47,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/delete_item.rb b/lib/fog/aws/requests/dynamodb/delete_item.rb
index b78f652..50d6517 100644
--- a/lib/fog/aws/requests/dynamodb/delete_item.rb
+++ b/lib/fog/aws/requests/dynamodb/delete_item.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Delete DynamoDB item
         #
         # ==== Parameters
@@ -38,7 +37,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/delete_table.rb b/lib/fog/aws/requests/dynamodb/delete_table.rb
index 3a70452..19945ba 100644
--- a/lib/fog/aws/requests/dynamodb/delete_table.rb
+++ b/lib/fog/aws/requests/dynamodb/delete_table.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Delete DynamoDB table
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/describe_table.rb b/lib/fog/aws/requests/dynamodb/describe_table.rb
index be8357a..8d9d794 100644
--- a/lib/fog/aws/requests/dynamodb/describe_table.rb
+++ b/lib/fog/aws/requests/dynamodb/describe_table.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Describe DynamoDB table
         #
         # ==== Parameters
@@ -37,7 +36,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/get_item.rb b/lib/fog/aws/requests/dynamodb/get_item.rb
index d173d88..376cf99 100644
--- a/lib/fog/aws/requests/dynamodb/get_item.rb
+++ b/lib/fog/aws/requests/dynamodb/get_item.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Get DynamoDB item
         #
         # ==== Parameters
@@ -36,7 +35,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/list_tables.rb b/lib/fog/aws/requests/dynamodb/list_tables.rb
index e867405..c9cf7ae 100644
--- a/lib/fog/aws/requests/dynamodb/list_tables.rb
+++ b/lib/fog/aws/requests/dynamodb/list_tables.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # List DynamoDB tables
         #
         # ==== Parameters
@@ -22,7 +21,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/put_item.rb b/lib/fog/aws/requests/dynamodb/put_item.rb
index 09fff39..99db4d7 100644
--- a/lib/fog/aws/requests/dynamodb/put_item.rb
+++ b/lib/fog/aws/requests/dynamodb/put_item.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Update DynamoDB item
         #
         # ==== Parameters
@@ -34,7 +33,6 @@ module Fog
             :headers    => {'x-amz-target' => 'DynamoDB_20111205.PutItem'}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/query.rb b/lib/fog/aws/requests/dynamodb/query.rb
index 54b80ce..ace8a52 100644
--- a/lib/fog/aws/requests/dynamodb/query.rb
+++ b/lib/fog/aws/requests/dynamodb/query.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Query DynamoDB items
         #
         # ==== Parameters
@@ -37,7 +36,6 @@ module Fog
             :headers  => {'x-amz-target' => 'DynamoDB_20111205.Query'}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/scan.rb b/lib/fog/aws/requests/dynamodb/scan.rb
index b5bff68..cc4b761 100644
--- a/lib/fog/aws/requests/dynamodb/scan.rb
+++ b/lib/fog/aws/requests/dynamodb/scan.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Scan DynamoDB items
         #
         # ==== Parameters
@@ -38,7 +37,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/update_item.rb b/lib/fog/aws/requests/dynamodb/update_item.rb
index 167f06c..56140f2 100644
--- a/lib/fog/aws/requests/dynamodb/update_item.rb
+++ b/lib/fog/aws/requests/dynamodb/update_item.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Update DynamoDB item
         #
         # ==== Parameters
@@ -42,7 +41,6 @@ module Fog
             :headers  => {'x-amz-target' => 'DynamoDB_20111205.UpdateItem'}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/dynamodb/update_table.rb b/lib/fog/aws/requests/dynamodb/update_table.rb
index 926a247..658c9f9 100644
--- a/lib/fog/aws/requests/dynamodb/update_table.rb
+++ b/lib/fog/aws/requests/dynamodb/update_table.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class DynamoDB
       class Real
-
         # Update DynamoDB table throughput
         #
         # ==== Parameters
@@ -39,7 +38,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb b/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb
index 1e46c39..bf0567c 100644
--- a/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb
+++ b/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_security_group'
 
         # Authorize ingress to a CacheSecurityGroup using EC2 Security Groups
@@ -23,11 +22,9 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::SingleSecurityGroup.new
           })
         end
-
       end
 
       class Mock
-
         def authorize_cache_security_group_ingress(name, ec2_name, ec2_owner_id)
           opts = {
             'EC2SecurityGroupName' => ec2_name,
@@ -36,7 +33,7 @@ module Fog
 
           if sec_group = self.data[:security_groups][name]
 
-            if sec_group['EC2SecurityGroups'].detect{|h| h['EC2SecurityGroupName'] == opts['EC2SecurityGroupName']}
+            if sec_group['EC2SecurityGroups'].find{|h| h['EC2SecurityGroupName'] == opts['EC2SecurityGroupName']}
               raise Fog::AWS::Elasticache::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['EC2SecurityGroupName']} is alreay defined")
             end
             sec_group['EC2SecurityGroups'] << opts.merge({'Status' => 'authorizing'})
@@ -53,7 +50,6 @@ module Fog
           else
             raise Fog::AWS::Elasticache::NotFound.new("CacheSecurityGroupNotFound => #{name} not found")
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/elasticache/create_cache_cluster.rb b/lib/fog/aws/requests/elasticache/create_cache_cluster.rb
index d54e4fc..7fcf115 100644
--- a/lib/fog/aws/requests/elasticache/create_cache_cluster.rb
+++ b/lib/fog/aws/requests/elasticache/create_cache_cluster.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_cache_cluster'
         # creates a cache cluster
         #
@@ -28,7 +27,6 @@ module Fog
         # * response <~Excon::Response>:
         #   * body <~Hash>
         def create_cache_cluster(id, options = {})
-
           req_options = {
             'Action'          => 'CreateCacheCluster',
             'CacheClusterId'  => id.strip,
@@ -59,7 +57,6 @@ module Fog
           end
 
           request( req_options )
-
         end
       end
 
@@ -92,7 +89,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/elasticache/create_cache_parameter_group.rb b/lib/fog/aws/requests/elasticache/create_cache_parameter_group.rb
index ae8ab34..d6754c0 100644
--- a/lib/fog/aws/requests/elasticache/create_cache_parameter_group.rb
+++ b/lib/fog/aws/requests/elasticache/create_cache_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_parameter_group'
 
         # creates a cache parameter group
diff --git a/lib/fog/aws/requests/elasticache/create_cache_security_group.rb b/lib/fog/aws/requests/elasticache/create_cache_security_group.rb
index 05025ab..8f30e1a 100644
--- a/lib/fog/aws/requests/elasticache/create_cache_security_group.rb
+++ b/lib/fog/aws/requests/elasticache/create_cache_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_security_group'
 
         # creates a cache security group
@@ -25,7 +24,6 @@ module Fog
 
       class Mock
         def create_cache_security_group(name, description = name)
-
           if self.data[:security_groups][name]
             raise Fog::AWS::Elasticache::IdentifierTaken.new("CacheClusterAlreadyExists => The security group '#{name}' already exists")
           end
@@ -46,7 +44,6 @@ module Fog
                   }
               }
           )
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/elasticache/create_cache_subnet_group.rb b/lib/fog/aws/requests/elasticache/create_cache_subnet_group.rb
index 45be85e..3554e1a 100644
--- a/lib/fog/aws/requests/elasticache/create_cache_subnet_group.rb
+++ b/lib/fog/aws/requests/elasticache/create_cache_subnet_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/create_cache_subnet_group'
 
         # Creates a cache subnet group
@@ -25,11 +24,9 @@ module Fog
           params.merge!(Fog::AWS.indexed_param("SubnetIds.member", Array(subnet_ids)))
           request(params)
         end
-
       end
 
       class Mock
-
         def create_cache_subnet_group(name, subnet_ids, description = name)
           response = Excon::Response.new
           if self.data[:subnet_groups] && self.data[:subnet_groups][name]
@@ -56,11 +53,8 @@ module Fog
             'CreateCacheSubnetGroupResult' => { 'CacheSubnetGroup' => data }
           }
           response
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb b/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb
index 3883429..4aab675 100644
--- a/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb
+++ b/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_cache_clusters'
 
         # Deletes a Cache Cluster
@@ -19,7 +18,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::DescribeCacheClusters.new
           )
         end
-
       end
 
       class Mock
@@ -35,7 +33,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/elasticache/delete_cache_parameter_group.rb b/lib/fog/aws/requests/elasticache/delete_cache_parameter_group.rb
index a77efd8..314d492 100644
--- a/lib/fog/aws/requests/elasticache/delete_cache_parameter_group.rb
+++ b/lib/fog/aws/requests/elasticache/delete_cache_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/base'
 
         # deletes a cache parameter group
diff --git a/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb b/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb
index 87fcc98..93cb7b3 100644
--- a/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb
+++ b/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/base'
 
         # deletes a cache security group
diff --git a/lib/fog/aws/requests/elasticache/delete_cache_subnet_group.rb b/lib/fog/aws/requests/elasticache/delete_cache_subnet_group.rb
index 7dfbc42..b818337 100644
--- a/lib/fog/aws/requests/elasticache/delete_cache_subnet_group.rb
+++ b/lib/fog/aws/requests/elasticache/delete_cache_subnet_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/base'
 
         # deletes a cache subnet group
diff --git a/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb b/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb
index c0eef1f..8832b3d 100644
--- a/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb
+++ b/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_cache_clusters'
 
         # Returns a list of Cache Cluster descriptions
@@ -26,7 +25,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::DescribeCacheClusters.new
           })
         end
-
       end
 
       class Mock
@@ -48,7 +46,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/elasticache/describe_cache_parameter_groups.rb b/lib/fog/aws/requests/elasticache/describe_cache_parameter_groups.rb
index d1864f1..fff5348 100644
--- a/lib/fog/aws/requests/elasticache/describe_cache_parameter_groups.rb
+++ b/lib/fog/aws/requests/elasticache/describe_cache_parameter_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_parameter_groups'
 
         # Returns a list of CacheParameterGroup descriptions
@@ -21,7 +20,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::DescribeParameterGroups.new
           }.merge(options))
         end
-
       end
 
       class Mock
@@ -38,7 +36,6 @@ module Fog
             parameter_set = self.data[:parameter_groups].values
           end
 
-
           response.status = 200
 
           response.body = { "CacheParameterGroups" => parameter_set }
diff --git a/lib/fog/aws/requests/elasticache/describe_cache_parameters.rb b/lib/fog/aws/requests/elasticache/describe_cache_parameters.rb
index 99ffc72..a49813d 100644
--- a/lib/fog/aws/requests/elasticache/describe_cache_parameters.rb
+++ b/lib/fog/aws/requests/elasticache/describe_cache_parameters.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_cache_parameters'
 
         # Returns a list of CacheParameterGroup descriptions
@@ -23,7 +22,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::DescribeCacheParameters.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb b/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb
index 4b6b5cc..a52ae78 100644
--- a/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb
+++ b/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_security_groups'
 
         # Returns a list of CacheSecurityGroup descriptions
@@ -21,12 +20,10 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::DescribeSecurityGroups.new
           }.merge(options))
         end
-
       end
 
       class Mock
         def describe_cache_security_groups(name = nil, opts={})
-
           if name
             sec_group_set = [self.data[:security_groups][name]].compact
             raise Fog::AWS::Elasticache::NotFound.new("Security Group #{name} not found") if sec_group_set.empty?
@@ -60,7 +57,6 @@ module Fog
                   }
               }
           )
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/elasticache/describe_cache_subnet_groups.rb b/lib/fog/aws/requests/elasticache/describe_cache_subnet_groups.rb
index 9634802..cf75454 100644
--- a/lib/fog/aws/requests/elasticache/describe_cache_subnet_groups.rb
+++ b/lib/fog/aws/requests/elasticache/describe_cache_subnet_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_cache_subnet_groups'
 
         # This API returns a list of CacheSubnetGroup descriptions. If a CacheSubnetGroupName is specified, the list will contain only
@@ -30,11 +29,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::Elasticache::DescribeCacheSubnetGroups.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_cache_subnet_groups(name = nil, opts = {})
           response = Excon::Response.new
 
@@ -57,7 +54,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb b/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb
index 1184150..bea2561 100644
--- a/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb
+++ b/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_engine_default_parameters'
 
         # Returns the default engine and system parameter information
@@ -22,7 +21,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::DescribeEngineDefaultParameters.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elasticache/describe_events.rb b/lib/fog/aws/requests/elasticache/describe_events.rb
index a030099..28d1f91 100644
--- a/lib/fog/aws/requests/elasticache/describe_events.rb
+++ b/lib/fog/aws/requests/elasticache/describe_events.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/event_list'
 
         # Returns a list of service events
@@ -36,7 +35,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::EventListParser.new
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elasticache/describe_reserved_cache_nodes.rb b/lib/fog/aws/requests/elasticache/describe_reserved_cache_nodes.rb
index cd887ad..ae37ba7 100644
--- a/lib/fog/aws/requests/elasticache/describe_reserved_cache_nodes.rb
+++ b/lib/fog/aws/requests/elasticache/describe_reserved_cache_nodes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/describe_reserved_cache_nodes'
 
         # Describe all or specified reserved Elasticache nodes
@@ -27,15 +26,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::Elasticache::DescribeReservedCacheNodes.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_reserved_instances(identifier=nil, opts={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb b/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb
index ec399f7..bd661b7 100644
--- a/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb
+++ b/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_cache_cluster'
 
         # Modifies an existing cache cluster
@@ -29,7 +28,7 @@ module Fog
           # Construct Cache Security Group parameters in the format:
           #   CacheSecurityGroupNames.member.N => "security_group_name"
           group_names = options[:security_group_names] || []
-          sec_group_params = group_names.inject({}) do |group_hash, name|
+          sec_group_params = group_names.reduce({}) do |group_hash, name|
             index = group_names.index(name) + 1
             group_hash["CacheSecurityGroupNames.member.#{index}"] = name
             group_hash
@@ -37,7 +36,7 @@ module Fog
           # Construct CacheNodeIdsToRemove parameters in the format:
           #   CacheNodeIdsToRemove.member.N => "node_id"
           node_ids = options[:nodes_to_remove] || []
-          node_id_params = node_ids.inject({}) do |node_hash, node_id|
+          node_id_params = node_ids.reduce({}) do |node_hash, node_id|
             index = node_ids.index(node_id) + 1
             node_hash["CacheNodeIdsToRemove.member.#{index}"] = node_id
             node_hash
@@ -57,7 +56,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::SingleCacheCluster.new
           )))
         end
-
       end
 
       class Mock
@@ -96,7 +94,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/elasticache/modify_cache_parameter_group.rb b/lib/fog/aws/requests/elasticache/modify_cache_parameter_group.rb
index 364b2eb..7585e46 100644
--- a/lib/fog/aws/requests/elasticache/modify_cache_parameter_group.rb
+++ b/lib/fog/aws/requests/elasticache/modify_cache_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/modify_parameter_group'
 
         # Modifies an existing cache parameter group
@@ -19,7 +18,7 @@ module Fog
           #   ParameterNameValues.member.N.ParameterName => "param_name"
           #   ParameterNameValues.member.N.ParameterValue => "param_value"
           n = 0   # n is the parameter index
-          parameter_changes = new_parameters.inject({}) do |new_args,pair|
+          parameter_changes = new_parameters.reduce({}) do |new_args,pair|
             n += 1
             new_args["ParameterNameValues.member.#{n}.ParameterName"] = pair[0]
             new_args["ParameterNameValues.member.#{n}.ParameterValue"] = pair[1]
@@ -32,7 +31,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::ModifyParameterGroup.new
           ))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb b/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb
index b9fa1ed..0ea8d82 100644
--- a/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb
+++ b/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_cache_cluster'
 
         # Reboots some or all of an existing cache cluster's nodes
@@ -19,7 +18,7 @@ module Fog
           # Construct CacheNodeIdsToReboot parameters in the format:
           #   CacheNodeIdsToReboot.member.N => "node_id"
           node_ids = nodes_to_reboot || []
-          node_id_params = node_ids.inject({}) do |node_hash, node_id|
+          node_id_params = node_ids.reduce({}) do |node_hash, node_id|
             index = node_ids.index(node_id) + 1
             node_hash["CacheNodeIdsToReboot.member.#{index}"] = node_id
             node_hash
@@ -31,7 +30,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::SingleCacheCluster.new
           ))
         end
-
       end
 
       class Mock
@@ -46,7 +44,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/elasticache/reset_cache_parameter_group.rb b/lib/fog/aws/requests/elasticache/reset_cache_parameter_group.rb
index 6f834de..8dc9d8e 100644
--- a/lib/fog/aws/requests/elasticache/reset_cache_parameter_group.rb
+++ b/lib/fog/aws/requests/elasticache/reset_cache_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/reset_parameter_group'
 
         # Resets an existing cache parameter group
@@ -18,7 +17,7 @@ module Fog
         def reset_cache_parameter_group(id, parameter_names = [])
           # Construct Parameter resets in the format:
           #   ParameterNameValues.member.N => "param_name"
-          parameter_changes = parameter_names.inject({}) do |new_args, param|
+          parameter_changes = parameter_names.reduce({}) do |new_args, param|
             index = parameter_names.index(param) + 1
             new_args["ParameterNameValues.member.#{index}"] = param
             new_args
@@ -33,7 +32,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::ResetParameterGroup.new
           ))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elasticache/revoke_cache_security_group_ingress.rb b/lib/fog/aws/requests/elasticache/revoke_cache_security_group_ingress.rb
index 7607b58..31bd39c 100644
--- a/lib/fog/aws/requests/elasticache/revoke_cache_security_group_ingress.rb
+++ b/lib/fog/aws/requests/elasticache/revoke_cache_security_group_ingress.rb
@@ -3,7 +3,6 @@ module Fog
   module AWS
     class Elasticache
       class Real
-
         require 'fog/aws/parsers/elasticache/single_security_group'
 
         # Revoke ingress to a CacheSecurityGroup using EC2 Security Groups
@@ -24,7 +23,6 @@ module Fog
             :parser => Fog::Parsers::AWS::Elasticache::SingleSecurityGroup.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/apply_security_groups_to_load_balancer.rb b/lib/fog/aws/requests/elb/apply_security_groups_to_load_balancer.rb
index e1b4459..b01a2ae 100644
--- a/lib/fog/aws/requests/elb/apply_security_groups_to_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/apply_security_groups_to_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/apply_security_groups_to_load_balancer'
 
         # Sets the security groups for an ELB in VPC
@@ -27,12 +26,10 @@ module Fog
           }.merge!(params))
         end
 
-        alias :apply_security_groups :apply_security_groups_to_load_balancer
-
+        alias_method :apply_security_groups, :apply_security_groups_to_load_balancer
       end
 
       class Mock
-
         def apply_security_groups_to_load_balancer(security_group_ids, lb_name)
           raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
 
@@ -54,7 +51,7 @@ module Fog
           response
         end
 
-      alias :apply_security_groups :apply_security_groups_to_load_balancer
+      alias_method :apply_security_groups, :apply_security_groups_to_load_balancer
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/attach_load_balancer_to_subnets.rb b/lib/fog/aws/requests/elb/attach_load_balancer_to_subnets.rb
index a277c15..ad2de97 100644
--- a/lib/fog/aws/requests/elb/attach_load_balancer_to_subnets.rb
+++ b/lib/fog/aws/requests/elb/attach_load_balancer_to_subnets.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/attach_load_balancer_to_subnets'
 
         # Enable a subnet for an existing ELB
@@ -27,12 +26,10 @@ module Fog
           }.merge!(params))
         end
 
-        alias :enable_subnets :attach_load_balancer_to_subnets
-
+        alias_method :enable_subnets, :attach_load_balancer_to_subnets
       end
 
       class Mock
-
         def attach_load_balancer_to_subnets(subnet_ids, lb_name)
           raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
 
@@ -54,7 +51,7 @@ module Fog
           response
         end
 
-        alias :enable_subnets :attach_load_balancer_to_subnets
+        alias_method :enable_subnets, :attach_load_balancer_to_subnets
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/configure_health_check.rb b/lib/fog/aws/requests/elb/configure_health_check.rb
index f5dac0c..6ad8d33 100644
--- a/lib/fog/aws/requests/elb/configure_health_check.rb
+++ b/lib/fog/aws/requests/elb/configure_health_check.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/configure_health_check'
 
         # Enables the client to define an application healthcheck for the instances.
@@ -34,7 +33,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::ConfigureHealthCheck.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb b/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb
index f79e545..fe203de 100644
--- a/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb
+++ b/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Create an app cookie stickiness policy
@@ -26,7 +25,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb b/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb
index 6afb734..985ef57 100644
--- a/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb
+++ b/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Create a Load Balancer Cookie Stickiness Policy
@@ -28,7 +27,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/create_load_balancer.rb b/lib/fog/aws/requests/elb/create_load_balancer.rb
index 9704493..2f6e4f4 100644
--- a/lib/fog/aws/requests/elb/create_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/create_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/create_load_balancer'
 
         # Create a new Elastic Load Balancer
@@ -61,7 +60,7 @@ module Fog
           response = Excon::Response.new
           response.status = 200
 
-          raise Fog::AWS::ELB::IdentifierTaken if self.data[:load_balancers].has_key? lb_name
+          raise Fog::AWS::ELB::IdentifierTaken if self.data[:load_balancers].key? lb_name
 
           certificate_ids = Fog::AWS::IAM::Mock.data[@aws_access_key_id][:server_certificates].map {|n, c| c['Arn'] }
 
@@ -76,28 +75,77 @@ module Fog
 
           availability_zones = [*availability_zones].compact
           region = availability_zones.empty? ? "us-east-1" : availability_zones.first.gsub(/[a-z]$/, '')
-          supported_platforms = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:account_attributes].detect { |h| h["attributeName"] == "supported-platforms" }["values"]
-          security_group = if supported_platforms.include?("EC2")
-                             Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['amazon-elb-sg']
+          supported_platforms = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:account_attributes].find { |h| h["attributeName"] == "supported-platforms" }["values"]
+          subnet_ids = options[:subnet_ids] || []
+          subnets = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:subnets].select {|e| subnet_ids.include?(e["subnetId"]) }
+
+          # http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html
+          elb_location = if supported_platforms.include?("EC2")
+                           if subnet_ids.empty?
+                             'EC2-Classic'
+                           else
+                             'EC2-VPC'
+                           end
+                         else
+                           if subnet_ids.empty?
+                             'EC2-VPC-Default'
                            else
-                             if default_sg = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.detect { |sg| sg['groupName'] =~ /default_elb/ }
-                               default_sg
-                             else
-                               default_sg_name   = "default_elb_#{Fog::Mock.random_hex(6)}"
+                             'VPC'
+                           end
+                         end
+
+          security_group = case elb_location
+                           when 'EC2-Classic'
+                             Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['amazon-elb-sg']
+                           when 'EC2-VPC-Default'
+                             # find or create default vpc
+                             compute = Fog::Compute::AWS::new(:aws_access_key_id => @aws_access_key_id, :aws_secret_access_key => @aws_secret_access_key)
+                             unless vpc = compute.vpcs.all.first
+                               vpc = compute.vpcs.create('cidr_block' => '10.0.0.0/24')
+                             end
+
+                             default_sg = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
+                               sg['groupName'] =~ /^default_elb/ &&
+                                 sg["vpcId"] == vpc.id
+                             }
+
+                             unless default_sg
                                default_sg = {
-                                 'groupDescription'    => 'default elb security group',
-                                 'groupName'           => default_sg_name,
-                                 'groupId'             => Fog::AWS::Mock.security_group_id,
-                                 'ipPermissionsEgress' => [],
-                                 'ipPermissions'       => [],
-                                 'ownerId'             => self.data[:owner_id]
-                               }
-                               Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups][default_sg_name] = default_sg
+                                             'groupDescription'    => 'default_elb security group',
+                                             'groupName'           => "default_elb_#{Fog::Mock.random_hex(6)}",
+                                             'groupId'             => Fog::AWS::Mock.security_group_id,
+                                             'ipPermissionsEgress' => [],
+                                             'ipPermissions'       => [],
+                                             'ownerId'             => self.data[:owner_id],
+                                             'vpcId'               => vpc.id
+                                            }
+                               Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['default'] = default_sg
                              end
+
                              default_sg
-                           end
+                           when 'EC2-VPC'
+                             # find or create default vpc security group
+                             vpc_id = subnets.first["vpcId"]
+                             default_sg = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
+                               sg['groupName'] == 'default' &&
+                                 sg["vpcId"] == vpc_id
+                             }
 
+                             unless default_sg
+                               default_sg = {
+                                             'groupDescription'    => 'default elb security group',
+                                             'groupName'           => 'default',
+                                             'groupId'             => Fog::AWS::Mock.security_group_id,
+                                             'ipPermissionsEgress' => [],
+                                             'ipPermissions'       => [],
+                                             'ownerId'             => self.data[:owner_id],
+                                             'vpcId'               => vpc_id
+                                            }
+                               Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['default'] = default_sg
+                             end
 
+                             default_sg
+                           end
 
           self.data[:load_balancers][lb_name] = {
             'AvailabilityZones' => availability_zones,
@@ -122,7 +170,10 @@ module Fog
             },
             'Instances' => [],
             'ListenerDescriptions' => listeners,
-            'LoadBalancerAttributes' => {'CrossZoneLoadBalancing' => {'Enabled' => false}},
+            'LoadBalancerAttributes' => {
+              'ConnectionDraining' => {'Enabled' => false, 'Timeout' => 300},
+              'CrossZoneLoadBalancing' => {'Enabled' => false}
+            },
             'LoadBalancerName' => lb_name,
             'Policies' => {
               'AppCookieStickinessPolicies' => [],
diff --git a/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb b/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb
index 27e5a28..9e28a75 100644
--- a/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb
+++ b/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Create Elastic Load Balancer Listeners
@@ -48,7 +47,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/create_load_balancer_policy.rb b/lib/fog/aws/requests/elb/create_load_balancer_policy.rb
index 968bbc3..5e4982d 100644
--- a/lib/fog/aws/requests/elb/create_load_balancer_policy.rb
+++ b/lib/fog/aws/requests/elb/create_load_balancer_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Create Elastic Load Balancer Policy
@@ -40,7 +39,6 @@ module Fog
                     :parser            => Fog::Parsers::AWS::ELB::Empty.new
                   }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/delete_load_balancer.rb b/lib/fog/aws/requests/elb/delete_load_balancer.rb
index 802127e..fec9187 100644
--- a/lib/fog/aws/requests/elb/delete_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/delete_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/delete_load_balancer'
 
         # Delete an existing Elastic Load Balancer
@@ -26,7 +25,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::DeleteLoadBalancer.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb b/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb
index 902862a..e8bc8f3 100644
--- a/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb
+++ b/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Delet Elastic Load Balancer Listeners
@@ -24,7 +23,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb b/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb
index e5d0b40..7d5fd13 100644
--- a/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb
+++ b/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Delete a Load Balancer Stickiness Policy
@@ -24,7 +23,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb b/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb
index cc30020..b59ac48 100644
--- a/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/deregister_instances_from_load_balancer'
 
         # Deregister an instance from an existing ELB
@@ -28,8 +27,7 @@ module Fog
           }.merge!(params))
         end
 
-        alias :deregister_instances :deregister_instances_from_load_balancer
-
+        alias_method :deregister_instances, :deregister_instances_from_load_balancer
       end
 
       class Mock
@@ -56,7 +54,7 @@ module Fog
 
           response
         end
-        alias :deregister_instances :deregister_instances_from_load_balancer
+        alias_method :deregister_instances, :deregister_instances_from_load_balancer
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/describe_instance_health.rb b/lib/fog/aws/requests/elb/describe_instance_health.rb
index f24bfd6..1dd6312 100644
--- a/lib/fog/aws/requests/elb/describe_instance_health.rb
+++ b/lib/fog/aws/requests/elb/describe_instance_health.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/describe_instance_health'
 
         # Get health status for one or more instances on an existing ELB
@@ -30,7 +29,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::DescribeInstanceHealth.new
           }.merge!(params))
         end
-
       end
 
       class Mock
@@ -38,7 +36,7 @@ module Fog
           raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
 
           instance_ids = [*instance_ids]
-          instance_ids = load_balancer['Instances'].collect { |i| i['InstanceId'] } unless instance_ids.any?
+          instance_ids = load_balancer['Instances'].map { |i| i['InstanceId'] } unless instance_ids.any?
           data = instance_ids.map do |id|
             unless Fog::Compute::AWS::Mock.data[@region][@aws_access_key_id][:instances][id]
               raise Fog::AWS::ELB::InvalidInstance
diff --git a/lib/fog/aws/requests/elb/describe_load_balancer_attributes.rb b/lib/fog/aws/requests/elb/describe_load_balancer_attributes.rb
index 8eeec0b..8218592 100644
--- a/lib/fog/aws/requests/elb/describe_load_balancer_attributes.rb
+++ b/lib/fog/aws/requests/elb/describe_load_balancer_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/describe_load_balancer_attributes'
 
         # Describe the load balancer attributes
@@ -17,6 +16,9 @@ module Fog
         #       * 'RequestId'<~String> - Id of request
         #     * 'DescribeLoadBalancerAttributesResult'<~Hash>:
         #       * 'LoadBalancerAttributes'<~Hash>
+        #         * 'ConnectionDraining'<~Hash>
+        #           * 'Enabled'<~Boolean> - whether connection draining is enabled
+        #           * 'Timeout'<~Integer> - max time (in seconds) to keep existing conns open before deregistering instances.
         #         * 'CrossZoneLoadBalancing'<~Hash>
         #           * 'Enabled'<~Boolean> - whether crosszone load balancing is enabled
         def describe_load_balancer_attributes(lb_name)
@@ -26,7 +28,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::ELB::DescribeLoadBalancerAttributes.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb b/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb
index 28214ef..5f324ff 100644
--- a/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb
+++ b/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/describe_load_balancer_policies'
 
         # Describe all or specified load balancer policies
@@ -31,7 +30,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::ELB::DescribeLoadBalancerPolicies.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb b/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb
index 1bf9962..498b3a8 100644
--- a/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb
+++ b/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/describe_load_balancer_policy_types'
 
         # Describe all or specified load balancer policy types
@@ -32,7 +31,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::ELB::DescribeLoadBalancerPolicyTypes.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/describe_load_balancers.rb b/lib/fog/aws/requests/elb/describe_load_balancers.rb
index 9c34fdd..33b4807 100644
--- a/lib/fog/aws/requests/elb/describe_load_balancers.rb
+++ b/lib/fog/aws/requests/elb/describe_load_balancers.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/describe_load_balancers'
 
         # Describe all or specified load balancers
@@ -64,7 +63,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::ELB::DescribeLoadBalancers.new
           }.merge!(options))
         end
-
       end
 
       class Mock
@@ -105,13 +103,13 @@ module Fog
             'DescribeLoadBalancersResult' => {
               'LoadBalancerDescriptions' => load_balancers.map do |lb|
                 lb['Instances'] = lb['Instances'].map { |i| i['InstanceId'] }
-                lb['Policies'] = lb['Policies']['Proper'].inject({'AppCookieStickinessPolicies' => [], 'LBCookieStickinessPolicies' => [], 'OtherPolicies' => []}) { |m, policy|
+                lb['Policies'] = lb['Policies']['Proper'].reduce({'AppCookieStickinessPolicies' => [], 'LBCookieStickinessPolicies' => [], 'OtherPolicies' => []}) { |m, policy|
                   case policy['PolicyTypeName']
                   when 'AppCookieStickinessPolicyType'
-                    cookie_name = policy['PolicyAttributeDescriptions'].detect{|h| h['AttributeName'] == 'CookieName'}['AttributeValue']
+                    cookie_name = policy['PolicyAttributeDescriptions'].find{|h| h['AttributeName'] == 'CookieName'}['AttributeValue']
                     m['AppCookieStickinessPolicies'] << { 'PolicyName' => policy['PolicyName'], 'CookieName' => cookie_name }
                   when 'LBCookieStickinessPolicyType'
-                    cookie_expiration_period = policy['PolicyAttributeDescriptions'].detect{|h| h['AttributeName'] == 'CookieExpirationPeriod'}['AttributeValue'].to_i
+                    cookie_expiration_period = policy['PolicyAttributeDescriptions'].find{|h| h['AttributeName'] == 'CookieExpirationPeriod'}['AttributeValue'].to_i
                     lb_policy = { 'PolicyName' => policy['PolicyName'] }
                     lb_policy['CookieExpirationPeriod'] = cookie_expiration_period if cookie_expiration_period > 0
                     m['LBCookieStickinessPolicies'] << lb_policy
diff --git a/lib/fog/aws/requests/elb/detach_load_balancer_from_subnets.rb b/lib/fog/aws/requests/elb/detach_load_balancer_from_subnets.rb
index 592bb44..c92aa37 100644
--- a/lib/fog/aws/requests/elb/detach_load_balancer_from_subnets.rb
+++ b/lib/fog/aws/requests/elb/detach_load_balancer_from_subnets.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/detach_load_balancer_from_subnets'
 
         # Disable a subnet for an existing ELB
@@ -27,12 +26,10 @@ module Fog
           }.merge!(params))
         end
 
-        alias :disable_subnets :detach_load_balancer_from_subnets
-
+        alias_method :disable_subnets, :detach_load_balancer_from_subnets
       end
 
       class Mock
-
         def detach_load_balancer_from_subnets(subnet_ids, lb_name)
           raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
 
@@ -54,7 +51,7 @@ module Fog
           response
         end
 
-        alias :disable_subnets :detach_load_balancer_from_subnets
+        alias_method :disable_subnets, :detach_load_balancer_from_subnets
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb b/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb
index d3d0937..6556d15 100644
--- a/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/disable_availability_zones_for_load_balancer'
 
         # Disable an availability zone for an existing ELB
@@ -27,8 +26,7 @@ module Fog
           }.merge!(params))
         end
 
-        alias :disable_zones :disable_availability_zones_for_load_balancer
-
+        alias_method :disable_zones, :disable_availability_zones_for_load_balancer
       end
 
       class Mock
@@ -52,7 +50,7 @@ module Fog
           response
         end
 
-        alias :disable_zones :disable_availability_zones_for_load_balancer
+        alias_method :disable_zones, :disable_availability_zones_for_load_balancer
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb b/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb
index 056f6a0..d830d25 100644
--- a/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/enable_availability_zones_for_load_balancer'
 
         # Enable an availability zone for an existing ELB
@@ -27,12 +26,10 @@ module Fog
           }.merge!(params))
         end
 
-        alias :enable_zones :enable_availability_zones_for_load_balancer
-
+        alias_method :enable_zones, :enable_availability_zones_for_load_balancer
       end
 
       class Mock
-
         def enable_availability_zones_for_load_balancer(availability_zones, lb_name)
           raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
 
@@ -54,7 +51,7 @@ module Fog
           response
         end
 
-        alias :enable_zones :enable_availability_zones_for_load_balancer
+        alias_method :enable_zones, :enable_availability_zones_for_load_balancer
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/modify_load_balancer_attributes.rb b/lib/fog/aws/requests/elb/modify_load_balancer_attributes.rb
index 8b51ce9..37ac332 100644
--- a/lib/fog/aws/requests/elb/modify_load_balancer_attributes.rb
+++ b/lib/fog/aws/requests/elb/modify_load_balancer_attributes.rb
@@ -2,19 +2,20 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
-
         # Sets attributes of the load balancer
         #
-        # Currently the only attribute that can be set is whether CrossZoneLoadBalancing
-        # is enabled
+        # Currently the only attributes that can be set are whether CrossZoneLoadBalancing
+        # or ConnectionDraining are enabled. You can also set the Timeout for ConnectionDraining.
         #
         # http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_ModifyLoadBalancerAttributes.html
         # ==== Parameters
         # * lb_name<~String> - Name of the ELB
         # * options<~Hash>
+        #   * 'ConnectionDraining'<~Hash>:
+        #     * 'Enabled'<~Boolean> whether to enable connection draining
+        #     * 'Timeout'<~Integer> max time to keep existing conns open before deregistering instances
         #   * 'CrossZoneLoadBalancing'<~Hash>:
         #     * 'Enabled'<~Boolean> whether to enable cross zone load balancing
         #
@@ -31,14 +32,13 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           ))
         end
-
       end
 
       class Mock
         def modify_load_balancer_attributes(lb_name, attributes)
           raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
 
-          if attributes['CrossZoneLoadBalancing']
+          if attributes['CrossZoneLoadBalancing'] || attributes['ConnectionDraining']
             load_balancer['LoadBalancerAttributes'].merge! attributes
           end
 
diff --git a/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb b/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb
index ac0e2e0..f78aea2 100644
--- a/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb
+++ b/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/register_instances_with_load_balancer'
 
         # Register an instance with an existing ELB
@@ -28,8 +27,7 @@ module Fog
           }.merge!(params))
         end
 
-        alias :register_instances :register_instances_with_load_balancer
-
+        alias_method :register_instances, :register_instances_with_load_balancer
       end
 
       class Mock
@@ -57,7 +55,7 @@ module Fog
 
           response
         end
-        alias :register_instances :register_instances_with_load_balancer
+        alias_method :register_instances, :register_instances_with_load_balancer
       end
     end
   end
diff --git a/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb b/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb
index bb7289d..634ac44 100644
--- a/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb
+++ b/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Sets the certificate that terminates the specified listener's SSL
@@ -30,7 +29,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/elb/set_load_balancer_policies_for_backend_server.rb b/lib/fog/aws/requests/elb/set_load_balancer_policies_for_backend_server.rb
index 9319360..43d1859 100644
--- a/lib/fog/aws/requests/elb/set_load_balancer_policies_for_backend_server.rb
+++ b/lib/fog/aws/requests/elb/set_load_balancer_policies_for_backend_server.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Replaces the current set of policies associated with a port on which the back-end server is listening with a new set of policies.
diff --git a/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb b/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb
index 1fb9a31..73054aa 100644
--- a/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb
+++ b/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class ELB
       class Real
-
         require 'fog/aws/parsers/elb/empty'
 
         # Associates, updates, or disables a policy with a listener on the
@@ -36,7 +35,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::ELB::Empty.new
           }.merge!(params))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/emr/add_instance_groups.rb b/lib/fog/aws/requests/emr/add_instance_groups.rb
index 01969c4..7e26cb1 100644
--- a/lib/fog/aws/requests/emr/add_instance_groups.rb
+++ b/lib/fog/aws/requests/emr/add_instance_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/add_instance_groups'
 
         # adds an instance group to a running cluster
@@ -21,7 +20,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def add_instance_groups(job_flow_id, options={})
-
           if instance_groups = options.delete('InstanceGroups')
             options.merge!(Fog::AWS.indexed_param('InstanceGroups.member.%d', [*instance_groups]))
           end
@@ -32,14 +30,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::EMR::AddInstanceGroups.new,
           }.merge(options))
         end
-
       end
 
       class Mock
         def add_instance_groups(job_flow_id, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/emr/add_job_flow_steps.rb b/lib/fog/aws/requests/emr/add_job_flow_steps.rb
index 8fe6ae2..60319ed 100644
--- a/lib/fog/aws/requests/emr/add_job_flow_steps.rb
+++ b/lib/fog/aws/requests/emr/add_job_flow_steps.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/add_job_flow_steps'
 
         # adds new steps to a running job flow.
@@ -24,7 +23,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def add_job_flow_steps(job_flow_id, options={})
-
           if steps = options.delete('Steps')
             options.merge!(Fog::AWS.serialize_keys('Steps', steps))
           end
@@ -38,11 +36,9 @@ module Fog
       end
 
       class Mock
-
         def add_job_flow_steps(db_name, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/emr/describe_job_flows.rb b/lib/fog/aws/requests/emr/describe_job_flows.rb
index de12b21..9a41fca 100644
--- a/lib/fog/aws/requests/emr/describe_job_flows.rb
+++ b/lib/fog/aws/requests/emr/describe_job_flows.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/describe_job_flows'
 
         # returns a list of job flows that match all of the supplied parameters.
@@ -80,7 +79,6 @@ module Fog
         #         * 'Value'<~String> - The value part of the identified key
         #     * 'Name'<~String> - The name of the job flow step
         def describe_job_flows(options={})
-
           if job_ids = options.delete('JobFlowIds')
             options.merge!(Fog::AWS.serialize_keys('JobFlowIds', job_ids))
           end
@@ -97,11 +95,9 @@ module Fog
       end
 
       class Mock
-
         def describe_job_flows(db_name, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/emr/modify_instance_groups.rb b/lib/fog/aws/requests/emr/modify_instance_groups.rb
index cca9daf..5adb73f 100644
--- a/lib/fog/aws/requests/emr/modify_instance_groups.rb
+++ b/lib/fog/aws/requests/emr/modify_instance_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/modify_instance_groups'
 
         # modifies the number of nodes and configuration settings of an instance group..
@@ -16,7 +15,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>
         def modify_instance_groups(options={})
-
           if job_ids = options.delete('InstanceGroups')
             options.merge!(Fog::AWS.serialize_keys('InstanceGroups', job_ids))
           end
@@ -29,11 +27,9 @@ module Fog
       end
 
       class Mock
-
         def modify_instance_groups(options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/emr/run_job_flow.rb b/lib/fog/aws/requests/emr/run_job_flow.rb
index 8c994d1..21156a6 100644
--- a/lib/fog/aws/requests/emr/run_job_flow.rb
+++ b/lib/fog/aws/requests/emr/run_job_flow.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/run_job_flow'
 
         # creates and starts running a new job flow
@@ -48,7 +47,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def run_job_flow(name, options={})
-
           if bootstrap_actions = options.delete('BootstrapActions')
             options.merge!(Fog::AWS.serialize_keys('BootstrapActions', bootstrap_actions))
           end
@@ -97,11 +95,9 @@ module Fog
       end
 
       class Mock
-
         def run_job_flow(db_name, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/emr/set_termination_protection.rb b/lib/fog/aws/requests/emr/set_termination_protection.rb
index 4f90f7c..85ddd17 100644
--- a/lib/fog/aws/requests/emr/set_termination_protection.rb
+++ b/lib/fog/aws/requests/emr/set_termination_protection.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/set_termination_protection'
 
         # locks a job flow so the Amazon EC2 instances in the cluster cannot be terminated by user intervention.
@@ -15,7 +14,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>
         def set_termination_protection(is_protected, options={})
-
           if job_ids = options.delete('JobFlowIds')
             options.merge!(Fog::AWS.serialize_keys('JobFlowIds', job_ids))
           end
@@ -28,11 +26,9 @@ module Fog
       end
 
       class Mock
-
         def set_termination_protection(db_name, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/emr/terminate_job_flows.rb b/lib/fog/aws/requests/emr/terminate_job_flows.rb
index 5616c90..4a67cbf 100644
--- a/lib/fog/aws/requests/emr/terminate_job_flows.rb
+++ b/lib/fog/aws/requests/emr/terminate_job_flows.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class EMR
       class Real
-
         require 'fog/aws/parsers/emr/terminate_job_flows'
 
         # shuts a list of job flows down.
@@ -14,7 +13,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>
         def terminate_job_flows(options={})
-
           if job_ids = options.delete('JobFlowIds')
             options.merge!(Fog::AWS.serialize_keys('JobFlowIds', job_ids))
           end
@@ -26,11 +24,9 @@ module Fog
       end
 
       class Mock
-
         def terminate_job_flows(db_name, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/glacier/abort_multipart_upload.rb b/lib/fog/aws/requests/glacier/abort_multipart_upload.rb
index a9903af..97c8ec0 100644
--- a/lib/fog/aws/requests/glacier/abort_multipart_upload.rb
+++ b/lib/fog/aws/requests/glacier/abort_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Abort an upload
         #
         # ==== Parameters
@@ -29,7 +28,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/complete_multipart_upload.rb b/lib/fog/aws/requests/glacier/complete_multipart_upload.rb
index 56f27b6..293d146 100644
--- a/lib/fog/aws/requests/glacier/complete_multipart_upload.rb
+++ b/lib/fog/aws/requests/glacier/complete_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Complete an upload
         #
         # ==== Parameters
@@ -36,7 +35,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/create_archive.rb b/lib/fog/aws/requests/glacier/create_archive.rb
index 92bd627..f1cabbb 100644
--- a/lib/fog/aws/requests/glacier/create_archive.rb
+++ b/lib/fog/aws/requests/glacier/create_archive.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Upload an archive
         #
         # ==== Parameters
@@ -37,7 +36,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/create_vault.rb b/lib/fog/aws/requests/glacier/create_vault.rb
index d0994b9..fa1481a 100644
--- a/lib/fog/aws/requests/glacier/create_vault.rb
+++ b/lib/fog/aws/requests/glacier/create_vault.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # This operation creates a new vault with the specified name.  .
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
           }))
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/delete_archive.rb b/lib/fog/aws/requests/glacier/delete_archive.rb
index c6cb2ca..a873b13 100644
--- a/lib/fog/aws/requests/glacier/delete_archive.rb
+++ b/lib/fog/aws/requests/glacier/delete_archive.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Delete an archive
         #
         # ==== Parameters
@@ -29,7 +28,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/delete_vault.rb b/lib/fog/aws/requests/glacier/delete_vault.rb
index 6e0a964..5a15a7b 100644
--- a/lib/fog/aws/requests/glacier/delete_vault.rb
+++ b/lib/fog/aws/requests/glacier/delete_vault.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Delete a vault. Amazon Glacier will delete a vault only if there are no archives in the vault as per the last inventory
         # and there have been no writes to the vault since the last inventory
         #
@@ -28,7 +27,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/delete_vault_notification_configuration.rb b/lib/fog/aws/requests/glacier/delete_vault_notification_configuration.rb
index f230e21..740f0fd 100644
--- a/lib/fog/aws/requests/glacier/delete_vault_notification_configuration.rb
+++ b/lib/fog/aws/requests/glacier/delete_vault_notification_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Delete vault's notification configuration
         #
         # ==== Parameters
@@ -27,7 +26,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/describe_job.rb b/lib/fog/aws/requests/glacier/describe_job.rb
index caa74bd..c924c16 100644
--- a/lib/fog/aws/requests/glacier/describe_job.rb
+++ b/lib/fog/aws/requests/glacier/describe_job.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Complete an upload
         #
         # ==== Parameters
@@ -29,7 +28,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/describe_vault.rb b/lib/fog/aws/requests/glacier/describe_vault.rb
index c3a26c5..edb5eed 100644
--- a/lib/fog/aws/requests/glacier/describe_vault.rb
+++ b/lib/fog/aws/requests/glacier/describe_vault.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # This operation returns information about a vault
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/get_job_output.rb b/lib/fog/aws/requests/glacier/get_job_output.rb
index 7f35359..c89f987 100644
--- a/lib/fog/aws/requests/glacier/get_job_output.rb
+++ b/lib/fog/aws/requests/glacier/get_job_output.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Get the output from a job
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
           ))
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/get_vault_notification_configuration.rb b/lib/fog/aws/requests/glacier/get_vault_notification_configuration.rb
index c88631f..03585fd 100644
--- a/lib/fog/aws/requests/glacier/get_vault_notification_configuration.rb
+++ b/lib/fog/aws/requests/glacier/get_vault_notification_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Get a vault's notification configuration
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/initiate_job.rb b/lib/fog/aws/requests/glacier/initiate_job.rb
index 7048a6d..3f4edc5 100644
--- a/lib/fog/aws/requests/glacier/initiate_job.rb
+++ b/lib/fog/aws/requests/glacier/initiate_job.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # This operation initates a multipart upload of an archive to a vault
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
           })
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb b/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb
index e6cd207..cf545d4 100644
--- a/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb
+++ b/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # This operation initates a multipart upload of an archive to a vault
         #
         # ==== Parameters
@@ -32,7 +31,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/list_jobs.rb b/lib/fog/aws/requests/glacier/list_jobs.rb
index 9702224..76461e4 100644
--- a/lib/fog/aws/requests/glacier/list_jobs.rb
+++ b/lib/fog/aws/requests/glacier/list_jobs.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         #  lists in-progress and recently jobs for the specified vault
         #
         # ==== Parameters
@@ -22,7 +21,6 @@ module Fog
           account_id = options.delete('account_id') || '-'
           path = "/#{account_id}/vaults/#{Fog::AWS.escape(vault_name)}/jobs"
 
-
           request(
             :expects  => 200,
             :idempotent => true,
@@ -33,7 +31,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/list_multipart_uploads.rb b/lib/fog/aws/requests/glacier/list_multipart_uploads.rb
index 07512a4..751aea6 100644
--- a/lib/fog/aws/requests/glacier/list_multipart_uploads.rb
+++ b/lib/fog/aws/requests/glacier/list_multipart_uploads.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         #  lists in-progress multipart uploads for the specified vault
         #
         # ==== Parameters
@@ -20,7 +19,6 @@ module Fog
           account_id = options.delete('account_id') || '-'
           path = "/#{account_id}/vaults/#{Fog::AWS.escape(vault_name)}/multipart-uploads"
 
-
           request(
             :expects  => 200,
             :idempotent => true,
@@ -31,7 +29,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/list_parts.rb b/lib/fog/aws/requests/glacier/list_parts.rb
index ae92c53..0c1b8d5 100644
--- a/lib/fog/aws/requests/glacier/list_parts.rb
+++ b/lib/fog/aws/requests/glacier/list_parts.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         #  lists the parts of an archive that have been uploaded in a specific multipart upload
         #
         # ==== Parameters
@@ -31,7 +30,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/list_vaults.rb b/lib/fog/aws/requests/glacier/list_vaults.rb
index 225e85c..fc6d611 100644
--- a/lib/fog/aws/requests/glacier/list_vaults.rb
+++ b/lib/fog/aws/requests/glacier/list_vaults.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # This operation lists all vaults owned by the calling user’s account.
         #
         # ==== Parameters
@@ -30,7 +29,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/set_vault_notification_configuration.rb b/lib/fog/aws/requests/glacier/set_vault_notification_configuration.rb
index c7647b4..dd9498d 100644
--- a/lib/fog/aws/requests/glacier/set_vault_notification_configuration.rb
+++ b/lib/fog/aws/requests/glacier/set_vault_notification_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Set a vault's notification configuration
         #
         # ==== Parameters
@@ -31,7 +30,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/glacier/upload_part.rb b/lib/fog/aws/requests/glacier/upload_part.rb
index eb6f835..cba1ff1 100644
--- a/lib/fog/aws/requests/glacier/upload_part.rb
+++ b/lib/fog/aws/requests/glacier/upload_part.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Glacier
       class Real
-
         # Upload an archive
         #
         # ==== Parameters
@@ -40,7 +39,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/iam/add_role_to_instance_profile.rb b/lib/fog/aws/requests/iam/add_role_to_instance_profile.rb
index bb89f89..7c3afd8 100644
--- a/lib/fog/aws/requests/iam/add_role_to_instance_profile.rb
+++ b/lib/fog/aws/requests/iam/add_role_to_instance_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Add a role to an instance profile
@@ -27,9 +26,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/iam/add_user_to_group.rb b/lib/fog/aws/requests/iam/add_user_to_group.rb
index 6ea8175..66a58f0 100644
--- a/lib/fog/aws/requests/iam/add_user_to_group.rb
+++ b/lib/fog/aws/requests/iam/add_user_to_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Add a user to a group
@@ -27,14 +26,12 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def add_user_to_group(group_name, user_name)
-          if data[:groups].has_key? group_name
-            if data[:users].has_key? user_name
+          if data[:groups].key? group_name
+            if data[:users].key? user_name
 
               unless data[:groups][group_name][:members].include?(user_name)
                 data[:groups][group_name][:members] << user_name
@@ -51,7 +48,6 @@ module Fog
             raise Fog::AWS::IAM::NotFound.new("The group with name #{group_name} cannot be found.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/create_access_key.rb b/lib/fog/aws/requests/iam/create_access_key.rb
index f0113bb..fe189c6 100644
--- a/lib/fog/aws/requests/iam/create_access_key.rb
+++ b/lib/fog/aws/requests/iam/create_access_key.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/create_access_key'
 
         # Create a access keys for user (by default detects user from access credentials)
@@ -30,14 +29,13 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::CreateAccessKey.new
           }.merge!(options))
         end
-
       end
       class Mock
         def create_access_key(options)
           #FIXME: Not 100% correct as AWS will use the signing credentials when there is no 'UserName' in the options hash
           #       Also doesn't raise an error when there are too many keys
           if user = options['UserName']
-            if data[:users].has_key? user
+            if data[:users].key? user
               access_keys_data = data[:users][user][:access_keys]
             else
               raise Fog::AWS::IAM::NotFound.new('The user with name #{user_name} cannot be found.')
diff --git a/lib/fog/aws/requests/iam/create_account_alias.rb b/lib/fog/aws/requests/iam/create_account_alias.rb
index 1347e4c..7cd02e6 100644
--- a/lib/fog/aws/requests/iam/create_account_alias.rb
+++ b/lib/fog/aws/requests/iam/create_account_alias.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         def create_account_alias(account_alias)
@@ -12,7 +11,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/create_group.rb b/lib/fog/aws/requests/iam/create_group.rb
index 9c91774..3a3b5dc 100644
--- a/lib/fog/aws/requests/iam/create_group.rb
+++ b/lib/fog/aws/requests/iam/create_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/create_group'
 
         # Create a new group
@@ -32,13 +31,11 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::CreateGroup.new
           )
         end
-
       end
 
       class Mock
-
         def create_group(group_name, path = '/')
-          if data[:groups].has_key? group_name
+          if data[:groups].key? group_name
             raise Fog::AWS::IAM::EntityAlreadyExists.new("Group with name #{group_name} already exists.")
           else
             data[:groups][group_name][:path] = path
@@ -52,7 +49,6 @@ module Fog
               response.status = 200
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/iam/create_instance_profile.rb b/lib/fog/aws/requests/iam/create_instance_profile.rb
index 34f23f0..7c5b323 100644
--- a/lib/fog/aws/requests/iam/create_instance_profile.rb
+++ b/lib/fog/aws/requests/iam/create_instance_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/instance_profile'
 
         # Create a new instance_profile
diff --git a/lib/fog/aws/requests/iam/create_login_profile.rb b/lib/fog/aws/requests/iam/create_login_profile.rb
index de16c7e..cca2cfc 100644
--- a/lib/fog/aws/requests/iam/create_login_profile.rb
+++ b/lib/fog/aws/requests/iam/create_login_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/login_profile'
 
         # Creates a login profile for a user
@@ -29,7 +28,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::LoginProfile.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/create_role.rb b/lib/fog/aws/requests/iam/create_role.rb
index 6bb86c2..d37f7df 100644
--- a/lib/fog/aws/requests/iam/create_role.rb
+++ b/lib/fog/aws/requests/iam/create_role.rb
@@ -49,7 +49,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::SingleRole.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/create_user.rb b/lib/fog/aws/requests/iam/create_user.rb
index 0a354ca..a4b6b94 100644
--- a/lib/fog/aws/requests/iam/create_user.rb
+++ b/lib/fog/aws/requests/iam/create_user.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/create_user'
 
         # Create a new user
@@ -32,12 +31,11 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::CreateUser.new
           )
         end
-
       end
 
       class Mock
         def create_user(user_name, path='/')
-          if data[:users].has_key? user_name
+          if data[:users].key? user_name
             raise Fog::AWS::IAM::EntityAlreadyExists.new "User with name #{user_name} already exists."
           else
             data[:users][user_name][:path] = path
diff --git a/lib/fog/aws/requests/iam/delete_access_key.rb b/lib/fog/aws/requests/iam/delete_access_key.rb
index 74b657d..9beba00 100644
--- a/lib/fog/aws/requests/iam/delete_access_key.rb
+++ b/lib/fog/aws/requests/iam/delete_access_key.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Delete an access key
@@ -27,14 +26,12 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def delete_access_key(access_key_id, options = {})
           user_name = options['UserName']
-          if user_name && data[:users].has_key?(user_name) && data[:users][user_name][:access_keys].any? { |akey| akey['AccessKeyId'] == access_key_id }
+          if user_name && data[:users].key?(user_name) && data[:users][user_name][:access_keys].any? { |akey| akey['AccessKeyId'] == access_key_id }
             data[:users][user_name][:access_keys].delete_if { |akey| akey['AccessKeyId'] == access_key_id }
             Excon::Response.new.tap do |response|
               response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
@@ -44,7 +41,6 @@ module Fog
             raise Fog::AWS::IAM::NotFound.new("The Access Key with id #{access_key_id} cannot be found.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_account_alias.rb b/lib/fog/aws/requests/iam/delete_account_alias.rb
index ba49c83..a20c236 100644
--- a/lib/fog/aws/requests/iam/delete_account_alias.rb
+++ b/lib/fog/aws/requests/iam/delete_account_alias.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         def delete_account_alias(account_alias)
@@ -12,7 +11,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_account_password_policy.rb b/lib/fog/aws/requests/iam/delete_account_password_policy.rb
new file mode 100644
index 0000000..57f3778
--- /dev/null
+++ b/lib/fog/aws/requests/iam/delete_account_password_policy.rb
@@ -0,0 +1,36 @@
+module Fog
+  module AWS
+    class IAM
+      class Real
+        require 'fog/aws/parsers/iam/basic'
+        # Add or update the account password policy
+        #
+        # ==== Parameters
+        #
+        # ==== Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+        #     * 'RequestId'<~String> - Id of the request
+        #
+        # ==== See Also
+        # http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html
+        #
+        def delete_account_password_policy
+          request({
+            'Action'          => 'DeleteAccountPasswordPolicy',
+            :parser           => Fog::Parsers::AWS::IAM::Basic.new
+          })
+        end
+      end
+
+      class Mock
+        def delete_account_password_policy
+          Excon::Response.new.tap do |response|
+            response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
+            response.status = 200
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/iam/delete_group.rb b/lib/fog/aws/requests/iam/delete_group.rb
index fe51384..93ba12b 100644
--- a/lib/fog/aws/requests/iam/delete_group.rb
+++ b/lib/fog/aws/requests/iam/delete_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Delete a group
@@ -25,13 +24,11 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_group(group_name)
-          if data[:groups].has_key? group_name
+          if data[:groups].key? group_name
             if data[:groups][group_name][:members].empty?
               data[:groups].delete group_name
               Excon::Response.new.tap do |response|
diff --git a/lib/fog/aws/requests/iam/delete_group_policy.rb b/lib/fog/aws/requests/iam/delete_group_policy.rb
index 3952ef2..e57170f 100644
--- a/lib/fog/aws/requests/iam/delete_group_policy.rb
+++ b/lib/fog/aws/requests/iam/delete_group_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Remove a policy from a group
@@ -27,7 +26,6 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_instance_profile.rb b/lib/fog/aws/requests/iam/delete_instance_profile.rb
index ee81826..4ccfc4f 100644
--- a/lib/fog/aws/requests/iam/delete_instance_profile.rb
+++ b/lib/fog/aws/requests/iam/delete_instance_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Delete a instance_profile
@@ -25,7 +24,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_login_profile.rb b/lib/fog/aws/requests/iam/delete_login_profile.rb
index 304978b..163f36a 100644
--- a/lib/fog/aws/requests/iam/delete_login_profile.rb
+++ b/lib/fog/aws/requests/iam/delete_login_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Deletes a user's login profile
@@ -24,7 +23,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_role.rb b/lib/fog/aws/requests/iam/delete_role.rb
index bc490ca..02c2c54 100644
--- a/lib/fog/aws/requests/iam/delete_role.rb
+++ b/lib/fog/aws/requests/iam/delete_role.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Delete a role
@@ -25,7 +24,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_role_policy.rb b/lib/fog/aws/requests/iam/delete_role_policy.rb
index bcf1291..7293f1e 100644
--- a/lib/fog/aws/requests/iam/delete_role_policy.rb
+++ b/lib/fog/aws/requests/iam/delete_role_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Remove a policy from a role
@@ -27,9 +26,7 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/iam/delete_server_certificate.rb b/lib/fog/aws/requests/iam/delete_server_certificate.rb
index a49d380..d9a5d02 100644
--- a/lib/fog/aws/requests/iam/delete_server_certificate.rb
+++ b/lib/fog/aws/requests/iam/delete_server_certificate.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Deletes the specified server certificate.
@@ -25,7 +24,6 @@ module Fog
             :parser                 => Fog::Parsers::AWS::IAM::Basic.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/iam/delete_signing_certificate.rb b/lib/fog/aws/requests/iam/delete_signing_certificate.rb
index 12d3970..b13726f 100644
--- a/lib/fog/aws/requests/iam/delete_signing_certificate.rb
+++ b/lib/fog/aws/requests/iam/delete_signing_certificate.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Upload signing certificate for user (by default detects user from access credentials)
@@ -26,7 +25,6 @@ module Fog
             :parser         => Fog::Parsers::AWS::IAM::Basic.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_user.rb b/lib/fog/aws/requests/iam/delete_user.rb
index 7f832bd..833520b 100644
--- a/lib/fog/aws/requests/iam/delete_user.rb
+++ b/lib/fog/aws/requests/iam/delete_user.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Delete a user
@@ -25,13 +24,11 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_user(user_name)
-          if data[:users].has_key? user_name
+          if data[:users].key? user_name
             data[:users].delete user_name
             Excon::Response.new.tap do |response|
               response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
@@ -40,9 +37,7 @@ module Fog
           else
             raise Fog::AWS::IAM::NotFound.new("The user with name #{user_name} cannot be found.")
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/delete_user_policy.rb b/lib/fog/aws/requests/iam/delete_user_policy.rb
index c72f79b..a12ba93 100644
--- a/lib/fog/aws/requests/iam/delete_user_policy.rb
+++ b/lib/fog/aws/requests/iam/delete_user_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Remove a policy from a user
@@ -27,13 +26,11 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def delete_user_policy(user_name, policy_name)
-          if data[:users].has_key?(user_name) && data[:users][user_name][:policies].has_key?(policy_name)
+          if data[:users].key?(user_name) && data[:users][user_name][:policies].key?(policy_name)
             data[:users][user_name][:policies].delete policy_name
             Excon::Response.new.tap do |response|
               response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
@@ -43,7 +40,6 @@ module Fog
             raise Fog::AWS::IAM::NotFound.new("The user policy with name #{policy_name} cannot be found.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/get_account_password_policy.rb b/lib/fog/aws/requests/iam/get_account_password_policy.rb
new file mode 100644
index 0000000..c900a9d
--- /dev/null
+++ b/lib/fog/aws/requests/iam/get_account_password_policy.rb
@@ -0,0 +1,36 @@
+module Fog
+  module AWS
+    class IAM
+      class Real
+        require 'fog/aws/parsers/iam/basic'
+        # Add or update the account password policy
+        #
+        # ==== Parameters
+        #
+        # ==== Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+        #     * 'RequestId'<~String> - Id of the request
+        #
+        # ==== See Also
+        # http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html
+        #
+        def get_account_password_policy()
+          request({
+            'Action'          => 'DeleteAccountPasswordPolicy',
+            :parser           => Fog::Parsers::AWS::IAM::Basic.new
+          })
+        end
+      end
+
+      class Mock
+        def get_account_password_policy()
+          Excon::Response.new.tap do |response|
+            response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
+            response.status = 200
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/iam/get_account_summary.rb b/lib/fog/aws/requests/iam/get_account_summary.rb
index 6a65016..8a56a0d 100644
--- a/lib/fog/aws/requests/iam/get_account_summary.rb
+++ b/lib/fog/aws/requests/iam/get_account_summary.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/get_account_summary'
 
         # Retrieve account level information about account entity usage and IAM quotas
@@ -43,11 +42,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::GetAccountSummary.new
             )
         end
-
       end
 
       class Mock
-
         def get_account_summary
           Excon::Response.new.tap do |response|
             response.status = 200
@@ -72,9 +69,7 @@ module Fog
             }
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/iam/get_group.rb b/lib/fog/aws/requests/iam/get_group.rb
index 47c3e25..c62a8c7 100644
--- a/lib/fog/aws/requests/iam/get_group.rb
+++ b/lib/fog/aws/requests/iam/get_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/get_group'
 
         # Get Group
@@ -37,7 +36,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::GetGroup.new
           }.merge!(options))
         end
-
       end
       class Mock
         def get_group(group_name, options = {})
diff --git a/lib/fog/aws/requests/iam/get_group_policy.rb b/lib/fog/aws/requests/iam/get_group_policy.rb
index 11fc26b..4dec0a1 100644
--- a/lib/fog/aws/requests/iam/get_group_policy.rb
+++ b/lib/fog/aws/requests/iam/get_group_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/get_group_policy'
 
         # Get Group Policy
@@ -29,7 +28,6 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::GetGroupPolicy.new
           })
         end
-
       end
       class Mock
         def get_group_policy(policy_name, group_name)
diff --git a/lib/fog/aws/requests/iam/get_instance_profile.rb b/lib/fog/aws/requests/iam/get_instance_profile.rb
index 069951d..ba33a0b 100644
--- a/lib/fog/aws/requests/iam/get_instance_profile.rb
+++ b/lib/fog/aws/requests/iam/get_instance_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/instance_profile'
 
         # Retrieves information about an instance profile
@@ -35,7 +34,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::InstanceProfile.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/get_login_profile.rb b/lib/fog/aws/requests/iam/get_login_profile.rb
index 1c3d5cd..6f94709 100644
--- a/lib/fog/aws/requests/iam/get_login_profile.rb
+++ b/lib/fog/aws/requests/iam/get_login_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/login_profile'
 
         # Retrieves the login profile for a user
@@ -28,7 +27,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::LoginProfile.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/get_role.rb b/lib/fog/aws/requests/iam/get_role.rb
index 34534e1..c60f899 100644
--- a/lib/fog/aws/requests/iam/get_role.rb
+++ b/lib/fog/aws/requests/iam/get_role.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/single_role'
 
         # Get the specified role
@@ -31,7 +30,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::SingleRole.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/get_role_policy.rb b/lib/fog/aws/requests/iam/get_role_policy.rb
index 9dade38..cab6e83 100644
--- a/lib/fog/aws/requests/iam/get_role_policy.rb
+++ b/lib/fog/aws/requests/iam/get_role_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/get_role_policy'
 
         # Get Role Policy
@@ -29,7 +28,6 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::GetRolePolicy.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/get_server_certificate.rb b/lib/fog/aws/requests/iam/get_server_certificate.rb
index 8a0766a..c9c21d8 100644
--- a/lib/fog/aws/requests/iam/get_server_certificate.rb
+++ b/lib/fog/aws/requests/iam/get_server_certificate.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/upload_server_certificate'
 
         # Gets the specified server certificate.
@@ -25,7 +24,6 @@ module Fog
             :parser                 => Fog::Parsers::AWS::IAM::UploadServerCertificate.new
           })
         end
-
       end
 
       class Mock
@@ -45,4 +43,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/iam/get_user.rb b/lib/fog/aws/requests/iam/get_user.rb
index a620213..4fe7d6a 100644
--- a/lib/fog/aws/requests/iam/get_user.rb
+++ b/lib/fog/aws/requests/iam/get_user.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/get_user'
 
         # Get User
@@ -31,7 +30,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::GetUser.new
           }.merge!(options))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/iam/get_user_policy.rb b/lib/fog/aws/requests/iam/get_user_policy.rb
index 7b7e369..d5a953b 100644
--- a/lib/fog/aws/requests/iam/get_user_policy.rb
+++ b/lib/fog/aws/requests/iam/get_user_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/get_user_policy'
 
         # Get User Policy
@@ -29,7 +28,6 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::GetUserPolicy.new
           })
         end
-
       end
       class Mock
         def get_user_policy(policy_name, user_name)
diff --git a/lib/fog/aws/requests/iam/list_access_keys.rb b/lib/fog/aws/requests/iam/list_access_keys.rb
index 5691b3f..6c42cfc 100644
--- a/lib/fog/aws/requests/iam/list_access_keys.rb
+++ b/lib/fog/aws/requests/iam/list_access_keys.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_access_keys'
 
         # List access_keys
@@ -33,15 +32,13 @@ module Fog
             :parser   => Fog::Parsers::AWS::IAM::ListAccessKeys.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def list_access_keys(options = {})
           #FIXME: Doesn't do anything with options, aside from UserName
           if user = options['UserName']
-            if data[:users].has_key? user
+            if data[:users].key? user
               access_keys_data = data[:users][user][:access_keys]
             else
               raise Fog::AWS::IAM::NotFound.new("The user with name #{user} cannot be found.")
diff --git a/lib/fog/aws/requests/iam/list_account_aliases.rb b/lib/fog/aws/requests/iam/list_account_aliases.rb
index ce5d7ae..9197896 100644
--- a/lib/fog/aws/requests/iam/list_account_aliases.rb
+++ b/lib/fog/aws/requests/iam/list_account_aliases.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_account_aliases'
 
         def list_account_aliases(options = {})
@@ -11,7 +10,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::IAM::ListAccountAliases.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_group_policies.rb b/lib/fog/aws/requests/iam/list_group_policies.rb
index 0866424..f83adc9 100644
--- a/lib/fog/aws/requests/iam/list_group_policies.rb
+++ b/lib/fog/aws/requests/iam/list_group_policies.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_policies'
 
         # List policies for a group
@@ -32,7 +31,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListPolicies.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_groups.rb b/lib/fog/aws/requests/iam/list_groups.rb
index e2ffc57..8084c38 100644
--- a/lib/fog/aws/requests/iam/list_groups.rb
+++ b/lib/fog/aws/requests/iam/list_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_groups'
 
         # List groups
@@ -35,11 +34,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::IAM::ListGroups.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def list_groups(options = {} )
           #FIXME: Doesn't observe options
           Excon::Response.new.tap do |response|
diff --git a/lib/fog/aws/requests/iam/list_groups_for_user.rb b/lib/fog/aws/requests/iam/list_groups_for_user.rb
index 1c6446a..d5b72a5 100644
--- a/lib/fog/aws/requests/iam/list_groups_for_user.rb
+++ b/lib/fog/aws/requests/iam/list_groups_for_user.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_groups_for_user'
 
         # List groups_for_user
@@ -36,13 +35,12 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListGroupsForUser.new
           }.merge!(options))
         end
-
       end
 
       class Mock
         def list_groups_for_user(user_name, options = {})
           #FIXME: Does not consider options
-          if data[:users].has_key? user_name
+          if data[:users].key? user_name
             Excon::Response.new.tap do |response|
               response.status = 200
               response.body = { 'GroupsForUser' => data[:groups].select do |name, group|
diff --git a/lib/fog/aws/requests/iam/list_instance_profiles.rb b/lib/fog/aws/requests/iam/list_instance_profiles.rb
index 45d950a..95d876c 100644
--- a/lib/fog/aws/requests/iam/list_instance_profiles.rb
+++ b/lib/fog/aws/requests/iam/list_instance_profiles.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_instance_profiles'
 
         # Lists instance profiles
@@ -43,7 +42,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListInstanceProfiles.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb b/lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb
index b8f5e89..45a8af6 100644
--- a/lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb
+++ b/lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_instance_profiles'
 
         # Lists the instance profiles that have the specified associated role
@@ -44,7 +43,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListInstanceProfiles.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_role_policies.rb b/lib/fog/aws/requests/iam/list_role_policies.rb
index 60e76de..26962dc 100644
--- a/lib/fog/aws/requests/iam/list_role_policies.rb
+++ b/lib/fog/aws/requests/iam/list_role_policies.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_policies'
 
         # Lists the names of policies associated with a role
@@ -32,7 +31,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListPolicies.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_roles.rb b/lib/fog/aws/requests/iam/list_roles.rb
index 3cc5998..18267c1 100644
--- a/lib/fog/aws/requests/iam/list_roles.rb
+++ b/lib/fog/aws/requests/iam/list_roles.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_roles'
 
         # Lists roles
@@ -36,7 +35,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListRoles.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_server_certificates.rb b/lib/fog/aws/requests/iam/list_server_certificates.rb
index 267161d..11a0eab 100644
--- a/lib/fog/aws/requests/iam/list_server_certificates.rb
+++ b/lib/fog/aws/requests/iam/list_server_certificates.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_server_certificates'
 
         # List server certificates
@@ -35,7 +34,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::IAM::ListServerCertificates.new
           }.merge!(options))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/iam/list_signing_certificates.rb b/lib/fog/aws/requests/iam/list_signing_certificates.rb
index f28f4a4..cb51971 100644
--- a/lib/fog/aws/requests/iam/list_signing_certificates.rb
+++ b/lib/fog/aws/requests/iam/list_signing_certificates.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_signing_certificates'
 
         # List signing certificates for user (by default detects user from access credentials)
@@ -31,7 +30,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::IAM::ListSigningCertificates.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_user_policies.rb b/lib/fog/aws/requests/iam/list_user_policies.rb
index 32d1388..261543c 100644
--- a/lib/fog/aws/requests/iam/list_user_policies.rb
+++ b/lib/fog/aws/requests/iam/list_user_policies.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_policies'
 
         # List policies for a user
@@ -32,14 +31,12 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::ListPolicies.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def list_user_policies(user_name, options = {})
           #FIXME: doesn't use options atm
-          if data[:users].has_key? user_name
+          if data[:users].key? user_name
             Excon::Response.new.tap do |response|
               response.body = { 'PolicyNames' => data[:users][user_name][:policies].keys,
                                 'IsTruncated' => false,
@@ -50,7 +47,6 @@ module Fog
             raise Fog::AWS::IAM::NotFound.new("The user with name #{user_name} cannot be found.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/list_users.rb b/lib/fog/aws/requests/iam/list_users.rb
index 698c99d..ae3cb7f 100644
--- a/lib/fog/aws/requests/iam/list_users.rb
+++ b/lib/fog/aws/requests/iam/list_users.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/list_users'
 
         # List users
@@ -35,7 +34,6 @@ module Fog
             :parser   => Fog::Parsers::AWS::IAM::ListUsers.new
           }.merge!(options))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/iam/put_group_policy.rb b/lib/fog/aws/requests/iam/put_group_policy.rb
index dc943b7..adebc16 100644
--- a/lib/fog/aws/requests/iam/put_group_policy.rb
+++ b/lib/fog/aws/requests/iam/put_group_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Add or update a policy for a group
@@ -29,13 +28,12 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
       class Mock
         #FIXME: You can't actually use the credentials for anything elsewhere in Fog
         #FIXME: Doesn't do any validation on the policy
         def put_group_policy(group_name, policy_name, policy_document)
-          if data[:groups].has_key? group_name
+          if data[:groups].key? group_name
             data[:groups][group_name][:policies][policy_name] = policy_document
 
             Excon::Response.new.tap do |response|
diff --git a/lib/fog/aws/requests/iam/put_role_policy.rb b/lib/fog/aws/requests/iam/put_role_policy.rb
index 257b42d..f6924ef 100644
--- a/lib/fog/aws/requests/iam/put_role_policy.rb
+++ b/lib/fog/aws/requests/iam/put_role_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Add or update a policy for a role
@@ -29,7 +28,6 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/put_user_policy.rb b/lib/fog/aws/requests/iam/put_user_policy.rb
index 0ee036b..4ca089c 100644
--- a/lib/fog/aws/requests/iam/put_user_policy.rb
+++ b/lib/fog/aws/requests/iam/put_user_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Add or update a policy for a user
@@ -29,15 +28,13 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
 
       class Mock
-
         #FIXME: You can't actually use the credentials for anything elsewhere in Fog
         #FIXME: Doesn't do any validation on the policy
         def put_user_policy(user_name, policy_name, policy_document)
-          if data[:users].has_key? user_name
+          if data[:users].key? user_name
             data[:users][user_name][:policies][policy_name] = policy_document
 
             Excon::Response.new.tap do |response|
diff --git a/lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb b/lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb
index c6c1cfd..e238020 100644
--- a/lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb
+++ b/lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # removes a role from an instance profile
@@ -28,9 +27,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/iam/remove_user_from_group.rb b/lib/fog/aws/requests/iam/remove_user_from_group.rb
index 24b19d4..f7b89ca 100644
--- a/lib/fog/aws/requests/iam/remove_user_from_group.rb
+++ b/lib/fog/aws/requests/iam/remove_user_from_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Remove a user from a group
@@ -27,14 +26,12 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           )
         end
-
       end
 
       class Mock
-
         def remove_user_from_group(group_name, user_name)
-          if data[:groups].has_key? group_name
-            if data[:users].has_key? user_name
+          if data[:groups].key? group_name
+            if data[:users].key? user_name
               data[:groups][group_name][:members].delete_if { |item| item == user_name }
               Excon::Response.new.tap do |response|
                 response.status = 200
diff --git a/lib/fog/aws/requests/iam/update_access_key.rb b/lib/fog/aws/requests/iam/update_access_key.rb
index cc9c141..4e84cba 100644
--- a/lib/fog/aws/requests/iam/update_access_key.rb
+++ b/lib/fog/aws/requests/iam/update_access_key.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Update an access key for a user
@@ -29,13 +28,12 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
         def update_access_key(access_key_id, status, options = {})
           if user = options['UserName']
-            if data[:users].has_key? user
+            if data[:users].key? user
               access_keys_data = data[:users][user][:access_keys]
             else
               raise Fog::AWS::IAM::NotFound.new('The user with name #{user_name} cannot be found.')
@@ -43,7 +41,7 @@ module Fog
           else
             access_keys_data = data[:access_keys]
           end
-          key = access_keys_data.detect{|k| k["AccessKeyId"] == access_key_id}
+          key = access_keys_data.find{|k| k["AccessKeyId"] == access_key_id}
           key["Status"] = status
           Excon::Response.new.tap do |response|
             response.status = 200
@@ -52,7 +50,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/iam/update_account_password_policy.rb b/lib/fog/aws/requests/iam/update_account_password_policy.rb
new file mode 100644
index 0000000..d46c71f
--- /dev/null
+++ b/lib/fog/aws/requests/iam/update_account_password_policy.rb
@@ -0,0 +1,56 @@
+module Fog
+  module AWS
+    class IAM
+      class Real
+        require 'fog/aws/parsers/iam/basic'
+        # Add or update the account password policy
+        #
+        # ==== Parameters
+        #   *  MinimumPasswordLength<~integer> Minimum length to require for IAM user passwords.
+        #   *  MaxPasswordAge<~integer> The number of days that an IAM user password is valid.
+        #   *  PasswordReusePrevention<~integer> Specifies the number of previous passwords that IAM users are prevented from reusing.        
+        #   *  RequireSymbols<~boolean> Specifies whether to require symbols for IAM user passwords.
+        #   *  RequireNumbers<~boolean> Specifies whether to require numbers for IAM user passwords.
+        #   *  RequireUppercaseCharacters<~boolean> Specifies whether to require uppercase characters for IAM user passwords.
+        #   *  RequireLowercaseCharacters<~boolean> Specifies whether to require lowercase characters for IAM user passwords.
+        #   *  AllowUsersToChangePassword<~boolean> Specifies whether IAM users are allowed to change their own password.
+        #   *  HardExpiry<~boolean> Specifies whether IAM users are prevented from setting a new password after their password has expired.
+        #   *  ExpirePasswords<~boolean> Specifies whether IAM users are required to change their password after a specified number of days.
+        #
+        # ==== Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+        #     * 'RequestId'<~String> - Id of the request
+        #
+        # ==== See Also
+        # http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html
+        #
+        def update_account_password_policy(minimum_password_length, max_password_age, password_reuse_prevention,require_symbols,require_numbers,require_uppercase_characters, require_lowercase_characters,allow_users_to_change_password, hard_expiry, expire_passwords)
+          request({
+            'Action'                      => 'UpdateAccountPasswordPolicy',
+            'MinimumPasswordLength'       => minimum_password_length,
+            'MaxPasswordAge'              => max_password_age,
+            'PasswordReusePrevention'     => password_reuse_prevention,
+            'RequireSymbols'              => require_symbols,
+            'RequireNumbers'              => require_numbers,
+            'RequireUppercaseCharacters'  => require_uppercase_characters,
+            'RequireLowercaseCharacters'  => require_lowercase_characters,
+            'AllowUsersToChangePassword'  => allow_users_to_change_password,
+            'HardExpiry'                  => hard_expiry,
+            'ExpirePasswords'             => expire_passwords,
+            :parser                       => Fog::Parsers::AWS::IAM::Basic.new
+          })
+        end
+      end
+
+      class Mock
+        def update_account_password_policy(minimum_password_length, max_password_age, password_reuse_prevention,require_symbols,require_numbers,require_uppercase_characters, require_lowercase_characters,allow_users_to_change_password, hard_expiry, expire_passwords)
+          Excon::Response.new.tap do |response|
+            response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
+            response.status = 200
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/iam/update_group.rb b/lib/fog/aws/requests/iam/update_group.rb
index 6504ed0..79dd6b8 100644
--- a/lib/fog/aws/requests/iam/update_group.rb
+++ b/lib/fog/aws/requests/iam/update_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/update_group'
 
         # Update a Group
@@ -32,7 +31,6 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::UpdateGroup.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/update_login_profile.rb b/lib/fog/aws/requests/iam/update_login_profile.rb
index e54357e..40a3ab4 100644
--- a/lib/fog/aws/requests/iam/update_login_profile.rb
+++ b/lib/fog/aws/requests/iam/update_login_profile.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/basic'
 
         # Updates a login profile for a user
@@ -26,7 +25,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::IAM::Basic.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/update_server_certificate.rb b/lib/fog/aws/requests/iam/update_server_certificate.rb
index 0b6a9ec..762199e 100644
--- a/lib/fog/aws/requests/iam/update_server_certificate.rb
+++ b/lib/fog/aws/requests/iam/update_server_certificate.rb
@@ -30,7 +30,6 @@ module Fog
             :parser                 => Fog::Parsers::AWS::IAM::Basic.new
           }.merge!(options))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/iam/update_signing_certificate.rb b/lib/fog/aws/requests/iam/update_signing_certificate.rb
index da18730..fe011ce 100644
--- a/lib/fog/aws/requests/iam/update_signing_certificate.rb
+++ b/lib/fog/aws/requests/iam/update_signing_certificate.rb
@@ -25,7 +25,6 @@ module Fog
             :parser         => Fog::Parsers::AWS::IAM::Basic.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/update_user.rb b/lib/fog/aws/requests/iam/update_user.rb
index 291dfc5..b73d191 100644
--- a/lib/fog/aws/requests/iam/update_user.rb
+++ b/lib/fog/aws/requests/iam/update_user.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/update_user'
 
         # Update a user
@@ -32,7 +31,6 @@ module Fog
             :parser       => Fog::Parsers::AWS::IAM::UpdateUser.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/iam/upload_server_certificate.rb b/lib/fog/aws/requests/iam/upload_server_certificate.rb
index eccb884..d3e505d 100644
--- a/lib/fog/aws/requests/iam/upload_server_certificate.rb
+++ b/lib/fog/aws/requests/iam/upload_server_certificate.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/upload_server_certificate'
 
         # Uploads a server certificate entity for the AWS Account.
@@ -39,7 +38,6 @@ module Fog
             :parser                 => Fog::Parsers::AWS::IAM::UploadServerCertificate.new
           }.merge!(options))
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/iam/upload_signing_certificate.rb b/lib/fog/aws/requests/iam/upload_signing_certificate.rb
index c45b14b..c77c875 100644
--- a/lib/fog/aws/requests/iam/upload_signing_certificate.rb
+++ b/lib/fog/aws/requests/iam/upload_signing_certificate.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class IAM
       class Real
-
         require 'fog/aws/parsers/iam/upload_signing_certificate'
 
         # Upload signing certificate for user (by default detects user from access credentials)
@@ -31,7 +30,6 @@ module Fog
             :parser           => Fog::Parsers::AWS::IAM::UploadSigningCertificate.new
           }.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/add_tags_to_resource.rb b/lib/fog/aws/requests/rds/add_tags_to_resource.rb
index 07bba85..4ee57dd 100644
--- a/lib/fog/aws/requests/rds/add_tags_to_resource.rb
+++ b/lib/fog/aws/requests/rds/add_tags_to_resource.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         # adds tags to a database instance
         # http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/API_AddTagsToResource.html
         # ==== Parameters
@@ -21,11 +20,9 @@ module Fog
             }.merge(Fog::AWS.indexed_param('Tags.member.%d.Key', keys)).
               merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
         end
-
       end
 
       class Mock
-
         def add_tags_to_resource(rds_id, tags)
           response = Excon::Response.new
           if server = self.data[:servers][rds_id]
@@ -39,7 +36,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBInstance #{rds_id} not found")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb b/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb
index 4760bcc..b39ba07 100644
--- a/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb
+++ b/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/authorize_db_security_group_ingress'
 
         # authorizes a db security group ingress
@@ -25,13 +24,10 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::AuthorizeDBSecurityGroupIngress.new,
             'DBSecurityGroupName' => name
           }.merge(opts))
-
         end
-
       end
 
       class Mock
-
         def authorize_db_security_group_ingress(name, opts = {})
           unless opts.key?('CIDRIP') || (opts.key?('EC2SecurityGroupName') && opts.key?('EC2SecurityGroupOwnerId'))
             raise ArgumentError, 'Must specify CIDRIP, or both EC2SecurityGroupName and EC2SecurityGroupOwnerId'
@@ -41,12 +37,12 @@ module Fog
 
           if sec_group = self.data[:security_groups][name]
             if opts.key?('CIDRIP')
-              if sec_group['IPRanges'].detect{|h| h['CIDRIP'] == opts['CIDRIP']}
+              if sec_group['IPRanges'].find{|h| h['CIDRIP'] == opts['CIDRIP']}
                 raise Fog::AWS::RDS::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['CIDRIP']} is alreay defined")
               end
               sec_group['IPRanges'] << opts.merge({"Status" => 'authorizing'})
             else
-              if sec_group['EC2SecurityGroups'].detect{|h| h['EC2SecurityGroupName'] == opts['EC2SecurityGroupName']}
+              if sec_group['EC2SecurityGroups'].find{|h| h['EC2SecurityGroupName'] == opts['EC2SecurityGroupName']}
                 raise Fog::AWS::RDS::AuthorizationAlreadyExists.new("AuthorizationAlreadyExists => #{opts['EC2SecurityGroupName']} is alreay defined")
               end
               sec_group['EC2SecurityGroups'] << opts.merge({"Status" => 'authorizing'})
@@ -62,11 +58,8 @@ module Fog
           else
             raise Fog::AWS::RDS::NotFound.new("DBSecurityGroupNotFound => #{name} not found")
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/rds/create_db_instance.rb b/lib/fog/aws/requests/rds/create_db_instance.rb
index 0b8f022..3bfd666 100644
--- a/lib/fog/aws/requests/rds/create_db_instance.rb
+++ b/lib/fog/aws/requests/rds/create_db_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/create_db_instance'
 
         # Create a db instance
@@ -34,7 +33,6 @@ module Fog
         #
         # @see http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html
         def create_db_instance(db_name, options={})
-
           if security_groups = options.delete('DBSecurityGroups')
             options.merge!(Fog::AWS.indexed_param('DBSecurityGroups.member.%d', [*security_groups]))
           end
@@ -49,11 +47,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::CreateDBInstance.new,
           }.merge(options))
         end
-
       end
 
       class Mock
-
         def create_db_instance(db_name, options={})
           response = Excon::Response.new
           if self.data[:servers] and self.data[:servers][db_name]
@@ -70,7 +66,7 @@ module Fog
           # These are the required parameters according to the API
           required_params = %w{AllocatedStorage DBInstanceClass Engine MasterUserPassword MasterUsername }
           required_params.each do |key|
-            unless options.has_key?(key) and options[key] and !options[key].to_s.empty?
+            unless options.key?(key) and options[key] and !options[key].to_s.empty?
               #response.status = 400
               #response.body = {
               #  'Code' => 'MissingParameter',
@@ -116,7 +112,6 @@ module Fog
                  "VpcSecurityGroups" => options["VpcSecurityGroups"],
              }
 
-
           self.data[:servers][db_name] = data
           response.body = {
             "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
@@ -129,7 +124,6 @@ module Fog
           self.data[:tags][db_name] = {}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb b/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb
index 52af499..098fe8f 100644
--- a/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb
+++ b/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/create_db_instance_read_replica'
 
         # create a read replica db instance
@@ -18,8 +17,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def create_db_instance_read_replica(instance_identifier, source_identifier, options={})
-
-
           request({
             'Action'  => 'CreateDBInstanceReadReplica',
             'DBInstanceIdentifier' => instance_identifier,
@@ -27,11 +24,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::CreateDBInstanceReadReplica.new,
           }.merge(options))
         end
-
       end
 
       class Mock
-
         def create_db_instance_read_replica(instance_identifier, source_identifier, options={})
           # TODO: throw error when instance_identifier already exists,
           # or source_identifier doesn't exist
@@ -76,7 +71,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/create_db_parameter_group.rb b/lib/fog/aws/requests/rds/create_db_parameter_group.rb
index 149785c..6b1aa47 100644
--- a/lib/fog/aws/requests/rds/create_db_parameter_group.rb
+++ b/lib/fog/aws/requests/rds/create_db_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/create_db_parameter_group'
 
         # create a database parameter group
@@ -16,7 +15,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def create_db_parameter_group(group_name, group_family, description)
-
           request({
             'Action'  => 'CreateDBParameterGroup',
             'DBParameterGroupName' => group_name,
@@ -26,11 +24,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::CreateDbParameterGroup.new
           })
         end
-
       end
 
       class Mock
-
         def create_db_parameter_group(group_name, group_family, description)
           response = Excon::Response.new
           if self.data[:parameter_groups] and self.data[:parameter_groups][group_name]
@@ -50,9 +46,7 @@ module Fog
           }
           response.status = 200
           response
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/create_db_security_group.rb b/lib/fog/aws/requests/rds/create_db_security_group.rb
index c259cd2..93835a9 100644
--- a/lib/fog/aws/requests/rds/create_db_security_group.rb
+++ b/lib/fog/aws/requests/rds/create_db_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/create_db_security_group'
 
         # creates a db security group
@@ -21,11 +20,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::CreateDBSecurityGroup.new
           })
         end
-
       end
 
       class Mock
-
         def create_db_security_group(name, description = name)
           response = Excon::Response.new
           if self.data[:security_groups] and self.data[:security_groups][name]
@@ -45,11 +42,8 @@ module Fog
             'CreateDBSecurityGroupResult' => { 'DBSecurityGroup' => data }
           }
           response
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/rds/create_db_snapshot.rb b/lib/fog/aws/requests/rds/create_db_snapshot.rb
index 6edfd69..41316bd 100644
--- a/lib/fog/aws/requests/rds/create_db_snapshot.rb
+++ b/lib/fog/aws/requests/rds/create_db_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/create_db_snapshot'
 
         # creates a db snapshot
@@ -21,11 +20,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::CreateDBSnapshot.new
           })
         end
-
       end
 
       class Mock
-
         def create_db_snapshot(identifier, name)
           response = Excon::Response.new
           if data[:snapshots][name]
@@ -64,7 +61,6 @@ module Fog
           # SnapshotCreateTime is not part of the response.
           self.data[:snapshots][name]['SnapshotCreateTime'] = Time.now
           response
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/rds/create_db_subnet_group.rb b/lib/fog/aws/requests/rds/create_db_subnet_group.rb
index 9b28c82..0c4d37c 100644
--- a/lib/fog/aws/requests/rds/create_db_subnet_group.rb
+++ b/lib/fog/aws/requests/rds/create_db_subnet_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/create_db_subnet_group'
 
         # Creates a db subnet group
@@ -22,11 +21,9 @@ module Fog
           params.merge!(Fog::AWS.indexed_param("SubnetIds.member", Array(subnet_ids)))
           request(params)
         end
-
       end
 
       class Mock
-
         def create_db_subnet_group(name, subnet_ids, description = name)
           response = Excon::Response.new
           if self.data[:subnet_groups] && self.data[:subnet_groups][name]
@@ -57,9 +54,7 @@ module Fog
             'CreateDBSubnetGroupResult' => { 'DBSubnetGroup' => data }
           }
           response
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/delete_db_instance.rb b/lib/fog/aws/requests/rds/delete_db_instance.rb
index baa333f..85ed2e6 100644
--- a/lib/fog/aws/requests/rds/delete_db_instance.rb
+++ b/lib/fog/aws/requests/rds/delete_db_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/delete_db_instance'
 
         # delete a database instance
@@ -25,11 +24,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DeleteDBInstance.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def delete_db_instance(identifier, snapshot_identifier, skip_snapshot = false)
           response = Excon::Response.new
 
@@ -48,7 +45,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/delete_db_parameter_group.rb b/lib/fog/aws/requests/rds/delete_db_parameter_group.rb
index b4e807d..864de0c 100644
--- a/lib/fog/aws/requests/rds/delete_db_parameter_group.rb
+++ b/lib/fog/aws/requests/rds/delete_db_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/delete_db_parameter_group'
 
         # delete a database parameter group
@@ -13,7 +12,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def delete_db_parameter_group(group_name)
-
           request({
             'Action'  => 'DeleteDBParameterGroup',
             'DBParameterGroupName' => group_name,
@@ -21,11 +19,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DeleteDbParameterGroup.new
           })
         end
-
       end
 
       class Mock
-
         def delete_db_parameter_group(group_name)
           response = Excon::Response.new
 
@@ -39,7 +35,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBParameterGroup not found: #{group_name}")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/delete_db_security_group.rb b/lib/fog/aws/requests/rds/delete_db_security_group.rb
index c1506fa..cf9c84b 100644
--- a/lib/fog/aws/requests/rds/delete_db_security_group.rb
+++ b/lib/fog/aws/requests/rds/delete_db_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/delete_db_security_group'
 
         # deletes a db security group
@@ -19,11 +18,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DeleteDBSecurityGroup.new
           })
         end
-
       end
 
       class Mock
-
         def delete_db_security_group(name, description = name)
           response = Excon::Response.new
 
@@ -37,10 +34,7 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBSecurityGroupNotFound => #{name} not found")
           end
         end
-
       end
     end
   end
 end
-
-
diff --git a/lib/fog/aws/requests/rds/delete_db_snapshot.rb b/lib/fog/aws/requests/rds/delete_db_snapshot.rb
index 036b54f..352ed5c 100644
--- a/lib/fog/aws/requests/rds/delete_db_snapshot.rb
+++ b/lib/fog/aws/requests/rds/delete_db_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/delete_db_snapshot'
 
         # delete a database snapshot
@@ -13,7 +12,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def delete_db_snapshot(name)
-
           request({
             'Action'  => 'DeleteDBSnapshot',
             'DBSnapshotIdentifier' => name,
@@ -21,11 +19,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DeleteDBSnapshot.new
           })
         end
-
       end
 
       class Mock
-
         def delete_db_snapshot(name)
           # TODO: raise error if snapshot isn't 'available'
           response = Excon::Response.new
@@ -40,7 +36,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/delete_db_subnet_group.rb b/lib/fog/aws/requests/rds/delete_db_subnet_group.rb
index 26849b4..1b1fbf5 100644
--- a/lib/fog/aws/requests/rds/delete_db_subnet_group.rb
+++ b/lib/fog/aws/requests/rds/delete_db_subnet_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/delete_db_subnet_group'
 
         # Deletes a db subnet group
@@ -18,11 +17,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DeleteDBSubnetGroup.new }
           request(params)
         end
-
       end
 
       class Mock
-
         def delete_db_subnet_group(name)
           response = Excon::Response.new
           unless self.data[:subnet_groups] && self.data[:subnet_groups][name]
@@ -35,7 +32,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_engine_versions.rb b/lib/fog/aws/requests/rds/describe_db_engine_versions.rb
index 459b4b3..491c0e0 100644
--- a/lib/fog/aws/requests/rds/describe_db_engine_versions.rb
+++ b/lib/fog/aws/requests/rds/describe_db_engine_versions.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_engine_versions'
 
         def describe_db_engine_versions(opts={})
@@ -19,15 +18,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBEngineVersions.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_engine_versions(opts={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_instances.rb b/lib/fog/aws/requests/rds/describe_db_instances.rb
index 4e7336c..25a162f 100644
--- a/lib/fog/aws/requests/rds/describe_db_instances.rb
+++ b/lib/fog/aws/requests/rds/describe_db_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_instances'
 
         # Describe all or specified load db instances
@@ -27,11 +26,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBInstances.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_instances(identifier=nil, opts={})
           response = Excon::Response.new
           server_set = []
@@ -86,8 +83,6 @@ module Fog
           }
           response
         end
-
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_log_files.rb b/lib/fog/aws/requests/rds/describe_db_log_files.rb
index 0921403..ba456fc 100644
--- a/lib/fog/aws/requests/rds/describe_db_log_files.rb
+++ b/lib/fog/aws/requests/rds/describe_db_log_files.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_log_files'
 
         # Describe log files for a DB instance
@@ -35,7 +34,6 @@ module Fog
       end
 
       class Mock
-
         def describe_db_log_files(rds_id=nil, opts={})
           response = Excon::Response.new
           log_file_set = []
@@ -60,7 +58,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb b/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb
index 992bba4..dfa78b1 100644
--- a/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb
+++ b/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_parameter_groups'
 
         # This API returns a list of DBParameterGroup descriptions. If a DBParameterGroupName is specified, the list will contain only the descriptions of the specified DBParameterGroup
@@ -30,11 +29,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBParameterGroups.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_parameter_groups(name=nil, opts={})
           response = Excon::Response.new
           parameter_set = []
@@ -48,7 +45,6 @@ module Fog
             parameter_set = self.data[:parameter_groups].values
           end
 
-
           response.status = 200
           response.body = {
             "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
@@ -56,7 +52,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_parameters.rb b/lib/fog/aws/requests/rds/describe_db_parameters.rb
index cab0967..5b51da4 100644
--- a/lib/fog/aws/requests/rds/describe_db_parameters.rb
+++ b/lib/fog/aws/requests/rds/describe_db_parameters.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_parameters'
 
         # Describe  parameters from a parameter group
@@ -31,11 +30,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBParameters.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_parameters(name, opts={})
           Fog::Mock.not_implemented
         end
diff --git a/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb b/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb
index e0033a4..6d07d35 100644
--- a/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb
+++ b/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_reserved_instances'
 
         # Describe all or specified load db instances
@@ -27,15 +26,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBReservedInstances.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_reserved_instances(identifier=nil, opts={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_security_groups.rb b/lib/fog/aws/requests/rds/describe_db_security_groups.rb
index 334d160..946fddb 100644
--- a/lib/fog/aws/requests/rds/describe_db_security_groups.rb
+++ b/lib/fog/aws/requests/rds/describe_db_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_security_groups'
 
         # Describe all or specified db security groups
@@ -23,11 +22,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBSecurityGroups.new
           }.merge(opts))
         end
-
       end
 
       class Mock
-
         def describe_db_security_groups(opts={})
           response = Excon::Response.new
           sec_group_set = []
@@ -77,9 +74,7 @@ module Fog
           }
           response
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/rds/describe_db_snapshots.rb b/lib/fog/aws/requests/rds/describe_db_snapshots.rb
index 85a80fc..1ab314d 100644
--- a/lib/fog/aws/requests/rds/describe_db_snapshots.rb
+++ b/lib/fog/aws/requests/rds/describe_db_snapshots.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_snapshots'
 
         # Describe all or specified db snapshots
@@ -29,11 +28,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBSnapshots.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_snapshots(opts={})
           response = Excon::Response.new
           snapshots = self.data[:snapshots].values
@@ -62,9 +59,7 @@ module Fog
             "DescribeDBSnapshotsResult" => { "DBSnapshots" => snapshots }
           }
           response
-
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/describe_db_subnet_groups.rb b/lib/fog/aws/requests/rds/describe_db_subnet_groups.rb
index e6af85e..36fd700 100644
--- a/lib/fog/aws/requests/rds/describe_db_subnet_groups.rb
+++ b/lib/fog/aws/requests/rds/describe_db_subnet_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_db_subnet_groups'
 
         # This API returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is specified, the list will contain only
@@ -30,11 +29,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeDBSubnetGroups.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_db_subnet_groups(name = nil, opts = {})
           response = Excon::Response.new
 
@@ -57,7 +54,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/rds/describe_events.rb b/lib/fog/aws/requests/rds/describe_events.rb
index c312ada..488b07a 100644
--- a/lib/fog/aws/requests/rds/describe_events.rb
+++ b/lib/fog/aws/requests/rds/describe_events.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/event_list'
 
         # Returns a list of service events
@@ -39,7 +38,6 @@ module Fog
             :parser => Fog::Parsers::AWS::RDS::EventListParser.new
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb b/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb
index 3b0163f..95d147f 100644
--- a/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb
+++ b/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/describe_orderable_db_instance_options'
 
         # Describe all or specified load db instances
@@ -34,11 +33,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DescribeOrderableDBInstanceOptions.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def describe_orderable_db_instance_options(engine=nil, opts={})
           instance_options = []
           response = Excon::Response.new
@@ -69,7 +66,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/download_db_logfile_portion.rb b/lib/fog/aws/requests/rds/download_db_logfile_portion.rb
index 4b2fae6..e8361b3 100644
--- a/lib/fog/aws/requests/rds/download_db_logfile_portion.rb
+++ b/lib/fog/aws/requests/rds/download_db_logfile_portion.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/download_db_logfile_portion'
 
         # Retrieve a portion of a log file of a db instance
@@ -30,11 +29,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::DownloadDBLogFilePortion.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def download_db_logfile_portion(identifier=nil, filename=nil, opts={})
           response = Excon::Response.new
           server_set = []
@@ -55,8 +52,6 @@ module Fog
           }
           response
         end
-
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/list_tags_for_resource.rb b/lib/fog/aws/requests/rds/list_tags_for_resource.rb
index 6c37a5c..c02d1e2 100644
--- a/lib/fog/aws/requests/rds/list_tags_for_resource.rb
+++ b/lib/fog/aws/requests/rds/list_tags_for_resource.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/tag_list_parser'
 
         # returns a Hash of tags for a database instance
@@ -19,11 +18,9 @@ module Fog
             :parser         => Fog::Parsers::AWS::RDS::TagListParser.new
           )
         end
-
       end
 
       class Mock
-
         def list_tags_for_resource(rds_id)
           response = Excon::Response.new
           if server = self.data[:servers][rds_id]
@@ -37,7 +34,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBInstance #{rds_id} not found")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/modify_db_instance.rb b/lib/fog/aws/requests/rds/modify_db_instance.rb
index 2205985..997a32f 100644
--- a/lib/fog/aws/requests/rds/modify_db_instance.rb
+++ b/lib/fog/aws/requests/rds/modify_db_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/modify_db_instance'
 
         # modifies a database instance
@@ -29,7 +28,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def modify_db_instance(db_name, apply_immediately, options={})
-
           if security_groups = options.delete('DBSecurityGroups')
             options.merge!(Fog::AWS.indexed_param('DBSecurityGroups.member.%d', [*security_groups]))
           end
@@ -45,11 +43,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::ModifyDBInstance.new,
           }.merge(options))
         end
-
       end
 
       class Mock
-
         def modify_db_instance(db_name, apply_immediately, options={})
           response = Excon::Response.new
           if self.data[:servers][db_name]
@@ -79,7 +75,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBInstance #{db_name} not found")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/modify_db_parameter_group.rb b/lib/fog/aws/requests/rds/modify_db_parameter_group.rb
index 0d29f0d..9a03bac 100644
--- a/lib/fog/aws/requests/rds/modify_db_parameter_group.rb
+++ b/lib/fog/aws/requests/rds/modify_db_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/modify_db_parameter_group'
 
         # modifies a database parameter group
@@ -18,7 +17,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def modify_db_parameter_group(group_name, parameters)
-
           parameter_names = []
           parameter_values = []
           parameter_apply_methods = []
@@ -40,15 +38,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::ModifyDbParameterGroup.new
           }.merge(params))
         end
-
       end
 
       class Mock
-
         def modify_db_parameter_group(group_name, parameters)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/promote_read_replica.rb b/lib/fog/aws/requests/rds/promote_read_replica.rb
new file mode 100644
index 0000000..68388bb
--- /dev/null
+++ b/lib/fog/aws/requests/rds/promote_read_replica.rb
@@ -0,0 +1,59 @@
+module Fog
+  module AWS
+    class RDS
+      class Real
+        require 'fog/aws/parsers/rds/promote_read_replica'
+
+        # promote a read replica to a writable RDS instance
+        # http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html
+        # ==== Parameters
+        # * DBInstanceIdentifier <~String> - The DB Instance identifier for the DB Instance to be deleted.
+        # * BackupRetentionPeriod <~Integer> - The number of days to retain automated backups. Range: 0-8.
+        #                         Setting this parameter to a positive number enables backups.
+        #                         Setting this parameter to 0 disables automated backups.
+        # * PreferredBackupWindow <~String> - The daily time range during which automated backups are created if
+        #                         automated backups are enabled, using the BackupRetentionPeriod parameter.
+        #                         Default: A 30-minute window selected at random from an 8-hour block of time per region.
+        # See the Amazon RDS User Guide for the time blocks for each region from which the default backup windows are assigned.
+        #
+        # ==== Returns
+        # * response<~Excon::Response>:
+        #   * body<~Hash>:
+
+        def promote_read_replica(identifier, backup_retention_period = nil, preferred_backup_window = nil)
+          params = {}
+          params['BackupRetentionPeriod'] = backup_retention_period if backup_retention_period
+          params['PreferredBackupWindow'] = preferred_backup_window if preferred_backup_window
+          request({
+            'Action'  => 'PromoteReadReplica',
+            'DBInstanceIdentifier' => identifier,
+            :parser   => Fog::Parsers::AWS::RDS::PromoteReadReplica.new
+          }.merge(params))
+        end
+      end
+
+      class Mock
+        def promote_read_replica(identifier, backup_retention_period = nil, preferred_backup_window = nil)
+          if self.data[:servers][identifier]
+            data = {
+                'BackupRetentionPeriod' => backup_retention_period || 1,
+                'PreferredBackupWindow' => preferred_backup_window || '08:00-08:30',
+                'DBInstanceIdentifier' => identifier
+            }
+            self.data[:servers][identifier].merge(data)
+
+            response = Excon::Response.new
+            response.body = {
+                "ResponseMetadata" => { "RequestId" => Fog::AWS::Mock.request_id },
+                "PromoteReadReplicaResult" => { "DBInstance" => data}
+            }
+            response.status = 200
+            response
+          else
+            raise Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found")
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/rds/reboot_db_instance.rb b/lib/fog/aws/requests/rds/reboot_db_instance.rb
index 458bf41..c7f9421 100644
--- a/lib/fog/aws/requests/rds/reboot_db_instance.rb
+++ b/lib/fog/aws/requests/rds/reboot_db_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/reboot_db_instance'
 
         # reboots a database instance
@@ -19,11 +18,9 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::RebootDBInstance.new,
           })
         end
-
       end
 
       class Mock
-
         def reboot_db_instance(instance_identifier)
           response = Excon::Response.new
           if server = self.data[:servers][instance_identifier]
@@ -44,7 +41,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBInstance #{instance_identifier} not found")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/remove_tags_from_resource.rb b/lib/fog/aws/requests/rds/remove_tags_from_resource.rb
index 5eef002..be84c17 100644
--- a/lib/fog/aws/requests/rds/remove_tags_from_resource.rb
+++ b/lib/fog/aws/requests/rds/remove_tags_from_resource.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         # removes tags from a database instance
         # http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/API_RemoveTagsFromResource.html
         # ==== Parameters
@@ -19,11 +18,9 @@ module Fog
             }.merge(Fog::AWS.indexed_param('TagKeys.member.%d', keys))
           )
         end
-
       end
 
       class Mock
-
         def remove_tags_from_resource(rds_id, keys)
           response = Excon::Response.new
           if server = self.data[:servers][rds_id]
@@ -37,7 +34,6 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBInstance #{rds_id} not found")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb b/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb
index 87e0fce..e998d30 100644
--- a/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb
+++ b/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/restore_db_instance_from_db_snapshot'
 
         # Restores a DB Instance from a DB Snapshot
@@ -18,17 +17,13 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::RestoreDBInstanceFromDBSnapshot.new,
           }.merge(opts))
         end
-
       end
 
       class Mock
-
         def restore_db_instance_from_db_snapshot(snapshot_id, db_id, options={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb b/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb
index a1a598f..271e6fe 100644
--- a/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb
+++ b/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/restore_db_instance_to_point_in_time'
 
         # Restores a DB Instance to a point in time
@@ -18,18 +17,13 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::RestoreDBInstanceToPointInTime.new,
           }.merge(opts))
         end
-
       end
 
       class Mock
-
         def restore_db_instance_to_point_in_time(source_db_name, target_db_name, opts={})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
 end
-
-
diff --git a/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb b/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb
index b630fb6..a3174f1 100644
--- a/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb
+++ b/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class RDS
       class Real
-
         require 'fog/aws/parsers/rds/revoke_db_security_group_ingress'
 
         # revokes a db security group ingress
@@ -25,13 +24,10 @@ module Fog
             :parser   => Fog::Parsers::AWS::RDS::RevokeDBSecurityGroupIngress.new,
             'DBSecurityGroupName' => name
           }.merge(opts))
-
         end
-
       end
 
       class Mock
-
         def revoke_db_security_group_ingress(name, opts = {})
           unless opts.key?('CIDRIP') || (opts.key?('EC2SecurityGroupName') && opts.key?('EC2SecurityGroupOwnerId'))
             raise ArgumentError, 'Must specify CIDRIP, or both EC2SecurityGroupName and EC2SecurityGroupOwnerId'
@@ -61,10 +57,7 @@ module Fog
             raise Fog::AWS::RDS::NotFound.new("DBSecurityGroupNotFound => #{name} not found")
           end
         end
-
       end
     end
   end
 end
-
-
diff --git a/lib/fog/aws/requests/redshift/authorize_cluster_security_group_ingress.rb b/lib/fog/aws/requests/redshift/authorize_cluster_security_group_ingress.rb
index d53e418..f03b293 100644
--- a/lib/fog/aws/requests/redshift/authorize_cluster_security_group_ingress.rb
+++ b/lib/fog/aws/requests/redshift/authorize_cluster_security_group_ingress.rb
@@ -52,5 +52,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/requests/redshift/authorize_snapshot_access.rb b/lib/fog/aws/requests/redshift/authorize_snapshot_access.rb
index 3c00944..3848910 100644
--- a/lib/fog/aws/requests/redshift/authorize_snapshot_access.rb
+++ b/lib/fog/aws/requests/redshift/authorize_snapshot_access.rb
@@ -37,7 +37,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/copy_cluster_snapshot.rb b/lib/fog/aws/requests/redshift/copy_cluster_snapshot.rb
index f9ac15e..630b9af 100644
--- a/lib/fog/aws/requests/redshift/copy_cluster_snapshot.rb
+++ b/lib/fog/aws/requests/redshift/copy_cluster_snapshot.rb
@@ -41,8 +41,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/redshift/create_cluster.rb b/lib/fog/aws/requests/redshift/create_cluster.rb
index c86fbdb..5d6b24c 100644
--- a/lib/fog/aws/requests/redshift/create_cluster.rb
+++ b/lib/fog/aws/requests/redshift/create_cluster.rb
@@ -119,7 +119,6 @@ module Fog
             params[:query].merge!(Fog::AWS.indexed_param('VpcSecurityGroupIds.member.%d', [*vpc_security_group_ids]))
           end
 
-
           params[:query]['Action']                           = 'CreateCluster'
           params[:query]['DBName']                           = db_name if db_name
           params[:query]['ClusterIdentifier']                = cluster_identifier if cluster_identifier
@@ -141,11 +140,9 @@ module Fog
           params[:query]['PubliclyAccessible']               = publicly_accessible if publicly_accessible
           params[:query]['Encrypted']                        = encrypted if encrypted
 
-
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/create_cluster_parameter_group.rb b/lib/fog/aws/requests/redshift/create_cluster_parameter_group.rb
index 546abee..fce5225 100644
--- a/lib/fog/aws/requests/redshift/create_cluster_parameter_group.rb
+++ b/lib/fog/aws/requests/redshift/create_cluster_parameter_group.rb
@@ -48,7 +48,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/create_cluster_security_group.rb b/lib/fog/aws/requests/redshift/create_cluster_security_group.rb
index 2f24957..c0d6c66 100644
--- a/lib/fog/aws/requests/redshift/create_cluster_security_group.rb
+++ b/lib/fog/aws/requests/redshift/create_cluster_security_group.rb
@@ -36,7 +36,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/create_cluster_snapshot.rb b/lib/fog/aws/requests/redshift/create_cluster_snapshot.rb
index 30ca4d8..2d05043 100644
--- a/lib/fog/aws/requests/redshift/create_cluster_snapshot.rb
+++ b/lib/fog/aws/requests/redshift/create_cluster_snapshot.rb
@@ -38,7 +38,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/create_cluster_subnet_group.rb b/lib/fog/aws/requests/redshift/create_cluster_subnet_group.rb
index d524118..fdeb130 100644
--- a/lib/fog/aws/requests/redshift/create_cluster_subnet_group.rb
+++ b/lib/fog/aws/requests/redshift/create_cluster_subnet_group.rb
@@ -44,7 +44,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/delete_cluster.rb b/lib/fog/aws/requests/redshift/delete_cluster.rb
index 7335334..79eac19 100644
--- a/lib/fog/aws/requests/redshift/delete_cluster.rb
+++ b/lib/fog/aws/requests/redshift/delete_cluster.rb
@@ -45,7 +45,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/delete_cluster_parameter_group.rb b/lib/fog/aws/requests/redshift/delete_cluster_parameter_group.rb
index c244058..15b5f42 100644
--- a/lib/fog/aws/requests/redshift/delete_cluster_parameter_group.rb
+++ b/lib/fog/aws/requests/redshift/delete_cluster_parameter_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Redshift
       class Real
-
         # ==== Parameters
         #
         # @param [Hash] options
diff --git a/lib/fog/aws/requests/redshift/delete_cluster_security_group.rb b/lib/fog/aws/requests/redshift/delete_cluster_security_group.rb
index 3e47b1f..b7f0059 100644
--- a/lib/fog/aws/requests/redshift/delete_cluster_security_group.rb
+++ b/lib/fog/aws/requests/redshift/delete_cluster_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Redshift
       class Real
-
         # ==== Parameters
         #
         # @param [Hash] options
diff --git a/lib/fog/aws/requests/redshift/delete_cluster_snapshot.rb b/lib/fog/aws/requests/redshift/delete_cluster_snapshot.rb
index 1f11ecf..659c6f0 100644
--- a/lib/fog/aws/requests/redshift/delete_cluster_snapshot.rb
+++ b/lib/fog/aws/requests/redshift/delete_cluster_snapshot.rb
@@ -38,7 +38,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/delete_cluster_subnet_group.rb b/lib/fog/aws/requests/redshift/delete_cluster_subnet_group.rb
index e92980d..2e1c17b 100644
--- a/lib/fog/aws/requests/redshift/delete_cluster_subnet_group.rb
+++ b/lib/fog/aws/requests/redshift/delete_cluster_subnet_group.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class Redshift
       class Real
-
         # ==== Parameters
         #
         # @param [Hash] options
@@ -32,7 +31,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_cluster_parameter_groups.rb b/lib/fog/aws/requests/redshift/describe_cluster_parameter_groups.rb
index 8a669a2..41ee1fe 100644
--- a/lib/fog/aws/requests/redshift/describe_cluster_parameter_groups.rb
+++ b/lib/fog/aws/requests/redshift/describe_cluster_parameter_groups.rb
@@ -42,7 +42,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_cluster_parameters.rb b/lib/fog/aws/requests/redshift/describe_cluster_parameters.rb
index df0ec23..b727a3a 100644
--- a/lib/fog/aws/requests/redshift/describe_cluster_parameters.rb
+++ b/lib/fog/aws/requests/redshift/describe_cluster_parameters.rb
@@ -49,7 +49,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_cluster_security_groups.rb b/lib/fog/aws/requests/redshift/describe_cluster_security_groups.rb
index abd8b39..f902363 100644
--- a/lib/fog/aws/requests/redshift/describe_cluster_security_groups.rb
+++ b/lib/fog/aws/requests/redshift/describe_cluster_security_groups.rb
@@ -44,7 +44,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_cluster_snapshots.rb b/lib/fog/aws/requests/redshift/describe_cluster_snapshots.rb
index 8e36c3c..16be7a5 100644
--- a/lib/fog/aws/requests/redshift/describe_cluster_snapshots.rb
+++ b/lib/fog/aws/requests/redshift/describe_cluster_snapshots.rb
@@ -67,7 +67,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_cluster_subnet_groups.rb b/lib/fog/aws/requests/redshift/describe_cluster_subnet_groups.rb
index c05e877..dd3f64c 100644
--- a/lib/fog/aws/requests/redshift/describe_cluster_subnet_groups.rb
+++ b/lib/fog/aws/requests/redshift/describe_cluster_subnet_groups.rb
@@ -41,7 +41,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_cluster_versions.rb b/lib/fog/aws/requests/redshift/describe_cluster_versions.rb
index 87f1578..1a83c35 100644
--- a/lib/fog/aws/requests/redshift/describe_cluster_versions.rb
+++ b/lib/fog/aws/requests/redshift/describe_cluster_versions.rb
@@ -48,7 +48,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_default_cluster_parameters.rb b/lib/fog/aws/requests/redshift/describe_default_cluster_parameters.rb
index 2b679b2..9749e79 100644
--- a/lib/fog/aws/requests/redshift/describe_default_cluster_parameters.rb
+++ b/lib/fog/aws/requests/redshift/describe_default_cluster_parameters.rb
@@ -43,7 +43,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_events.rb b/lib/fog/aws/requests/redshift/describe_events.rb
index 16e88c8..16a1576 100644
--- a/lib/fog/aws/requests/redshift/describe_events.rb
+++ b/lib/fog/aws/requests/redshift/describe_events.rb
@@ -74,7 +74,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_orderable_cluster_options.rb b/lib/fog/aws/requests/redshift/describe_orderable_cluster_options.rb
index 757f077..a5c591b 100644
--- a/lib/fog/aws/requests/redshift/describe_orderable_cluster_options.rb
+++ b/lib/fog/aws/requests/redshift/describe_orderable_cluster_options.rb
@@ -49,7 +49,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_reserved_node_offerings.rb b/lib/fog/aws/requests/redshift/describe_reserved_node_offerings.rb
index acc1d58..9b8726f 100644
--- a/lib/fog/aws/requests/redshift/describe_reserved_node_offerings.rb
+++ b/lib/fog/aws/requests/redshift/describe_reserved_node_offerings.rb
@@ -42,7 +42,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_reserved_nodes.rb b/lib/fog/aws/requests/redshift/describe_reserved_nodes.rb
index 3a4981d..4138260 100644
--- a/lib/fog/aws/requests/redshift/describe_reserved_nodes.rb
+++ b/lib/fog/aws/requests/redshift/describe_reserved_nodes.rb
@@ -42,7 +42,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/describe_resize.rb b/lib/fog/aws/requests/redshift/describe_resize.rb
index a71de15..a2abf8d 100644
--- a/lib/fog/aws/requests/redshift/describe_resize.rb
+++ b/lib/fog/aws/requests/redshift/describe_resize.rb
@@ -33,7 +33,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/modify_cluster.rb b/lib/fog/aws/requests/redshift/modify_cluster.rb
index 7cedb34..d368714 100644
--- a/lib/fog/aws/requests/redshift/modify_cluster.rb
+++ b/lib/fog/aws/requests/redshift/modify_cluster.rb
@@ -87,7 +87,6 @@ module Fog
             params[:query].merge!(Fog::AWS.indexed_param('VpcSecurityGroupIds.member.%d', [*vpc_security_group_ids]))
           end
 
-
           params[:query]['Action']                           = 'ModifyCluster'
           params[:query]['ClusterIdentifier']                = cluster_identifier if cluster_identifier
           params[:query]['ClusterParameterGroupName']        = cluster_parameter_group_name if cluster_parameter_group_name
@@ -105,7 +104,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/modify_cluster_subnet_group.rb b/lib/fog/aws/requests/redshift/modify_cluster_subnet_group.rb
index 13e4cba..2ef3dcc 100644
--- a/lib/fog/aws/requests/redshift/modify_cluster_subnet_group.rb
+++ b/lib/fog/aws/requests/redshift/modify_cluster_subnet_group.rb
@@ -44,7 +44,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/redshift/purchase_reserved_node_offering.rb b/lib/fog/aws/requests/redshift/purchase_reserved_node_offering.rb
index 35d6abd..e41d522 100644
--- a/lib/fog/aws/requests/redshift/purchase_reserved_node_offering.rb
+++ b/lib/fog/aws/requests/redshift/purchase_reserved_node_offering.rb
@@ -34,8 +34,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/redshift/reboot_cluster.rb b/lib/fog/aws/requests/redshift/reboot_cluster.rb
index b43246c..3ac3490 100644
--- a/lib/fog/aws/requests/redshift/reboot_cluster.rb
+++ b/lib/fog/aws/requests/redshift/reboot_cluster.rb
@@ -29,7 +29,6 @@ module Fog
           params[:query]['Action']                           = 'RebootCluster'
           params[:query]['ClusterIdentifier']                = cluster_identifier if cluster_identifier
           request(params)
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/redshift/reset_cluster_parameter_group.rb b/lib/fog/aws/requests/redshift/reset_cluster_parameter_group.rb
index bff7f87..b33c9b3 100644
--- a/lib/fog/aws/requests/redshift/reset_cluster_parameter_group.rb
+++ b/lib/fog/aws/requests/redshift/reset_cluster_parameter_group.rb
@@ -50,8 +50,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/redshift/restore_from_cluster_snapshot.rb b/lib/fog/aws/requests/redshift/restore_from_cluster_snapshot.rb
index 36d7606..ff30d14 100644
--- a/lib/fog/aws/requests/redshift/restore_from_cluster_snapshot.rb
+++ b/lib/fog/aws/requests/redshift/restore_from_cluster_snapshot.rb
@@ -49,7 +49,6 @@ module Fog
           publicly_accessible          = options[:publicly_accessible]
           owner_account                = options[:owner_account]
 
-
           path = "/"
           params = {
             :headers    => {},
diff --git a/lib/fog/aws/requests/redshift/revoke_cluster_security_group_ingress.rb b/lib/fog/aws/requests/redshift/revoke_cluster_security_group_ingress.rb
index 6a04134..2432720 100644
--- a/lib/fog/aws/requests/redshift/revoke_cluster_security_group_ingress.rb
+++ b/lib/fog/aws/requests/redshift/revoke_cluster_security_group_ingress.rb
@@ -52,5 +52,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/aws/requests/redshift/revoke_snapshot_access.rb b/lib/fog/aws/requests/redshift/revoke_snapshot_access.rb
index 0b6f37e..9e7f1e6 100644
--- a/lib/fog/aws/requests/redshift/revoke_snapshot_access.rb
+++ b/lib/fog/aws/requests/redshift/revoke_snapshot_access.rb
@@ -38,7 +38,6 @@ module Fog
           request(params)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/ses/delete_verified_email_address.rb b/lib/fog/aws/requests/ses/delete_verified_email_address.rb
index 7017e3e..270b505 100644
--- a/lib/fog/aws/requests/ses/delete_verified_email_address.rb
+++ b/lib/fog/aws/requests/ses/delete_verified_email_address.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/delete_verified_email_address'
 
         # Delete an existing verified email address
@@ -21,7 +20,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::SES::DeleteVerifiedEmailAddress.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/get_send_quota.rb b/lib/fog/aws/requests/ses/get_send_quota.rb
index fc9a0a8..b113c2f 100644
--- a/lib/fog/aws/requests/ses/get_send_quota.rb
+++ b/lib/fog/aws/requests/ses/get_send_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/get_send_quota'
 
         # Returns the user's current activity limits.
@@ -24,7 +23,6 @@ module Fog
             :parser  => Fog::Parsers::AWS::SES::GetSendQuota.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/get_send_statistics.rb b/lib/fog/aws/requests/ses/get_send_statistics.rb
index a197ff3..fd11e12 100644
--- a/lib/fog/aws/requests/ses/get_send_statistics.rb
+++ b/lib/fog/aws/requests/ses/get_send_statistics.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/get_send_statistics'
 
         # Returns the user's current activity limits.
@@ -27,7 +26,6 @@ module Fog
             :parser  => Fog::Parsers::AWS::SES::GetSendStatistics.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/list_verified_email_addresses.rb b/lib/fog/aws/requests/ses/list_verified_email_addresses.rb
index ff90814..7d5d6bf 100644
--- a/lib/fog/aws/requests/ses/list_verified_email_addresses.rb
+++ b/lib/fog/aws/requests/ses/list_verified_email_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/list_verified_email_addresses'
 
         # Returns a list containing all of the email addresses that have been verified
@@ -21,7 +20,6 @@ module Fog
             :parser  => Fog::Parsers::AWS::SES::ListVerifiedEmailAddresses.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/send_email.rb b/lib/fog/aws/requests/ses/send_email.rb
index 6db1d7b..1d247cf 100644
--- a/lib/fog/aws/requests/ses/send_email.rb
+++ b/lib/fog/aws/requests/ses/send_email.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/send_email'
 
         # Send an email
@@ -53,11 +52,11 @@ module Fog
             end
           end
 
-          if options.has_key?('ReplyToAddresses')
+          if options.key?('ReplyToAddresses')
             params.merge!(Fog::AWS.indexed_param("ReplyToAddresses.member", [*options['ReplyToAddresses']]))
           end
 
-          if options.has_key?('ReturnPath')
+          if options.key?('ReturnPath')
             params['ReturnPath'] = options['ReturnPath']
           end
 
@@ -66,7 +65,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::SES::SendEmail.new
           }.merge(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/send_raw_email.rb b/lib/fog/aws/requests/ses/send_raw_email.rb
index 3f7bfa8..1a92654 100644
--- a/lib/fog/aws/requests/ses/send_raw_email.rb
+++ b/lib/fog/aws/requests/ses/send_raw_email.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/send_raw_email'
 
         # Send a raw email
@@ -21,10 +20,10 @@ module Fog
         #       * 'RequestId'<~String> - Id of request
         def send_raw_email(raw_message, options = {})
           params = {}
-          if options.has_key?('Destinations')
+          if options.key?('Destinations')
             params.merge!(Fog::AWS.indexed_param('Destinations.member', [*options['Destinations']]))
           end
-          if options.has_key?('Source')
+          if options.key?('Source')
             params['Source'] = options['Source']
           end
 
@@ -34,7 +33,6 @@ module Fog
             :parser           => Fog::Parsers::AWS::SES::SendRawEmail.new
           }.merge(params))
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/verify_domain_identity.rb b/lib/fog/aws/requests/ses/verify_domain_identity.rb
index 54229d8..3296528 100644
--- a/lib/fog/aws/requests/ses/verify_domain_identity.rb
+++ b/lib/fog/aws/requests/ses/verify_domain_identity.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/verify_domain_identity'
 
         # Verifies a domain. This action returns a verification authorization
@@ -23,7 +22,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::SES::VerifyDomainIdentity.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/ses/verify_email_address.rb b/lib/fog/aws/requests/ses/verify_email_address.rb
index 8f37f76..0098a6f 100644
--- a/lib/fog/aws/requests/ses/verify_email_address.rb
+++ b/lib/fog/aws/requests/ses/verify_email_address.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SES
       class Real
-
         require 'fog/aws/parsers/ses/verify_email_address'
 
         # Verifies an email address. This action causes a confirmation email message to be sent to the specified address.
@@ -21,7 +20,6 @@ module Fog
             :parser            => Fog::Parsers::AWS::SES::VerifyEmailAddress.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/batch_put_attributes.rb b/lib/fog/aws/requests/simpledb/batch_put_attributes.rb
index 6af0828..cb99282 100644
--- a/lib/fog/aws/requests/simpledb/batch_put_attributes.rb
+++ b/lib/fog/aws/requests/simpledb/batch_put_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         # Put items attributes into a SimpleDB domain
         #
         # ==== Parameters
@@ -27,11 +26,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SimpleDB::Basic.new(@nil_string)
           }.merge!(encode_batch_attributes(items, replace_attributes)))
         end
-
       end
 
       class Mock
-
         def batch_put_attributes(domain_name, items, replace_attributes = Hash.new([]))
           response = Excon::Response.new
           if self.data[:domains][domain_name]
@@ -57,7 +54,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/create_domain.rb b/lib/fog/aws/requests/simpledb/create_domain.rb
index 9512f0e..e192db1 100644
--- a/lib/fog/aws/requests/simpledb/create_domain.rb
+++ b/lib/fog/aws/requests/simpledb/create_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         # Create a SimpleDB domain
         #
         # ==== Parameters
@@ -22,11 +21,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SimpleDB::Basic.new(@nil_string)
           )
         end
-
       end
 
       class Mock
-
         def create_domain(domain_name)
           response = Excon::Response.new
           self.data[:domains][domain_name] = {}
@@ -37,7 +34,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/delete_attributes.rb b/lib/fog/aws/requests/simpledb/delete_attributes.rb
index b51011a..e1ccce9 100644
--- a/lib/fog/aws/requests/simpledb/delete_attributes.rb
+++ b/lib/fog/aws/requests/simpledb/delete_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         # List metadata for SimpleDB domain
         #
         # ==== Parameters
@@ -30,11 +29,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SimpleDB::Basic.new(@nil_string)
           }.merge!(encode_attributes(attributes)))
         end
-
       end
 
       class Mock
-
         def delete_attributes(domain_name, item_name, attributes = nil)
           response = Excon::Response.new
           if self.data[:domains][domain_name]
@@ -66,7 +63,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/delete_domain.rb b/lib/fog/aws/requests/simpledb/delete_domain.rb
index e780ccc..217e3b9 100644
--- a/lib/fog/aws/requests/simpledb/delete_domain.rb
+++ b/lib/fog/aws/requests/simpledb/delete_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         # Delete a SimpleDB domain
         #
         # ==== Parameters
@@ -22,11 +21,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SimpleDB::Basic.new(@nil_string)
           )
         end
-
       end
 
       class Mock
-
         def delete_domain(domain_name)
           response = Excon::Response.new
           if self.data[:domains].delete(domain_name)
@@ -38,7 +35,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/domain_metadata.rb b/lib/fog/aws/requests/simpledb/domain_metadata.rb
index 486ef15..2e04a78 100644
--- a/lib/fog/aws/requests/simpledb/domain_metadata.rb
+++ b/lib/fog/aws/requests/simpledb/domain_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         require 'fog/aws/parsers/simpledb/domain_metadata'
 
         # List metadata for SimpleDB domain
@@ -31,11 +30,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SimpleDB::DomainMetadata.new(@nil_string)
           )
         end
-
       end
 
       class Mock
-
         def domain_metadata(domain_name)
           response = Excon::Response.new
           if domain = self.data[:domains][domain_name]
@@ -69,7 +66,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/get_attributes.rb b/lib/fog/aws/requests/simpledb/get_attributes.rb
index 079cd88..e0a9113 100644
--- a/lib/fog/aws/requests/simpledb/get_attributes.rb
+++ b/lib/fog/aws/requests/simpledb/get_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         require 'fog/aws/parsers/simpledb/get_attributes'
 
         # List metadata for SimpleDB domain
@@ -42,11 +41,9 @@ module Fog
             :parser           => Fog::Parsers::AWS::SimpleDB::GetAttributes.new(@nil_string)
           }.merge!(encode_attribute_names(options['AttributeName'])))
         end
-
       end
 
       class Mock
-
         def get_attributes(domain_name, item_name, options = {})
           if options.is_a?(Array)
             Fog::Logger.deprecation("get_attributes with array attributes param is deprecated, use 'AttributeName' => attributes) instead [light_black](#{caller.first})[/]")
@@ -58,7 +55,7 @@ module Fog
             object = {}
             if !options['AttributeName'].empty?
               for attribute in options['AttributeName']
-                if self.data[:domains][domain_name].has_key?(item_name) && self.data[:domains][domain_name][item_name].has_key?(attribute)
+                if self.data[:domains][domain_name].key?(item_name) && self.data[:domains][domain_name][item_name].key?(attribute)
                   object[attribute] = self.data[:domains][domain_name][item_name][attribute]
                 end
               end
@@ -77,7 +74,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/list_domains.rb b/lib/fog/aws/requests/simpledb/list_domains.rb
index c76829e..ef62b8a 100644
--- a/lib/fog/aws/requests/simpledb/list_domains.rb
+++ b/lib/fog/aws/requests/simpledb/list_domains.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         require 'fog/aws/parsers/simpledb/list_domains'
 
         # List SimpleDB domains
@@ -27,11 +26,9 @@ module Fog
             :parser     => Fog::Parsers::AWS::SimpleDB::ListDomains.new(@nil_string)
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def list_domains(options = {})
           response = Excon::Response.new
           keys = self.data[:domains].keys
@@ -52,7 +49,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/put_attributes.rb b/lib/fog/aws/requests/simpledb/put_attributes.rb
index c891100..bb40f74 100644
--- a/lib/fog/aws/requests/simpledb/put_attributes.rb
+++ b/lib/fog/aws/requests/simpledb/put_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         # Put item attributes into a SimpleDB domain
         #
         # ==== Parameters
@@ -34,11 +33,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SimpleDB::Basic.new(@nil_string)
           }.merge!(encode_attributes(attributes, options[:replace], options[:expect])))
         end
-
       end
 
       class Mock
-
         def put_attributes(domain_name, item_name, attributes, options = {})
           options[:expect] = {} unless options[:expect]
           options[:replace] = [] unless options[:replace]
@@ -71,7 +68,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/simpledb/select.rb b/lib/fog/aws/requests/simpledb/select.rb
index 331053d..56d05c5 100644
--- a/lib/fog/aws/requests/simpledb/select.rb
+++ b/lib/fog/aws/requests/simpledb/select.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SimpleDB
       class Real
-
         require 'fog/aws/parsers/simpledb/select'
 
         # Select item data from SimpleDB
@@ -36,7 +35,6 @@ module Fog
             :parser             => Fog::Parsers::AWS::SimpleDB::Select.new(@nil_string)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sns/add_permission.rb b/lib/fog/aws/requests/sns/add_permission.rb
index b6ec32b..6b68986 100644
--- a/lib/fog/aws/requests/sns/add_permission.rb
+++ b/lib/fog/aws/requests/sns/add_permission.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/add_permission'
 
         def add_permission(options = {})
@@ -11,15 +10,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::SNS::AddPermission.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def add_permission(options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sns/confirm_subscription.rb b/lib/fog/aws/requests/sns/confirm_subscription.rb
index a0c3e5e..75ecefb 100644
--- a/lib/fog/aws/requests/sns/confirm_subscription.rb
+++ b/lib/fog/aws/requests/sns/confirm_subscription.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/confirm_subscription'
 
         # Confirm a subscription
@@ -25,9 +24,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::ConfirmSubscription.new
           }.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/create_topic.rb b/lib/fog/aws/requests/sns/create_topic.rb
index b44b6fa..8273ab5 100644
--- a/lib/fog/aws/requests/sns/create_topic.rb
+++ b/lib/fog/aws/requests/sns/create_topic.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/create_topic'
 
         # Create a topic
@@ -21,9 +20,7 @@ module Fog
             :parser   => Fog::Parsers::AWS::SNS::CreateTopic.new
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/delete_topic.rb b/lib/fog/aws/requests/sns/delete_topic.rb
index 52a06fa..e5d10e9 100644
--- a/lib/fog/aws/requests/sns/delete_topic.rb
+++ b/lib/fog/aws/requests/sns/delete_topic.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/delete_topic'
 
         # Delete a topic
@@ -21,9 +20,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::DeleteTopic.new
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/get_topic_attributes.rb b/lib/fog/aws/requests/sns/get_topic_attributes.rb
index e9cd881..dab7531 100644
--- a/lib/fog/aws/requests/sns/get_topic_attributes.rb
+++ b/lib/fog/aws/requests/sns/get_topic_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/get_topic_attributes'
 
         # Get attributes of a topic
@@ -21,9 +20,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::GetTopicAttributes.new
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/list_subscriptions.rb b/lib/fog/aws/requests/sns/list_subscriptions.rb
index 223d731..377d230 100644
--- a/lib/fog/aws/requests/sns/list_subscriptions.rb
+++ b/lib/fog/aws/requests/sns/list_subscriptions.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/list_subscriptions'
 
         # List subscriptions
@@ -21,9 +20,7 @@ module Fog
             :parser  => Fog::Parsers::AWS::SNS::ListSubscriptions.new
           }.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb b/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb
index cc078d8..c6ff0a0 100644
--- a/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb
+++ b/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/list_subscriptions'
 
         # List subscriptions for a topic
@@ -23,9 +22,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::ListSubscriptions.new
           }.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/list_topics.rb b/lib/fog/aws/requests/sns/list_topics.rb
index fdd9fd0..8dc63d1 100644
--- a/lib/fog/aws/requests/sns/list_topics.rb
+++ b/lib/fog/aws/requests/sns/list_topics.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/list_topics'
 
         # List topics
@@ -21,9 +20,7 @@ module Fog
             :parser   => Fog::Parsers::AWS::SNS::ListTopics.new
           }.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/publish.rb b/lib/fog/aws/requests/sns/publish.rb
index f871766..d161fed 100644
--- a/lib/fog/aws/requests/sns/publish.rb
+++ b/lib/fog/aws/requests/sns/publish.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/publish'
 
         # Send a message to a topic
@@ -26,9 +25,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::Publish.new
           }.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/remove_permission.rb b/lib/fog/aws/requests/sns/remove_permission.rb
index b920314..743b00b 100644
--- a/lib/fog/aws/requests/sns/remove_permission.rb
+++ b/lib/fog/aws/requests/sns/remove_permission.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/remove_permission'
 
         def remove_permission(options = {})
@@ -11,15 +10,12 @@ module Fog
             :parser   => Fog::Parsers::AWS::SNS::RemovePermission.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def remove_permission(options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sns/set_topic_attributes.rb b/lib/fog/aws/requests/sns/set_topic_attributes.rb
index 8e30a89..e579047 100644
--- a/lib/fog/aws/requests/sns/set_topic_attributes.rb
+++ b/lib/fog/aws/requests/sns/set_topic_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/set_topic_attributes'
 
         # Set attributes of a topic
@@ -25,9 +24,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::SetTopicAttributes.new
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/subscribe.rb b/lib/fog/aws/requests/sns/subscribe.rb
index ede9de2..0c1a56c 100644
--- a/lib/fog/aws/requests/sns/subscribe.rb
+++ b/lib/fog/aws/requests/sns/subscribe.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/subscribe'
 
         # Create a subscription
@@ -25,9 +24,7 @@ module Fog
             :parser     => Fog::Parsers::AWS::SNS::Subscribe.new
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sns/unsubscribe.rb b/lib/fog/aws/requests/sns/unsubscribe.rb
index 0a990db..dbeb4f8 100644
--- a/lib/fog/aws/requests/sns/unsubscribe.rb
+++ b/lib/fog/aws/requests/sns/unsubscribe.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SNS
       class Real
-
         require 'fog/aws/parsers/sns/unsubscribe'
 
         # Delete a subscription
@@ -21,9 +20,7 @@ module Fog
             :parser           => Fog::Parsers::AWS::SNS::Unsubscribe.new
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sqs/change_message_visibility.rb b/lib/fog/aws/requests/sqs/change_message_visibility.rb
index b330d82..c748067 100644
--- a/lib/fog/aws/requests/sqs/change_message_visibility.rb
+++ b/lib/fog/aws/requests/sqs/change_message_visibility.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/basic'
 
         # Change visibility timeout for a message
@@ -25,16 +24,14 @@ module Fog
             :path               => path_from_queue_url(queue_url)
           })
         end
-
       end
 
       class Mock
-
         def change_message_visibility(queue_url, receipt_handle, visibility_timeout)
           Excon::Response.new.tap do |response|
             if (queue = data[:queues][queue_url])
               message_id, _ = queue[:receipt_handles].find { |message_id, receipts|
-                receipts.has_key?(receipt_handle)
+                receipts.key?(receipt_handle)
               }
 
               if message_id
@@ -55,9 +52,7 @@ module Fog
             end
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sqs/create_queue.rb b/lib/fog/aws/requests/sqs/create_queue.rb
index cbac2b8..76f34a9 100644
--- a/lib/fog/aws/requests/sqs/create_queue.rb
+++ b/lib/fog/aws/requests/sqs/create_queue.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/create_queue'
 
         # Create a queue
@@ -23,7 +22,6 @@ module Fog
             :parser     => Fog::Parsers::AWS::SQS::CreateQueue.new
           }.merge!(options))
         end
-
       end
 
       class Mock
@@ -57,7 +55,6 @@ module Fog
               'QueueUrl' => queue_url
             }
           end
-
         end
       end
     end
diff --git a/lib/fog/aws/requests/sqs/delete_message.rb b/lib/fog/aws/requests/sqs/delete_message.rb
index da5a4d9..e1a2b87 100644
--- a/lib/fog/aws/requests/sqs/delete_message.rb
+++ b/lib/fog/aws/requests/sqs/delete_message.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/basic'
 
         # Delete a message from a queue
@@ -23,16 +22,14 @@ module Fog
             :path           => path_from_queue_url(queue_url),
           })
         end
-
       end
 
       class Mock
-
         def delete_message(queue_url, receipt_handle)
           Excon::Response.new.tap do |response|
             if (queue = data[:queues][queue_url])
               message_id, _ = queue[:receipt_handles].find { |msg_id, receipts|
-                receipts.has_key?(receipt_handle)
+                receipts.key?(receipt_handle)
               }
 
               if message_id
@@ -53,7 +50,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sqs/delete_queue.rb b/lib/fog/aws/requests/sqs/delete_queue.rb
index 6d8c3d5..0640ad3 100644
--- a/lib/fog/aws/requests/sqs/delete_queue.rb
+++ b/lib/fog/aws/requests/sqs/delete_queue.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/basic'
 
         # Delete a queue
@@ -21,11 +20,9 @@ module Fog
             :path    => path_from_queue_url(queue_url),
           })
         end
-
       end
 
       class Mock
-
         def delete_queue(queue_url)
           Excon::Response.new.tap do |response|
             if (queue = data[:queues][queue_url])
@@ -44,9 +41,7 @@ module Fog
             end
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/sqs/get_queue_attributes.rb b/lib/fog/aws/requests/sqs/get_queue_attributes.rb
index 23a92b4..7e53799 100644
--- a/lib/fog/aws/requests/sqs/get_queue_attributes.rb
+++ b/lib/fog/aws/requests/sqs/get_queue_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/get_queue_attributes'
 
         # Get attributes of a queue
@@ -23,11 +22,9 @@ module Fog
             :parser         => Fog::Parsers::AWS::SQS::GetQueueAttributes.new
           })
         end
-
       end
 
       class Mock
-
         def get_queue_attributes(queue_url, attribute_name)
           Excon::Response.new.tap do |response|
             if (queue = data[:queues][queue_url])
@@ -45,7 +42,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sqs/list_queues.rb b/lib/fog/aws/requests/sqs/list_queues.rb
index 9a99195..416a574 100644
--- a/lib/fog/aws/requests/sqs/list_queues.rb
+++ b/lib/fog/aws/requests/sqs/list_queues.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/list_queues'
 
         # List queues
diff --git a/lib/fog/aws/requests/sqs/receive_message.rb b/lib/fog/aws/requests/sqs/receive_message.rb
index d829a67..ba10964 100644
--- a/lib/fog/aws/requests/sqs/receive_message.rb
+++ b/lib/fog/aws/requests/sqs/receive_message.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/receive_message'
 
         # Get a message from a queue (marks it as unavailable temporarily, but does not remove from queue, see delete_message)
@@ -26,11 +25,9 @@ module Fog
             :parser         => Fog::Parsers::AWS::SQS::ReceiveMessage.new
           }.merge!(options))
         end
-
       end
 
       class Mock
-
         def receive_message(queue_url, options = {})
           Excon::Response.new.tap do |response|
             if (queue = data[:queues][queue_url])
@@ -80,7 +77,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sqs/send_message.rb b/lib/fog/aws/requests/sqs/send_message.rb
index 335238b..728bdd6 100644
--- a/lib/fog/aws/requests/sqs/send_message.rb
+++ b/lib/fog/aws/requests/sqs/send_message.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/send_message'
 
         # Add a message to a queue
@@ -23,11 +22,9 @@ module Fog
             :parser       => Fog::Parsers::AWS::SQS::SendMessage.new
           })
         end
-
       end
 
       class Mock
-
         def send_message(queue_url, message)
           Excon::Response.new.tap do |response|
             if (queue = data[:queues][queue_url])
@@ -62,7 +59,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sqs/set_queue_attributes.rb b/lib/fog/aws/requests/sqs/set_queue_attributes.rb
index 20ef227..41e34dd 100644
--- a/lib/fog/aws/requests/sqs/set_queue_attributes.rb
+++ b/lib/fog/aws/requests/sqs/set_queue_attributes.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class SQS
       class Real
-
         require 'fog/aws/parsers/sqs/basic'
 
         # Get attributes of a queue
@@ -25,7 +24,6 @@ module Fog
             :parser           => Fog::Parsers::AWS::SQS::Basic.new
           })
         end
-
       end
 
       class Mock
diff --git a/lib/fog/aws/requests/storage/abort_multipart_upload.rb b/lib/fog/aws/requests/storage/abort_multipart_upload.rb
index 0b2d15e..4191e3f 100644
--- a/lib/fog/aws/requests/storage/abort_multipart_upload.rb
+++ b/lib/fog/aws/requests/storage/abort_multipart_upload.rb
@@ -21,7 +21,6 @@ module Fog
             :query      => {'uploadId' => upload_id}
           })
         end
-
       end # Real
 
       class Mock # :nodoc:all
diff --git a/lib/fog/aws/requests/storage/acl_utils.rb b/lib/fog/aws/requests/storage/acl_utils.rb
index b11689b..61902f9 100644
--- a/lib/fog/aws/requests/storage/acl_utils.rb
+++ b/lib/fog/aws/requests/storage/acl_utils.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class AWS
-
       require 'fog/aws/parsers/storage/access_control_list'
 
       private
@@ -22,11 +21,11 @@ module Fog
             data << "    <Grant>\n"
             grantee = grant['Grantee']
             type = case
-            when grantee.has_key?('ID')
+            when grantee.key?('ID')
               'CanonicalUser'
-            when grantee.has_key?('EmailAddress')
+            when grantee.key?('EmailAddress')
               'AmazonCustomerByEmail'
-            when grantee.has_key?('URI')
+            when grantee.key?('URI')
               'Group'
             end
 
@@ -56,7 +55,6 @@ module Fog
           Nokogiri::XML::SAX::Parser.new(parser).parse(acl_xml)
           parser.response
         end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/complete_multipart_upload.rb b/lib/fog/aws/requests/storage/complete_multipart_upload.rb
index 1713a74..c5580cc 100644
--- a/lib/fog/aws/requests/storage/complete_multipart_upload.rb
+++ b/lib/fog/aws/requests/storage/complete_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/complete_multipart_upload'
 
         # Complete a multipart upload
@@ -45,7 +44,6 @@ module Fog
             :query      => {'uploadId' => upload_id}
           })
         end
-
       end # Real
 
       class Mock # :nodoc:all
diff --git a/lib/fog/aws/requests/storage/copy_object.rb b/lib/fog/aws/requests/storage/copy_object.rb
index c6faa93..a4310f1 100644
--- a/lib/fog/aws/requests/storage/copy_object.rb
+++ b/lib/fog/aws/requests/storage/copy_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/copy_object'
 
         # Copy an object from one S3 bucket to another
@@ -39,11 +38,9 @@ module Fog
             :parser   => Fog::Parsers::Storage::AWS::CopyObject.new,
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
           response = Excon::Response.new
           source_bucket = self.data[:buckets][source_bucket_name]
@@ -74,7 +71,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/cors_utils.rb b/lib/fog/aws/requests/storage/cors_utils.rb
index 44ecc24..0e4b3e5 100644
--- a/lib/fog/aws/requests/storage/cors_utils.rb
+++ b/lib/fog/aws/requests/storage/cors_utils.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class AWS
-
       require 'fog/aws/parsers/storage/cors_configuration'
 
       private
@@ -35,7 +34,6 @@ module Fog
           Nokogiri::XML::SAX::Parser.new(parser).parse(cors_xml)
           parser.response
         end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/delete_bucket.rb b/lib/fog/aws/requests/storage/delete_bucket.rb
index f4ebf14..2d53310 100644
--- a/lib/fog/aws/requests/storage/delete_bucket.rb
+++ b/lib/fog/aws/requests/storage/delete_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Delete an S3 bucket
         #
         # @param bucket_name [String] name of bucket to delete
@@ -20,11 +19,9 @@ module Fog
             :method   => 'DELETE'
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_bucket(bucket_name)
           response = Excon::Response.new
           if self.data[:buckets][bucket_name].nil?
@@ -39,9 +36,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/delete_bucket_cors.rb b/lib/fog/aws/requests/storage/delete_bucket_cors.rb
index 6c775f2..27900a6 100644
--- a/lib/fog/aws/requests/storage/delete_bucket_cors.rb
+++ b/lib/fog/aws/requests/storage/delete_bucket_cors.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Deletes the cors configuration information set for the bucket.
         #
         # @param bucket_name [String] name of bucket to delete cors rules from
@@ -21,9 +20,7 @@ module Fog
             :query    => {'cors' => nil}
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb b/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb
index 411ceab..3574fbb 100644
--- a/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb
+++ b/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Delete lifecycle configuration for a bucket
         #
         # @param bucket_name [String] name of bucket to delete lifecycle configuration from
diff --git a/lib/fog/aws/requests/storage/delete_bucket_policy.rb b/lib/fog/aws/requests/storage/delete_bucket_policy.rb
index f9bfca9..22cba09 100644
--- a/lib/fog/aws/requests/storage/delete_bucket_policy.rb
+++ b/lib/fog/aws/requests/storage/delete_bucket_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Delete policy for a bucket
         #
         # @param bucket_name [String] name of bucket to delete policy from
@@ -21,9 +20,7 @@ module Fog
             :query    => {'policy' => nil}
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/delete_bucket_tagging.rb b/lib/fog/aws/requests/storage/delete_bucket_tagging.rb
index b99227d..8c3af34 100644
--- a/lib/fog/aws/requests/storage/delete_bucket_tagging.rb
+++ b/lib/fog/aws/requests/storage/delete_bucket_tagging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Delete tagging for a bucket
         #
         # @param bucket_name [String] name of bucket to delete tagging from
@@ -21,11 +20,9 @@ module Fog
             :query    => {'tagging' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_bucket_tagging(bucket_name)
           response = Excon::Response.new
           if self.data[:buckets][bucket_name]
@@ -38,9 +35,7 @@ module Fog
 
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/delete_bucket_website.rb b/lib/fog/aws/requests/storage/delete_bucket_website.rb
index 8dcdb44..d6e80d8 100644
--- a/lib/fog/aws/requests/storage/delete_bucket_website.rb
+++ b/lib/fog/aws/requests/storage/delete_bucket_website.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Delete website configuration for a bucket
         #
         # @param bucket_name [String] name of bucket to delete website configuration from
@@ -21,9 +20,7 @@ module Fog
             :query    => {'website' => nil}
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/delete_multiple_objects.rb b/lib/fog/aws/requests/storage/delete_multiple_objects.rb
index 40da111..229cc7c 100644
--- a/lib/fog/aws/requests/storage/delete_multiple_objects.rb
+++ b/lib/fog/aws/requests/storage/delete_multiple_objects.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/delete_multiple_objects'
 
         # Delete multiple objects from S3
@@ -61,11 +60,9 @@ module Fog
             :query      => {'delete' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_multiple_objects(bucket_name, object_names, options = {})
           headers = options.dup
           headers.delete(:quiet)
@@ -161,9 +158,7 @@ module Fog
             }
           }
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/storage/delete_object.rb b/lib/fog/aws/requests/storage/delete_object.rb
index 4eed5d9..2f0dd31 100644
--- a/lib/fog/aws/requests/storage/delete_object.rb
+++ b/lib/fog/aws/requests/storage/delete_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Delete an object from S3
         #
         # @param bucket_name [String] Name of bucket containing object to delete
@@ -30,11 +29,9 @@ module Fog
             :path       => path
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_object(bucket_name, object_name, options = {})
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -111,7 +108,6 @@ module Fog
             }
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_bucket.rb b/lib/fog/aws/requests/storage/get_bucket.rb
index 4e24157..266e428 100644
--- a/lib/fog/aws/requests/storage/get_bucket.rb
+++ b/lib/fog/aws/requests/storage/get_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket'
 
         # List information about objects in an S3 bucket
@@ -51,11 +50,9 @@ module Fog
             :query    => options
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_bucket(bucket_name, options = {})
           prefix, marker, delimiter, max_keys = \
             options['prefix'], options['marker'], options['delimiter'], options['max-keys']
@@ -66,12 +63,12 @@ module Fog
           end
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
-            contents = bucket[:objects].values.collect(&:first).sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
+            contents = bucket[:objects].values.map(&:first).sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
                 (prefix    && object['Key'][0...prefix.length] != prefix) ||
                 (marker    && object['Key'] <= marker) ||
                 (delimiter && object['Key'][(prefix ? prefix.length : 0)..-1].include?(delimiter) \
                            && common_prefixes << object['Key'].sub(/^(#{prefix}[^#{delimiter}]+.).*/, '\1')) ||
-                object.has_key?(:delete_marker)
+                object.key?(:delete_marker)
               end.map do |object|
                 data = object.reject {|key, value| !['ETag', 'Key', 'StorageClass'].include?(key)}
                 data.merge!({
@@ -105,7 +102,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_bucket_acl.rb b/lib/fog/aws/requests/storage/get_bucket_acl.rb
index af506e2..5b5560d 100644
--- a/lib/fog/aws/requests/storage/get_bucket_acl.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/access_control_list'
 
         # Get access control list for an S3 bucket
@@ -40,11 +39,9 @@ module Fog
             :query      => {'acl' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/aws/requests/storage/acl_utils'
 
         def get_bucket_acl(bucket_name)
@@ -62,7 +59,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_bucket_cors.rb b/lib/fog/aws/requests/storage/get_bucket_cors.rb
index b9c1aa4..21e42f1 100644
--- a/lib/fog/aws/requests/storage/get_bucket_cors.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_cors.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/cors_configuration'
 
         # Gets the CORS configuration for an S3 bucket
@@ -36,11 +35,9 @@ module Fog
             :query      => {'cors' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/aws/requests/storage/cors_utils'
 
         def get_bucket_cors(bucket_name)
@@ -58,7 +55,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb b/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb
index 4fb957b..21983ec 100644
--- a/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_lifecycle'
 
         # Get bucket lifecycle configuration
@@ -30,9 +29,7 @@ module Fog
                     :query    => {'lifecycle' => nil}
                   })
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/storage/get_bucket_location.rb b/lib/fog/aws/requests/storage/get_bucket_location.rb
index 7dc3824..2c8378a 100644
--- a/lib/fog/aws/requests/storage/get_bucket_location.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_location.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_location'
 
         # Get location constraint for an S3 bucket
@@ -26,11 +25,9 @@ module Fog
             :query    => {'location' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_bucket_location(bucket_name)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -51,7 +48,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_bucket_logging.rb b/lib/fog/aws/requests/storage/get_bucket_logging.rb
index e62e83f..87c8d5e 100644
--- a/lib/fog/aws/requests/storage/get_bucket_logging.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_logging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_logging'
 
         # Get logging status for an S3 bucket
@@ -40,7 +39,6 @@ module Fog
             :query      => {'logging' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_bucket_object_versions.rb b/lib/fog/aws/requests/storage/get_bucket_object_versions.rb
index 424ebdb..11ba690 100644
--- a/lib/fog/aws/requests/storage/get_bucket_object_versions.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_object_versions.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_object_versions'
 
         # List information about object versions in an S3 bucket
@@ -61,7 +60,6 @@ module Fog
             :parser   => Fog::Parsers::Storage::AWS::GetBucketObjectVersions.new,
             :query    => {'versions' => nil}.merge!(options)          })
         end
-
       end
 
       class Mock
@@ -94,13 +92,13 @@ module Fog
             # We need to order results by S3 key, but since our data store is key => [versions], we want to ensure the integrity
             # of the versions as well.  So, sort the keys, then fetch the versions, and then combine them all as a sorted list by
             # flattening the results.
-            contents = bucket[:objects].keys.sort.collect { |key| bucket[:objects][key] }.flatten.reject do |object|
+            contents = bucket[:objects].keys.sort.map { |key| bucket[:objects][key] }.flatten.reject do |object|
                 (prefix      && object['Key'][0...prefix.length] != prefix) ||
                 (key_marker  && object['Key'] <= key_marker) ||
                 (delimiter   && object['Key'][(prefix ? prefix.length : 0)..-1].include?(delimiter) \
                              && common_prefixes << object['Key'].sub(/^(#{prefix}[^#{delimiter}]+.).*/, '\1'))
               end.map do |object|
-                if object.has_key?(:delete_marker)
+                if object.key?(:delete_marker)
                   tag_name = 'DeleteMarker'
                   extracted_attrs = ['Key', 'VersionId']
                 else
diff --git a/lib/fog/aws/requests/storage/get_bucket_policy.rb b/lib/fog/aws/requests/storage/get_bucket_policy.rb
index fcda482..8a1c793 100644
--- a/lib/fog/aws/requests/storage/get_bucket_policy.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Get bucket policy for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to get policy for
@@ -26,9 +25,7 @@ module Fog
           })
           response.body = Fog::JSON.decode(response.body) unless response.body.nil?
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/get_bucket_tagging.rb b/lib/fog/aws/requests/storage/get_bucket_tagging.rb
index f840785..a5f9794 100644
--- a/lib/fog/aws/requests/storage/get_bucket_tagging.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_tagging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_tagging'
 
         # Get tags for an S3 bucket
@@ -30,11 +29,9 @@ module Fog
             :query      => {'tagging' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_bucket_tagging(bucket_name)
           response = Excon::Response.new
           if self.data[:buckets][bucket_name] && self.data[:bucket_tagging][bucket_name]
@@ -47,7 +44,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/get_bucket_versioning.rb b/lib/fog/aws/requests/storage/get_bucket_versioning.rb
index db295dd..b3e91dc 100644
--- a/lib/fog/aws/requests/storage/get_bucket_versioning.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_versioning.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_versioning'
 
         # Get versioning status for an S3 bucket
diff --git a/lib/fog/aws/requests/storage/get_bucket_website.rb b/lib/fog/aws/requests/storage/get_bucket_website.rb
index cda7d90..a64ff65 100644
--- a/lib/fog/aws/requests/storage/get_bucket_website.rb
+++ b/lib/fog/aws/requests/storage/get_bucket_website.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_bucket_website'
 
         # Get website configuration for an S3 bucket
@@ -33,7 +32,6 @@ module Fog
             :query      => {'website' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_object.rb b/lib/fog/aws/requests/storage/get_object.rb
index 66026ce..4aee509 100644
--- a/lib/fog/aws/requests/storage/get_object.rb
+++ b/lib/fog/aws/requests/storage/get_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Get an object from S3
         #
         # @param bucket_name [String] Name of bucket to read from
@@ -61,11 +60,9 @@ module Fog
             :method   => 'GET',
           }))
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_object(bucket_name, object_name, options = {}, &block)
           version_id = options.delete('versionId')
 
@@ -80,7 +77,7 @@ module Fog
           response = Excon::Response.new
           if (bucket = self.data[:buckets][bucket_name])
             object = nil
-            if bucket[:objects].has_key?(object_name)
+            if bucket[:objects].key?(object_name)
               object = version_id ? bucket[:objects][object_name].find { |object| object['VersionId'] == version_id} : bucket[:objects][object_name].first
             end
 
diff --git a/lib/fog/aws/requests/storage/get_object_acl.rb b/lib/fog/aws/requests/storage/get_object_acl.rb
index e2dfe14..f074e6c 100644
--- a/lib/fog/aws/requests/storage/get_object_acl.rb
+++ b/lib/fog/aws/requests/storage/get_object_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/access_control_list'
 
         # Get access control list for an S3 object
@@ -51,11 +50,9 @@ module Fog
             :query      => query
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/aws/requests/storage/acl_utils'
 
         def get_object_acl(bucket_name, object_name, options = {})
@@ -73,7 +70,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_object_http_url.rb b/lib/fog/aws/requests/storage/get_object_http_url.rb
index b844835..1b5480a 100644
--- a/lib/fog/aws/requests/storage/get_object_http_url.rb
+++ b/lib/fog/aws/requests/storage/get_object_http_url.rb
@@ -1,17 +1,13 @@
 module Fog
   module Storage
     class AWS
-
       module GetObjectHttpUrl
-
         def get_object_http_url(bucket_name, object_name, expires, options = {})
           get_object_url(bucket_name, object_name, expires, options.merge(:scheme => 'http'))
         end
-
       end
 
       class Real
-
         # Get an expiring object http url from S3
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -24,13 +20,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectHttpUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectHttpUrl
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_object_https_url.rb b/lib/fog/aws/requests/storage/get_object_https_url.rb
index f8588cd..5b8411e 100644
--- a/lib/fog/aws/requests/storage/get_object_https_url.rb
+++ b/lib/fog/aws/requests/storage/get_object_https_url.rb
@@ -1,17 +1,13 @@
 module Fog
   module Storage
     class AWS
-
       module GetObjectHttpsUrl
-
         def get_object_https_url(bucket_name, object_name, expires, options = {})
           get_object_url(bucket_name, object_name, expires, options.merge(:scheme => 'https'))
         end
-
       end
 
       class Real
-
         # Get an expiring object https url from S3
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -24,13 +20,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectHttpsUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectHttpsUrl
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_object_torrent.rb b/lib/fog/aws/requests/storage/get_object_torrent.rb
index 1036cee..2ebab2d 100644
--- a/lib/fog/aws/requests/storage/get_object_torrent.rb
+++ b/lib/fog/aws/requests/storage/get_object_torrent.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Get torrent for an S3 object
         #
         # @param bucket_name [String] name of bucket containing object
@@ -40,7 +39,6 @@ module Fog
             :query      => {'torrent' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_object_url.rb b/lib/fog/aws/requests/storage/get_object_url.rb
index 591a2be..fc304e1 100644
--- a/lib/fog/aws/requests/storage/get_object_url.rb
+++ b/lib/fog/aws/requests/storage/get_object_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class AWS
-
       module GetObjectUrl
-
         def get_object_url(bucket_name, object_name, expires, options = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -20,7 +18,6 @@ module Fog
       end
 
       class Real
-
         # Get an expiring object url from S3
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -33,13 +30,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectUrl
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_request_payment.rb b/lib/fog/aws/requests/storage/get_request_payment.rb
index 55bdb7c..c12baef 100644
--- a/lib/fog/aws/requests/storage/get_request_payment.rb
+++ b/lib/fog/aws/requests/storage/get_request_payment.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_request_payment'
 
         # Get configured payer for an S3 bucket
@@ -26,11 +25,9 @@ module Fog
             :query    => {'requestPayment' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_request_payment(bucket_name)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -42,7 +39,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/get_service.rb b/lib/fog/aws/requests/storage/get_service.rb
index a13b3df..497f54d 100644
--- a/lib/fog/aws/requests/storage/get_service.rb
+++ b/lib/fog/aws/requests/storage/get_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/get_service'
 
         # List information about S3 buckets for authorized user
@@ -28,11 +27,9 @@ module Fog
             :parser   => Fog::Parsers::Storage::AWS::GetService.new
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_service
           response = Excon::Response.new
           response.headers['Status'] = 200
@@ -47,7 +44,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/head_bucket.rb b/lib/fog/aws/requests/storage/head_bucket.rb
new file mode 100644
index 0000000..7ef4fb6
--- /dev/null
+++ b/lib/fog/aws/requests/storage/head_bucket.rb
@@ -0,0 +1,38 @@
+module Fog
+  module Storage
+    class AWS
+      class Real
+        # Get headers for an S3 bucket, used to verify if it exists and if you have permission to access it
+        #
+        # @param bucket_name [String] Name of bucket to read from
+        #
+        # @return [Excon::Response] 200 response implies it exists, 404 does not exist, 403 no permissions
+        #   * body [String] Empty
+        #   * headers [Hash]:
+        #     * Content-Type [String] - MIME type of object
+        #
+        # @see http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketHEAD.html
+        #
+        def head_bucket(bucket_name)
+          unless bucket_name
+            raise ArgumentError.new('bucket_name is required')
+          end
+          request({
+            :expects    => 200,
+            :bucket_name => bucket_name,
+            :idempotent => true,
+            :method     => 'HEAD',
+          })
+        end
+      end
+
+      class Mock # :nodoc:all
+        def head_bucket(bucket_name)
+          response = get_bucket(bucket_name)
+          response.body = nil
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/aws/requests/storage/head_object.rb b/lib/fog/aws/requests/storage/head_object.rb
index 6d99ff9..9d2d1e3 100644
--- a/lib/fog/aws/requests/storage/head_object.rb
+++ b/lib/fog/aws/requests/storage/head_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Get headers for an object from S3
         #
         # @param bucket_name [String] Name of bucket to read from
@@ -49,17 +48,14 @@ module Fog
             :query      => query
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_object(bucket_name, object_name, options = {})
           response = get_object(bucket_name, object_name, options)
           response.body = nil
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/initiate_multipart_upload.rb b/lib/fog/aws/requests/storage/initiate_multipart_upload.rb
index da0b969..95e8912 100644
--- a/lib/fog/aws/requests/storage/initiate_multipart_upload.rb
+++ b/lib/fog/aws/requests/storage/initiate_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/initiate_multipart_upload'
 
         # Initiate a multipart upload to an S3 bucket
@@ -37,7 +36,6 @@ module Fog
             :query      => {'uploads' => nil}
           })
         end
-
       end # Real
 
       class Mock # :nodoc:all
diff --git a/lib/fog/aws/requests/storage/list_multipart_uploads.rb b/lib/fog/aws/requests/storage/list_multipart_uploads.rb
index bd078dc..eb45c0e 100644
--- a/lib/fog/aws/requests/storage/list_multipart_uploads.rb
+++ b/lib/fog/aws/requests/storage/list_multipart_uploads.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/list_multipart_uploads'
 
         # List multipart uploads for a bucket
@@ -47,7 +46,6 @@ module Fog
             :query    => options.merge!({'uploads' => nil})
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/list_parts.rb b/lib/fog/aws/requests/storage/list_parts.rb
index 4a388d3..4344870 100644
--- a/lib/fog/aws/requests/storage/list_parts.rb
+++ b/lib/fog/aws/requests/storage/list_parts.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/parsers/storage/list_parts'
 
         # List parts for a multipart upload
@@ -48,7 +47,6 @@ module Fog
             :query    => options.merge!({'uploadId' => upload_id})
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/post_object_hidden_fields.rb b/lib/fog/aws/requests/storage/post_object_hidden_fields.rb
index 0f6ae81..f5771c9 100644
--- a/lib/fog/aws/requests/storage/post_object_hidden_fields.rb
+++ b/lib/fog/aws/requests/storage/post_object_hidden_fields.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Get a hash of hidden fields for form uploading to S3, in the form {:field_name => :field_value}
         # Form should look like: <form action="http://#{bucket_name}.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
         # These hidden fields should then appear, followed by a field named 'file' which is either a textarea or file input.
@@ -31,7 +30,6 @@ module Fog
           end
           options
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/post_object_restore.rb b/lib/fog/aws/requests/storage/post_object_restore.rb
index 468c3f2..6e738c8 100644
--- a/lib/fog/aws/requests/storage/post_object_restore.rb
+++ b/lib/fog/aws/requests/storage/post_object_restore.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Restore an object from Glacier to its original S3 path
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -37,17 +36,14 @@ module Fog
             :path     => CGI.escape(object_name)
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def post_object_restore(bucket_name, object_name, days = 100000)
           response = get_object(bucket_name, object_name)
           response.body = nil
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/put_bucket.rb b/lib/fog/aws/requests/storage/put_bucket.rb
index 25fcd29..c07a4bb 100644
--- a/lib/fog/aws/requests/storage/put_bucket.rb
+++ b/lib/fog/aws/requests/storage/put_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Create an S3 bucket
         #
         # @param bucket_name [String] name of bucket to create
@@ -35,11 +34,9 @@ DATA
             :method     => 'PUT'
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_bucket(bucket_name, options = {})
           acl = options['x-amz-acl'] || 'private'
           if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
@@ -70,7 +67,6 @@ DATA
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/put_bucket_acl.rb b/lib/fog/aws/requests/storage/put_bucket_acl.rb
index 69caa5d..d8abcbf 100644
--- a/lib/fog/aws/requests/storage/put_bucket_acl.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/requests/storage/acl_utils'
 
         # Change access control list for an S3 bucket
@@ -65,7 +64,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/put_bucket_cors.rb b/lib/fog/aws/requests/storage/put_bucket_cors.rb
index 707f4bd..0b645fc 100644
--- a/lib/fog/aws/requests/storage/put_bucket_cors.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_cors.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/requests/storage/cors_utils'
 
         # Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.
@@ -43,7 +42,6 @@ module Fog
           self.data[:cors][:bucket][bucket_name] = Fog::Storage::AWS.hash_to_cors(cors)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb b/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb
index 769c057..fbc1184 100644
--- a/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change lifecycle configuration for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to set lifecycle configuration for
diff --git a/lib/fog/aws/requests/storage/put_bucket_logging.rb b/lib/fog/aws/requests/storage/put_bucket_logging.rb
index 8fa9b5b..74a3650 100644
--- a/lib/fog/aws/requests/storage/put_bucket_logging.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_logging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change logging status for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -74,7 +73,6 @@ DATA
             :query    => {'logging' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/put_bucket_policy.rb b/lib/fog/aws/requests/storage/put_bucket_policy.rb
index 4ab3272..75aad7f 100644
--- a/lib/fog/aws/requests/storage/put_bucket_policy.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change bucket policy for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -20,9 +19,7 @@ module Fog
             :query    => {'policy' => nil}
           })
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/aws/requests/storage/put_bucket_tagging.rb b/lib/fog/aws/requests/storage/put_bucket_tagging.rb
index 1e63c32..cce053c 100644
--- a/lib/fog/aws/requests/storage/put_bucket_tagging.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_tagging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change tag set for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -34,11 +33,9 @@ DATA
             :query    => {'tagging' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_bucket_tagging(bucket_name, tags)
           response = Excon::Response.new
 
@@ -52,9 +49,7 @@ DATA
 
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/put_bucket_versioning.rb b/lib/fog/aws/requests/storage/put_bucket_versioning.rb
index 9a8c72c..deb1f11 100644
--- a/lib/fog/aws/requests/storage/put_bucket_versioning.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_versioning.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change versioning status for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
diff --git a/lib/fog/aws/requests/storage/put_bucket_website.rb b/lib/fog/aws/requests/storage/put_bucket_website.rb
index 1c79bf8..da15e02 100644
--- a/lib/fog/aws/requests/storage/put_bucket_website.rb
+++ b/lib/fog/aws/requests/storage/put_bucket_website.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change website configuration for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -40,11 +39,9 @@ DATA
             :query    => {'website' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_bucket_website(bucket_name, suffix, options = {})
           response = Excon::Response.new
           if self.data[:buckets][bucket_name]
@@ -56,9 +53,7 @@ DATA
 
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/put_object.rb b/lib/fog/aws/requests/storage/put_object.rb
index bfc5ebd..c60f2c4 100644
--- a/lib/fog/aws/requests/storage/put_object.rb
+++ b/lib/fog/aws/requests/storage/put_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Create an object in an S3 bucket
         #
         # @param bucket_name [String] Name of bucket to create object in
@@ -39,11 +38,9 @@ module Fog
             :method     => 'PUT',
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/aws/requests/storage/shared_mock_methods'
         include Fog::Storage::AWS::SharedMockMethods
 
@@ -70,7 +67,6 @@ module Fog
           response.headers['x-amz-version-id'] = object['VersionId'] if object['VersionId'] != 'null'
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/put_object_acl.rb b/lib/fog/aws/requests/storage/put_object_acl.rb
index 9ddbcb3..e2b6663 100644
--- a/lib/fog/aws/requests/storage/put_object_acl.rb
+++ b/lib/fog/aws/requests/storage/put_object_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         require 'fog/aws/requests/storage/acl_utils'
 
         # Change access control list for an S3 object
@@ -74,7 +73,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/aws/requests/storage/put_object_url.rb b/lib/fog/aws/requests/storage/put_object_url.rb
index 70cd1da..b0ea262 100644
--- a/lib/fog/aws/requests/storage/put_object_url.rb
+++ b/lib/fog/aws/requests/storage/put_object_url.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       module PutObjectUrl
-
         def put_object_url(bucket_name, object_name, expires, headers = {}, options = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -20,7 +19,6 @@ module Fog
       end
 
       class Real
-
         # Get an expiring object url from S3 for putting an object
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -33,13 +31,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include PutObjectUrl
-
       end
 
       class Mock # :nodoc:all
-
         include PutObjectUrl
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/put_request_payment.rb b/lib/fog/aws/requests/storage/put_request_payment.rb
index 21e2534..5126808 100644
--- a/lib/fog/aws/requests/storage/put_request_payment.rb
+++ b/lib/fog/aws/requests/storage/put_request_payment.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Change who pays for requests to an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -26,11 +25,9 @@ DATA
             :query    => {'requestPayment' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_request_payment(bucket_name, payer)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -42,7 +39,6 @@ DATA
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/storage/sync_clock.rb b/lib/fog/aws/requests/storage/sync_clock.rb
index 7dbc576..6690412 100644
--- a/lib/fog/aws/requests/storage/sync_clock.rb
+++ b/lib/fog/aws/requests/storage/sync_clock.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Sync clock against S3 to avoid skew errors
         #
         def sync_clock
@@ -13,15 +12,12 @@ module Fog
           end
           Fog::Time.now = Time.parse(response.headers['Date'])
         end
-
       end # Real
 
       class Mock # :nodoc:all
-
         def sync_clock
           true
         end
-
       end # Mock
     end # Storage
   end # AWS
diff --git a/lib/fog/aws/requests/storage/upload_part.rb b/lib/fog/aws/requests/storage/upload_part.rb
index d74b3b9..ed9f330 100644
--- a/lib/fog/aws/requests/storage/upload_part.rb
+++ b/lib/fog/aws/requests/storage/upload_part.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class AWS
       class Real
-
         # Upload a part for a multipart upload
         #
         # @param bucket_name [String] Name of bucket to add part to
@@ -34,7 +33,6 @@ module Fog
             :query      => {'uploadId' => upload_id, 'partNumber' => part_number}
           })
         end
-
       end # Real
 
       class Mock # :nodoc:all
diff --git a/lib/fog/aws/requests/sts/assume_role.rb b/lib/fog/aws/requests/sts/assume_role.rb
index ff9f591..8735751 100644
--- a/lib/fog/aws/requests/sts/assume_role.rb
+++ b/lib/fog/aws/requests/sts/assume_role.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class STS
       class Real
-
         require 'fog/aws/parsers/sts/assume_role'
 
         # Assume Role
@@ -39,7 +38,6 @@ module Fog
             :parser           => Fog::Parsers::AWS::STS::AssumeRole.new
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/requests/sts/get_federation_token.rb b/lib/fog/aws/requests/sts/get_federation_token.rb
index 2a8ce0e..192e7ce 100644
--- a/lib/fog/aws/requests/sts/get_federation_token.rb
+++ b/lib/fog/aws/requests/sts/get_federation_token.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class STS
       class Real
-
         require 'fog/aws/parsers/sts/get_session_token'
 
         # Get federation token
diff --git a/lib/fog/aws/requests/sts/get_session_token.rb b/lib/fog/aws/requests/sts/get_session_token.rb
index f76531b..18d02f4 100644
--- a/lib/fog/aws/requests/sts/get_session_token.rb
+++ b/lib/fog/aws/requests/sts/get_session_token.rb
@@ -2,7 +2,6 @@ module Fog
   module AWS
     class STS
       class Real
-
         require 'fog/aws/parsers/sts/get_session_token'
 
         def get_session_token(duration=43200)
diff --git a/lib/fog/aws/ses.rb b/lib/fog/aws/ses.rb
index 2653775..7dc51a1 100644
--- a/lib/fog/aws/ses.rb
+++ b/lib/fog/aws/ses.rb
@@ -9,7 +9,7 @@ module Fog
       class MessageRejected < Fog::Errors::Error; end
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/ses'
       request :delete_verified_email_address
@@ -22,11 +22,9 @@ module Fog
       request :send_raw_email
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -55,6 +53,8 @@ module Fog
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
 
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.ses'
           @connection_options     = options[:connection_options] || {}
           options[:region] ||= 'us-east-1'
           @host = options[:host] || "email.#{options[:region]}.amazonaws.com"
@@ -86,7 +86,6 @@ module Fog
           idempotent  = params.delete(:idempotent)
           parser      = params.delete(:parser)
 
-
           headers = {
             'Content-Type'  => 'application/x-www-form-urlencoded',
             'Date'          => Fog::Time.now.to_date_header,
@@ -106,32 +105,37 @@ module Fog
           end
           body.chop! # remove trailing '&'
 
-          begin
-            response = @connection.request({
-              :body       => body,
-              :expects    => 200,
-              :headers    => headers,
-              :idempotent => idempotent,
-              :host       => @host,
-              :method     => 'POST',
-              :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError => error
-            match = Fog::AWS::Errors.match_error(error)
-            raise if match.empty?
-            raise case match[:code]
-                  when 'MessageRejected'
-                    Fog::AWS::SES::MessageRejected.slurp(error, match[:message])
-                  when 'InvalidParameterValue'
-                    Fog::AWS::SES::InvalidParameterError.slurp(error, match[:message])
-                  else
-                    Fog::AWS::SES::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
-                  end
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, headers, idempotent, parser)
+            end
+          else
+            _request(body, headers, idempotent, parser)
           end
-
-          response
         end
 
+        def _requrest(body, headers, idempotent, parser)
+          @connection.request({
+            :body       => body,
+            :expects    => 200,
+            :headers    => headers,
+            :idempotent => idempotent,
+            :host       => @host,
+            :method     => 'POST',
+            :parser     => parser
+          })
+        rescue Excon::Errors::HTTPStatusError => error
+          match = Fog::AWS::Errors.match_error(error)
+          raise if match.empty?
+          raise case match[:code]
+                when 'MessageRejected'
+                  Fog::AWS::SES::MessageRejected.slurp(error, match[:message])
+                when 'InvalidParameterValue'
+                  Fog::AWS::SES::InvalidParameterError.slurp(error, match[:message])
+                else
+                  Fog::AWS::SES::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
+                end
+        end
       end
     end
   end
diff --git a/lib/fog/aws/signaturev4.rb b/lib/fog/aws/signaturev4.rb
index 0dfdea4..a132003 100644
--- a/lib/fog/aws/signaturev4.rb
+++ b/lib/fog/aws/signaturev4.rb
@@ -57,7 +57,7 @@ DATA
       end
 
       def signed_headers(headers)
-        headers.keys.collect {|key| key.to_s}.sort.collect {|key| key.downcase}.join(';')
+        headers.keys.map {|key| key.to_s}.sort.map {|key| key.downcase}.join(';')
       end
 
       def derived_hmac(date)
@@ -67,8 +67,6 @@ DATA
         kSigning = Fog::HMAC.new('sha256', kService).sign('aws4_request')
         Fog::HMAC.new('sha256', kSigning)
       end
-
-
     end
   end
 end
diff --git a/lib/fog/aws/simpledb.rb b/lib/fog/aws/simpledb.rb
index 12d0755..9054ae9 100644
--- a/lib/fog/aws/simpledb.rb
+++ b/lib/fog/aws/simpledb.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :host, :nil_string, :path, :port, :scheme, :persistent, :region, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at
+      recognizes :host, :nil_string, :path, :port, :scheme, :persistent, :region, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/simpledb'
       request :batch_put_attributes
@@ -20,7 +20,6 @@ module Fog
       request :select
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -77,6 +76,8 @@ module Fog
           setup_credentials(options)
           @connection_options     = options[:connection_options] || {}
           @nil_string = options[:nil_string]|| 'nil'
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.simpledb'
 
           options[:region] ||= 'us-east-1'
           @host = options[:host] || case options[:region]
@@ -178,7 +179,17 @@ module Fog
             }
           )
 
-          response = @connection.request({
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
+          end
+        end
+
+        def _request(body, idempotent, parser)
+          @connection.request({
             :body       => body,
             :expects    => 200,
             :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' },
@@ -186,8 +197,6 @@ module Fog
             :method     => 'POST',
             :parser     => parser
           })
-
-          response
         end
 
         def sdb_encode(value)
@@ -197,7 +206,6 @@ module Fog
             value.to_s
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/sns.rb b/lib/fog/aws/sns.rb
index 1a1a69d..76cf6df 100644
--- a/lib/fog/aws/sns.rb
+++ b/lib/fog/aws/sns.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
+      recognizes :host, :path, :port, :scheme, :persistent, :region, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/sns'
       request :add_permission
@@ -24,10 +24,8 @@ module Fog
       request :unsubscribe
 
       class Mock
-
         def initialize(options={})
         end
-
       end
 
       class Real
@@ -53,6 +51,8 @@ module Fog
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
           @connection_options     = options[:connection_options] || {}
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.sns'
 
           options[:region] ||= 'us-east-1'
           @host = options[:host] || "sns.#{options[:region]}.amazonaws.com"
@@ -97,7 +97,17 @@ module Fog
             }
           )
 
-          response = @connection.request({
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
+          end
+        end
+
+        def _request(body, idempotent, parser)
+          @connection.request({
             :body       => body,
             :expects    => 200,
             :idempotent => idempotent,
@@ -105,10 +115,7 @@ module Fog
             :method     => 'POST',
             :parser     => parser
           })
-
-          response
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/sqs.rb b/lib/fog/aws/sqs.rb
index be74ef0..8809500 100644
--- a/lib/fog/aws/sqs.rb
+++ b/lib/fog/aws/sqs.rb
@@ -6,7 +6,7 @@ module Fog
       extend Fog::AWS::CredentialFetcher::ServiceMethods
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :region, :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at
+      recognizes :region, :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/sqs'
       request :change_message_visibility
@@ -81,6 +81,8 @@ module Fog
         def initialize(options={})
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
+          @instrumentor           = options[:instrumentor]
+          @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.sqs'
           @connection_options     = options[:connection_options] || {}
           options[:region] ||= 'us-east-1'
           @host = options[:host] || "sqs.#{options[:region]}.amazonaws.com"
@@ -130,21 +132,28 @@ module Fog
             }
           )
 
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser, path)
+            end
+          else
+            _request(body, idempotent, parser, path)
+          end
+        end
+
+        def _request(body, idempotent, parser, path)
           args = {
             :body       => body,
             :expects    => 200,
             :idempotent => idempotent,
             :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
             :method     => 'POST',
-            :parser     => parser
-          }
-          args.merge!(:path => path) if path
-
-          response = @connection.request(args)
+            :parser     => parser,
+            :path => path
+          }.reject{|_,v| v.nil? }
 
-          response
+          @connection.request(args)
         end
-
       end
     end
   end
diff --git a/lib/fog/aws/storage.rb b/lib/fog/aws/storage.rb
index 5f2b22a..d2a0006 100644
--- a/lib/fog/aws/storage.rb
+++ b/lib/fog/aws/storage.rb
@@ -44,7 +44,7 @@ module Fog
       ]
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :endpoint, :region, :host, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style
+      recognizes :endpoint, :region, :host, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style, :instrumentor, :instrumentor_name
 
       secrets    :aws_secret_access_key, :hmac
 
@@ -85,6 +85,7 @@ module Fog
       request :get_object_url
       request :get_request_payment
       request :get_service
+      request :head_bucket
       request :head_object
       request :initiate_multipart_upload
       request :list_multipart_uploads
@@ -108,7 +109,6 @@ module Fog
       request :upload_part
 
       module Utils
-
         attr_accessor :region
 
         def cdn
@@ -260,7 +260,6 @@ module Fog
             :query  => query,
           }).to_s
         end
-
       end
 
       class Mock
@@ -385,7 +384,6 @@ module Fog
           @aws_session_token     = options[:aws_session_token]
           @aws_credentials_expire_at = options[:aws_credentials_expire_at]
         end
-
       end
 
       class Real
@@ -414,6 +412,8 @@ module Fog
 
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.storage'
           @connection_options     = options[:connection_options] || {}
           @persistent = options.fetch(:persistent, false)
 
@@ -459,7 +459,6 @@ DATA
           end
           string_to_sign << canonical_amz_headers
 
-
           query_string = ''
           if params[:query]
             query_args = []
@@ -535,16 +534,22 @@ DATA
           # FIXME: ToHashParser should make this not needed
           original_params = params.dup
 
-          begin
-            response = connection(scheme, host, port).request(params, &block)
-          rescue Excon::Errors::TemporaryRedirect => error
-            headers = (error.response.is_a?(Hash) ? error.response[:headers] : error.response.headers)
-            uri = URI.parse(headers['Location'])
-            Fog::Logger.warning("fog: followed redirect to #{uri.host}, connecting to the matching region will be more performant")
-            response = Fog::XML::Connection.new("#{uri.scheme}://#{uri.host}:#{uri.port}", false, @connection_options).request(original_params, &block)
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(scheme, host, port, params, original_params, &block)
+            end
+          else
+              _request(scheme, host, port, params, original_params, &block)
           end
+        end
 
-          response
+        def _request(scheme, host, port, params, original_params, &block)
+          connection(scheme, host, port).request(params, &block)
+        rescue Excon::Errors::TemporaryRedirect => error
+          headers = (error.response.is_a?(Hash) ? error.response[:headers] : error.response.headers)
+          uri = URI.parse(headers['Location'])
+          Fog::Logger.warning("fog: followed redirect to #{uri.host}, connecting to the matching region will be more performant")
+          Fog::XML::Connection.new("#{uri.scheme}://#{uri.host}:#{uri.port}", false, @connection_options).request(original_params, &block)
         end
       end
     end
diff --git a/lib/fog/aws/sts.rb b/lib/fog/aws/sts.rb
index 4a89933..cea95db 100644
--- a/lib/fog/aws/sts.rb
+++ b/lib/fog/aws/sts.rb
@@ -9,7 +9,7 @@ module Fog
       class ValidationError < Fog::AWS::STS::Error; end
 
       requires :aws_access_key_id, :aws_secret_access_key
-      recognizes :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at
+      recognizes :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at, :instrumentor, :instrumentor_name
 
       request_path 'fog/aws/requests/sts'
       request :get_federation_token
@@ -76,6 +76,8 @@ module Fog
 
           @use_iam_profile = options[:use_iam_profile]
           setup_credentials(options)
+          @instrumentor       = options[:instrumentor]
+          @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.sts'
           @connection_options     = options[:connection_options] || {}
 
           @host       = options[:host]        || 'sts.amazonaws.com'
@@ -117,28 +119,34 @@ module Fog
             }
           )
 
-          begin
-            @connection.request({
-              :body       => body,
-              :expects    => 200,
-              :idempotent => idempotent,
-              :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
-              :method     => 'POST',
-              :parser     => parser
-            })
-          rescue Excon::Errors::HTTPStatusError => error
-            match = Fog::AWS::Errors.match_error(error)
-            raise if match.empty?
-            raise case match[:code]
-                  when 'EntityAlreadyExists', 'KeyPairMismatch', 'LimitExceeded', 'MalformedCertificate', 'ValidationError'
-                    Fog::AWS::STS.const_get(match[:code]).slurp(error, match[:message])
-                  else
-                    Fog::AWS::STS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
-                  end
+          if @instrumentor
+            @instrumentor.instrument("#{@instrumentor_name}.request", params) do
+              _request(body, idempotent, parser)
+            end
+          else
+            _request(body, idempotent, parser)
           end
-
         end
 
+        def _request(body, idempotent, parser)
+          @connection.request({
+            :body       => body,
+            :expects    => 200,
+            :idempotent => idempotent,
+            :headers    => { 'Content-Type' => 'application/x-www-form-urlencoded' },
+            :method     => 'POST',
+            :parser     => parser
+          })
+        rescue Excon::Errors::HTTPStatusError => error
+          match = Fog::AWS::Errors.match_error(error)
+          raise if match.empty?
+          raise case match[:code]
+                when 'EntityAlreadyExists', 'KeyPairMismatch', 'LimitExceeded', 'MalformedCertificate', 'ValidationError'
+                  Fog::AWS::STS.const_get(match[:code]).slurp(error, match[:message])
+                else
+                  Fog::AWS::STS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
+                end
+        end
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/compute.rb b/lib/fog/bare_metal_cloud/compute.rb
index 8f12437..d504196 100644
--- a/lib/fog/bare_metal_cloud/compute.rb
+++ b/lib/fog/bare_metal_cloud/compute.rb
@@ -3,7 +3,6 @@ require 'fog/bare_metal_cloud/core'
 module Fog
   module Compute
     class BareMetalCloud < Fog::Service
-
       requires :bare_metal_cloud_password, :bare_metal_cloud_username
       recognizes :host, :port, :scheme, :persistent
 
@@ -21,7 +20,6 @@ module Fog
       request :reboot_server
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -43,11 +41,9 @@ module Fog
         def reset_data
           self.class.data.delete(@bare_metal_cloud_username)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           require 'fog/core/parser'
 
@@ -92,7 +88,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/core.rb b/lib/fog/bare_metal_cloud/core.rb
index 8c6532f..081ea21 100644
--- a/lib/fog/bare_metal_cloud/core.rb
+++ b/lib/fog/bare_metal_cloud/core.rb
@@ -3,10 +3,8 @@ require 'fog/xml'
 
 module Fog
   module BareMetalCloud
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/add_server.rb b/lib/fog/bare_metal_cloud/requests/compute/add_server.rb
index 361559b..c17e6fe 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/add_server.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/add_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # Boot a new server
         #
         # ==== Parameters
@@ -26,7 +25,6 @@ module Fog
             :query    => {'planId' => plan_id}.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb b/lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb
index 7722b35..824fdf0 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # Boot a new server by configuration
         #
         # ==== Parameters
@@ -26,7 +25,6 @@ module Fog
             :query    => {'configuration' => config}.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb b/lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb
index cb4bece..1008a54 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # Shutdown a running server
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => {'serverId' => server_id}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/get_server.rb b/lib/fog/bare_metal_cloud/requests/compute/get_server.rb
index 73f8980..e30c65d 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/get_server.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/get_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # List servers
         #
         # ==== Parameters
@@ -34,7 +33,6 @@ module Fog
             :query    => {'serverId' => server_id}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb b/lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb
index 62bb5f8..0b55942 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # List Configurations
         #
         # ==== Returns
@@ -20,7 +19,6 @@ module Fog
             :path     => 'api/listConfigurations'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/list_images.rb b/lib/fog/bare_metal_cloud/requests/compute/list_images.rb
index b96ba02..199152a 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/list_images.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # List images
         #
         # ==== Returns
@@ -20,7 +19,6 @@ module Fog
             :path     => 'api/listImages'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/list_plans.rb b/lib/fog/bare_metal_cloud/requests/compute/list_plans.rb
index a4aca88..84ebd5c 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/list_plans.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/list_plans.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # List available plans
         #
         # ==== Returns
@@ -23,7 +22,6 @@ module Fog
             :path     => 'api/listPlans'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/list_servers.rb b/lib/fog/bare_metal_cloud/requests/compute/list_servers.rb
index 5a01950..507e42b 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/list_servers.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # List servers
         #
         # ==== Returns
@@ -29,7 +28,6 @@ module Fog
             :path     => 'api/listServers'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb b/lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb
index a695ee4..438adb5 100644
--- a/lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb
+++ b/lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class BareMetalCloud
       class Real
-
         # Reboot a running server
         #
         # ==== Parameters
@@ -17,7 +16,6 @@ module Fog
             :query    => {'serverId' => server_id}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bin.rb b/lib/fog/bin.rb
index 12dcf19..4da4cf4 100644
--- a/lib/fog/bin.rb
+++ b/lib/fog/bin.rb
@@ -2,7 +2,6 @@ require 'fog/core/credentials'
 
 module Fog
   class << self
-
     def available_providers
       @available_providers ||= Fog.providers.values.select {|provider| Kernel.const_get(provider).available?}.sort
     end
@@ -10,12 +9,10 @@ module Fog
     def registered_providers
       @registered_providers ||= Fog.providers.values.sort
     end
-
   end
 
   class Bin
     class << self
-
       def available?
         availability = true
         for service in services
@@ -50,10 +47,8 @@ module Fog
       def collections
         services.map {|service| self[service].collections}.flatten.sort_by {|service| service.to_s}
       end
-
     end
   end
-
 end
 
 require 'fog/bin/atmos'
@@ -88,6 +83,7 @@ require 'fog/bin/openstack'
 require 'fog/bin/ovirt'
 require 'fog/bin/sakuracloud'
 require 'fog/bin/serverlove'
+require 'fog/bin/softlayer'
 require 'fog/bin/stormondemand'
 require 'fog/bin/terremark'
 require 'fog/bin/vcloud'
@@ -99,3 +95,4 @@ require 'fog/bin/xenserver'
 require 'fog/bin/zerigo'
 require 'fog/bin/cloudsigma'
 require 'fog/bin/openvz'
+require 'fog/bin/opennebula'
diff --git a/lib/fog/bin/atmos.rb b/lib/fog/bin/atmos.rb
index 59da2f2..af456f7 100644
--- a/lib/fog/bin/atmos.rb
+++ b/lib/fog/bin/atmos.rb
@@ -1,6 +1,5 @@
 class Atmos < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :storage
@@ -26,6 +25,5 @@ class Atmos < Fog::Bin
     def services
       Fog::Atmos.services
     end
-
   end
 end
diff --git a/lib/fog/bin/aws.rb b/lib/fog/bin/aws.rb
index e15784a..2e4c823 100644
--- a/lib/fog/bin/aws.rb
+++ b/lib/fog/bin/aws.rb
@@ -1,6 +1,5 @@
 class AWS < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :auto_scaling
@@ -118,6 +117,5 @@ class AWS < Fog::Bin
     def services
       Fog::AWS.services
     end
-
   end
 end
diff --git a/lib/fog/bin/bare_metal_cloud.rb b/lib/fog/bin/bare_metal_cloud.rb
index 34fc21a..00293fb 100644
--- a/lib/fog/bin/bare_metal_cloud.rb
+++ b/lib/fog/bin/bare_metal_cloud.rb
@@ -1,6 +1,5 @@
 class BareMetalCloud < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class BareMetalCloud < Fog::Bin
     def services
       Fog::BareMetalCloud.services
     end
-
   end
 end
diff --git a/lib/fog/bin/bluebox.rb b/lib/fog/bin/bluebox.rb
index 0207e45..ad31eb7 100644
--- a/lib/fog/bin/bluebox.rb
+++ b/lib/fog/bin/bluebox.rb
@@ -1,6 +1,5 @@
 class Bluebox < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -33,6 +32,5 @@ class Bluebox < Fog::Bin
     def services
       Fog::Bluebox.services
     end
-
   end
 end
diff --git a/lib/fog/bin/brightbox.rb b/lib/fog/bin/brightbox.rb
index 638080f..c3c087e 100644
--- a/lib/fog/bin/brightbox.rb
+++ b/lib/fog/bin/brightbox.rb
@@ -1,6 +1,5 @@
 class Brightbox < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -30,6 +29,5 @@ class Brightbox < Fog::Bin
     def services
       Fog::Brightbox.services
     end
-
   end
 end
diff --git a/lib/fog/bin/clodo.rb b/lib/fog/bin/clodo.rb
index f36e46e..e40794e 100644
--- a/lib/fog/bin/clodo.rb
+++ b/lib/fog/bin/clodo.rb
@@ -1,6 +1,5 @@
 class Clodo < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class Clodo < Fog::Bin
     def services
       Fog::Clodo.services
     end
-
   end
 end
diff --git a/lib/fog/bin/cloudsigma.rb b/lib/fog/bin/cloudsigma.rb
index 0804792..72a7e15 100644
--- a/lib/fog/bin/cloudsigma.rb
+++ b/lib/fog/bin/cloudsigma.rb
@@ -1,6 +1,5 @@
 class CloudSigma < Fog::Bin
   class << self
-
     def class_for(key)
       case key
         when :compute
diff --git a/lib/fog/bin/cloudstack.rb b/lib/fog/bin/cloudstack.rb
index 162307a..0dc3ee4 100644
--- a/lib/fog/bin/cloudstack.rb
+++ b/lib/fog/bin/cloudstack.rb
@@ -1,6 +1,5 @@
 class Cloudstack < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -25,6 +24,5 @@ class Cloudstack < Fog::Bin
     def services
       Fog::Cloudstack.services
     end
-
   end
 end
diff --git a/lib/fog/bin/digitalocean.rb b/lib/fog/bin/digitalocean.rb
index 309ebe1..9cdad99 100644
--- a/lib/fog/bin/digitalocean.rb
+++ b/lib/fog/bin/digitalocean.rb
@@ -1,6 +1,5 @@
 class DigitalOcean < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class DigitalOcean < Fog::Bin
     def services
       Fog::DigitalOcean.services
     end
-
   end
 end
diff --git a/lib/fog/bin/dnsimple.rb b/lib/fog/bin/dnsimple.rb
index 4de8585..cd6af59 100644
--- a/lib/fog/bin/dnsimple.rb
+++ b/lib/fog/bin/dnsimple.rb
@@ -1,6 +1,5 @@
 class DNSimple < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :dns
@@ -26,6 +25,5 @@ class DNSimple < Fog::Bin
     def services
       Fog::DNSimple.services
     end
-
   end
 end
diff --git a/lib/fog/bin/dnsmadeeasy.rb b/lib/fog/bin/dnsmadeeasy.rb
index a5bba03..d5ffa21 100644
--- a/lib/fog/bin/dnsmadeeasy.rb
+++ b/lib/fog/bin/dnsmadeeasy.rb
@@ -1,6 +1,5 @@
 class DNSMadeEasy < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :dns
@@ -26,6 +25,5 @@ class DNSMadeEasy < Fog::Bin
     def services
       Fog::DNSMadeEasy.services
     end
-
   end
 end
diff --git a/lib/fog/bin/dreamhost.rb b/lib/fog/bin/dreamhost.rb
index 158b8ed..61c0244 100644
--- a/lib/fog/bin/dreamhost.rb
+++ b/lib/fog/bin/dreamhost.rb
@@ -1,6 +1,5 @@
 class Dreamhost < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :dns
@@ -26,6 +25,5 @@ class Dreamhost < Fog::Bin
     def services
       Fog::Dreamhost.services
     end
-
   end
 end
diff --git a/lib/fog/bin/dynect.rb b/lib/fog/bin/dynect.rb
index 110b524..3ec4d68 100644
--- a/lib/fog/bin/dynect.rb
+++ b/lib/fog/bin/dynect.rb
@@ -1,6 +1,5 @@
 class Dynect < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :dns
@@ -25,6 +24,5 @@ class Dynect < Fog::Bin
     def services
       [:dns]
     end
-
   end
 end
diff --git a/lib/fog/bin/ecloud.rb b/lib/fog/bin/ecloud.rb
index 6562400..38bebec 100644
--- a/lib/fog/bin/ecloud.rb
+++ b/lib/fog/bin/ecloud.rb
@@ -1,6 +1,5 @@
 class Ecloud < Fog::Bin
   class << self
-
     def available?
       Fog::Ecloud::ECLOUD_OPTIONS.all? {|requirement| Fog.credentials.include?(requirement)}
     end
@@ -30,6 +29,5 @@ class Ecloud < Fog::Bin
     def services
       Fog::Ecloud.services
     end
-
   end
 end
diff --git a/lib/fog/bin/fogdocker.rb b/lib/fog/bin/fogdocker.rb
index 9219a75..111db62 100644
--- a/lib/fog/bin/fogdocker.rb
+++ b/lib/fog/bin/fogdocker.rb
@@ -1,6 +1,5 @@
 class Fogdocker < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -25,6 +24,5 @@ class Fogdocker < Fog::Bin
     def services
       Fog::Fogdocker.services
     end
-
   end
 end
diff --git a/lib/fog/bin/glesys.rb b/lib/fog/bin/glesys.rb
index 83e364d..2656827 100644
--- a/lib/fog/bin/glesys.rb
+++ b/lib/fog/bin/glesys.rb
@@ -1,6 +1,5 @@
 class Glesys < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class Glesys < Fog::Bin
     def services
       Fog::Glesys.services
     end
-
   end
 end
diff --git a/lib/fog/bin/go_grid.rb b/lib/fog/bin/go_grid.rb
index 4acc091..fc2ffe2 100644
--- a/lib/fog/bin/go_grid.rb
+++ b/lib/fog/bin/go_grid.rb
@@ -1,6 +1,5 @@
 class GoGrid < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class GoGrid < Fog::Bin
     def services
       Fog::GoGrid.services
     end
-
   end
 end
diff --git a/lib/fog/bin/google.rb b/lib/fog/bin/google.rb
index b7389f2..349c8ae 100644
--- a/lib/fog/bin/google.rb
+++ b/lib/fog/bin/google.rb
@@ -1,12 +1,17 @@
 module Google # deviates from other bin stuff to accomodate gem
   class << self
-
     def class_for(key)
       case key
       when :compute
         Fog::Compute::Google
+      when :dns
+        Fog::DNS::Google
+      when :monitoring
+        Fog::Google::Monitoring
       when :storage
         Fog::Storage::Google
+      when :sql
+        Fog::Google::SQL
       else
         raise ArgumentError, "Unsupported #{self} service: #{key}"
       end
@@ -15,12 +20,19 @@ module Google # deviates from other bin stuff to accomodate gem
     def [](service)
       @@connections ||= Hash.new do |hash, key|
         hash[key] = case key
-        when :storage
-          Fog::Logger.warning("Google[:storage] is not recommended, use Storage[:google] for portability")
-          Fog::Storage.new(:provider => 'Google')
         when :compute
           Fog::Logger.warning("Google[:compute] is not recommended, use Compute[:google] for portability")
           Fog::Compute.new(:provider => 'Google')
+        when :dns
+          Fog::Logger.warning("Google[:dns] is not recommended, use DNS[:google] for portability")
+          Fog::DNS.new(:provider => 'Google')
+        when :monitoring
+          Fog::Google::Monitoring.new
+        when :sql
+          Fog::Google::SQL.new
+        when :storage
+          Fog::Logger.warning("Google[:storage] is not recommended, use Storage[:google] for portability")
+          Fog::Storage.new(:provider => 'Google')
         else
           raise ArgumentError, "Unrecognized service: #{key.inspect}"
         end
@@ -44,7 +56,6 @@ module Google # deviates from other bin stuff to accomodate gem
       else
         !Gem.source_index.find_name('google-api-client').empty? # legacy
       end
-
       # Then make sure we have all of the requirements
       for service in services
         begin
diff --git a/lib/fog/bin/hp.rb b/lib/fog/bin/hp.rb
index 0250fe5..d7137e7 100644
--- a/lib/fog/bin/hp.rb
+++ b/lib/fog/bin/hp.rb
@@ -1,6 +1,5 @@
 class HP < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :block_storage
@@ -57,6 +56,5 @@ class HP < Fog::Bin
     def services
       Fog::HP.services
     end
-
   end
 end
diff --git a/lib/fog/bin/ibm.rb b/lib/fog/bin/ibm.rb
index 06a2a45..4c48a4e 100644
--- a/lib/fog/bin/ibm.rb
+++ b/lib/fog/bin/ibm.rb
@@ -1,6 +1,5 @@
 class IBM < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -29,6 +28,5 @@ class IBM < Fog::Bin
     def services
       Fog::IBM.services
     end
-
   end
 end
diff --git a/lib/fog/bin/internet_archive.rb b/lib/fog/bin/internet_archive.rb
index c5af5a1..1671fa3 100644
--- a/lib/fog/bin/internet_archive.rb
+++ b/lib/fog/bin/internet_archive.rb
@@ -1,6 +1,5 @@
 class InternetArchive < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :storage
@@ -29,6 +28,5 @@ class InternetArchive < Fog::Bin
     def services
       Fog::InternetArchive.services
     end
-
   end
 end
diff --git a/lib/fog/bin/joyent.rb b/lib/fog/bin/joyent.rb
index 654269c..eaa08dd 100644
--- a/lib/fog/bin/joyent.rb
+++ b/lib/fog/bin/joyent.rb
@@ -1,6 +1,5 @@
 class Joyent < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -30,6 +29,5 @@ class Joyent < Fog::Bin
     def services
       Fog::Joyent.services
     end
-
   end
 end
diff --git a/lib/fog/bin/libvirt.rb b/lib/fog/bin/libvirt.rb
index 6e00328..8cff49d 100644
--- a/lib/fog/bin/libvirt.rb
+++ b/lib/fog/bin/libvirt.rb
@@ -1,6 +1,5 @@
 module Libvirt # deviates from other bin stuff to accomodate gem
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -55,6 +54,5 @@ module Libvirt # deviates from other bin stuff to accomodate gem
     def services
       Fog::Libvirt.services
     end
-
   end
 end
diff --git a/lib/fog/bin/linode.rb b/lib/fog/bin/linode.rb
index a94349d..8426273 100644
--- a/lib/fog/bin/linode.rb
+++ b/lib/fog/bin/linode.rb
@@ -1,6 +1,5 @@
 class Linode < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -31,6 +30,5 @@ class Linode < Fog::Bin
     def services
       Fog::Linode.services
     end
-
   end
 end
diff --git a/lib/fog/bin/local.rb b/lib/fog/bin/local.rb
index bd22f67..dafd230 100644
--- a/lib/fog/bin/local.rb
+++ b/lib/fog/bin/local.rb
@@ -1,6 +1,5 @@
 class Local < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :storage
@@ -26,6 +25,5 @@ class Local < Fog::Bin
     def services
       Fog::Local.services
     end
-
   end
 end
diff --git a/lib/fog/bin/ninefold.rb b/lib/fog/bin/ninefold.rb
index 3a39112..9d546f2 100644
--- a/lib/fog/bin/ninefold.rb
+++ b/lib/fog/bin/ninefold.rb
@@ -1,6 +1,5 @@
 class Ninefold < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -31,6 +30,5 @@ class Ninefold < Fog::Bin
     def services
       Fog::Ninefold.services
     end
-
   end
 end
diff --git a/lib/fog/bin/opennebula.rb b/lib/fog/bin/opennebula.rb
new file mode 100644
index 0000000..6e72120
--- /dev/null
+++ b/lib/fog/bin/opennebula.rb
@@ -0,0 +1,60 @@
+module OpenNebula # deviates from other bin stuff to accomodate gem
+  class << self
+
+    def class_for(key)
+      case key
+      when :compute
+        Fog::Compute::OpenNebula
+      else
+        raise ArgumentError, "Unrecognized service: #{key}"
+      end
+    end
+
+    def [](service)
+      @@connections ||= Hash.new do |hash, key|
+        hash[key] = case key
+        when :compute
+          Fog::Logger.warning("OpenNebula[:compute] is not recommended, use Compute[:opennebula] for portability")
+          Fog::Compute.new(:provider => 'OpenNebula')
+        else
+          raise ArgumentError, "Unrecognized service: #{key.inspect}"
+        end
+      end
+      @@connections[service]
+    end
+
+    def available?
+      begin
+        availability=true unless Gem::Specification::find_by_name("opennebula").nil?
+      rescue Gem::LoadError
+        availability=false
+      rescue
+        availability_gem=Gem.available?("opennebula")
+      end
+
+      if availability
+        for service in services
+          for collection in self.class_for(service).collections
+            unless self.respond_to?(collection)
+              self.class_eval <<-EOS, __FILE__, __LINE__
+                def self.#{collection}
+                  self[:#{service}].#{collection}
+                end
+              EOS
+            end
+          end
+        end
+      end
+      availability
+    end
+
+    def collections
+      services.map {|service| self[service].collections}.flatten.sort_by {|service| service.to_s}
+    end
+
+    def services
+      Fog::OpenNebula.services
+    end
+
+  end
+end
diff --git a/lib/fog/bin/openstack.rb b/lib/fog/bin/openstack.rb
index 18bb1e9..4c933af 100644
--- a/lib/fog/bin/openstack.rb
+++ b/lib/fog/bin/openstack.rb
@@ -1,6 +1,5 @@
 class OpenStack < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -61,6 +60,5 @@ class OpenStack < Fog::Bin
     def services
       Fog::OpenStack.services
     end
-
   end
 end
diff --git a/lib/fog/bin/openvz.rb b/lib/fog/bin/openvz.rb
index 6adcb43..42af38c 100644
--- a/lib/fog/bin/openvz.rb
+++ b/lib/fog/bin/openvz.rb
@@ -1,6 +1,5 @@
 class Openvz < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class Openvz < Fog::Bin
     def services
       Fog::Openvz.services
     end
-
   end
 end
diff --git a/lib/fog/bin/ovirt.rb b/lib/fog/bin/ovirt.rb
index 62df5d7..14eca5e 100644
--- a/lib/fog/bin/ovirt.rb
+++ b/lib/fog/bin/ovirt.rb
@@ -1,6 +1,5 @@
 class Ovirt < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -25,6 +24,5 @@ class Ovirt < Fog::Bin
     def services
       Fog::Ovirt.services
     end
-
   end
 end
diff --git a/lib/fog/bin/rackspace.rb b/lib/fog/bin/rackspace.rb
index 7e9952b..51c8941 100644
--- a/lib/fog/bin/rackspace.rb
+++ b/lib/fog/bin/rackspace.rb
@@ -1,6 +1,5 @@
 class Rackspace < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :auto_scale
@@ -74,6 +73,5 @@ class Rackspace < Fog::Bin
     def services
       Fog::Rackspace.services
     end
-
   end
 end
diff --git a/lib/fog/bin/rage4.rb b/lib/fog/bin/rage4.rb
index 0d78c9f..0511b90 100644
--- a/lib/fog/bin/rage4.rb
+++ b/lib/fog/bin/rage4.rb
@@ -1,6 +1,5 @@
 class Rage4 < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :dns
@@ -26,6 +25,5 @@ class Rage4 < Fog::Bin
     def services
       Fog::Rage4.services
     end
-
   end
 end
diff --git a/lib/fog/bin/riakcs.rb b/lib/fog/bin/riakcs.rb
index ee64bea..a7abade 100644
--- a/lib/fog/bin/riakcs.rb
+++ b/lib/fog/bin/riakcs.rb
@@ -1,6 +1,5 @@
 class RiakCS < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :provisioning
@@ -22,6 +21,5 @@ class RiakCS < Fog::Bin
     def services
       Fog::RiakCS.services
     end
-
   end
 end
diff --git a/lib/fog/bin/sakuracloud.rb b/lib/fog/bin/sakuracloud.rb
deleted file mode 100644
index 935b9e8..0000000
--- a/lib/fog/bin/sakuracloud.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-class SakuraCloud < Fog::Bin
-  class << self
-
-    def class_for(key)
-      case key
-      when :compute
-        Fog::Compute::SakuraCloud
-      when :volume
-        Fog::Volume::SakuraCloud
-      else
-        raise ArgumentError, "Unrecognized service: #{key}"
-      end
-    end
-
-    def [](service)
-      @@connections ||= Hash.new do |hash, key|
-        hash[key] = case key
-        when :compute
-          Fog::Logger.warning("SakuraCloud[:compute] is not recommended, use Compute[:sakuracloud] for portability")
-          Fog::Compute.new(:provider => 'SakuraCloud')
-        when :volume
-          Fog::Logger.warning("SakuraCloud[:compute] is not recommended, use Compute[:SakuraCloud] for portability")
-          Fog::Compute.new(:provider => 'SakuraCloud')
-        else
-          raise ArgumentError, "Unrecognized service: #{key.inspect}"
-        end
-      end
-      @@connections[service]
-    end
-
-    def services
-      Fog::SakuraCloud.services
-    end
-
-  end
-end
diff --git a/lib/fog/bin/serverlove.rb b/lib/fog/bin/serverlove.rb
index 62b722d..d6dab11 100644
--- a/lib/fog/bin/serverlove.rb
+++ b/lib/fog/bin/serverlove.rb
@@ -1,6 +1,5 @@
 class Serverlove < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class Serverlove < Fog::Bin
     def services
       Fog::Serverlove.services
     end
-
   end
 end
diff --git a/lib/fog/bin/softlayer.rb b/lib/fog/bin/softlayer.rb
new file mode 100644
index 0000000..7195394
--- /dev/null
+++ b/lib/fog/bin/softlayer.rb
@@ -0,0 +1,53 @@
+#
+# Author:: Matt Eldridge (<matt.eldridge at us.ibm.com>)
+# © Copyright IBM Corporation 2014.
+#
+# LICENSE: MIT (http://opensource.org/licenses/MIT)
+#
+
+class Softlayer < Fog::Bin
+  class << self
+    def class_for(key)
+      case key
+        when :compute
+          Fog::Compute::Softlayer
+        when :dns
+          Fog::DNS::Softlayer
+        when :network
+          Fog::Network::Softlayer
+        when :storage
+          Fog::Storage::Softlayer
+        else
+          # @todo Replace most instances of ArgumentError with NotImplementedError
+          # @todo For a list of widely supported Exceptions, see:
+          # => http://www.zenspider.com/Languages/Ruby/QuickRef.html#35
+          raise ArgumentError, "Unsupported #{self} service: #{key}"
+      end
+    end
+
+    def [](service)
+      @@connections ||= Hash.new do |hash, key|
+        hash[key] = case key
+                      when :compute
+                        Fog::Logger.warning("Softlayer[:compute] is not recommended, use Compute[:aws] for portability")
+                        Fog::Compute.new(:provider => :softlayer)
+                      when :dns
+                        Fog::Logger.warning("Softlayer[:dns] is not recommended, use DNS[:aws] for portability")
+                        Fog::DNS.new(:provider => :softlayer)
+                      when :network
+                        Fog::Network.new(:provider => :softlayer)
+                      when :storage
+                        Fog::Storage.new(:provider => :softlayer)
+                      else
+                        raise ArgumentError, "Unrecognized service: #{key.inspect}"
+                    end
+      end
+      @@connections[service]
+    end
+
+    def services
+      Fog::Softlayer.services
+    end
+  end
+end
+
diff --git a/lib/fog/bin/stormondemand.rb b/lib/fog/bin/stormondemand.rb
index 2b889e3..da824c9 100644
--- a/lib/fog/bin/stormondemand.rb
+++ b/lib/fog/bin/stormondemand.rb
@@ -1,6 +1,5 @@
 class StormOnDemand < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class StormOnDemand < Fog::Bin
     def services
       Fog::StormOnDemand.services
     end
-
   end
 end
diff --git a/lib/fog/bin/terremark.rb b/lib/fog/bin/terremark.rb
index 76258c7..c3e192a 100644
--- a/lib/fog/bin/terremark.rb
+++ b/lib/fog/bin/terremark.rb
@@ -1,6 +1,5 @@
 class Terremark < Fog::Bin
   class << self
-
     def available?
       Fog::Terremark::VCLOUD_OPTIONS.all? {|requirement| Fog.credentials.include?(requirement)}
     end
@@ -26,6 +25,5 @@ class Terremark < Fog::Bin
       end
       @@connections[service]
     end
-
   end
 end
diff --git a/lib/fog/bin/vcloud.rb b/lib/fog/bin/vcloud.rb
index 56442c5..3825e3e 100644
--- a/lib/fog/bin/vcloud.rb
+++ b/lib/fog/bin/vcloud.rb
@@ -1,6 +1,5 @@
 class Vcloud < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -25,6 +24,5 @@ class Vcloud < Fog::Bin
     def services
       Fog::Vcloud.services
     end
-
   end
 end
diff --git a/lib/fog/bin/vcloud_director.rb b/lib/fog/bin/vcloud_director.rb
index 50b2f7e..f5ad0e8 100644
--- a/lib/fog/bin/vcloud_director.rb
+++ b/lib/fog/bin/vcloud_director.rb
@@ -1,6 +1,5 @@
 class VcloudDirector < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -25,6 +24,5 @@ class VcloudDirector < Fog::Bin
     def services
       Fog::VcloudDirector.services
     end
-
   end
 end
diff --git a/lib/fog/bin/vmfusion.rb b/lib/fog/bin/vmfusion.rb
index 7ac8161..7a51900 100644
--- a/lib/fog/bin/vmfusion.rb
+++ b/lib/fog/bin/vmfusion.rb
@@ -1,6 +1,5 @@
 module Vmfusion # deviates from other bin stuff to accomodate gem
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -55,6 +54,5 @@ module Vmfusion # deviates from other bin stuff to accomodate gem
     def services
       Fog::Vmfusion.services
     end
-
   end
 end
diff --git a/lib/fog/bin/voxel.rb b/lib/fog/bin/voxel.rb
index 7d38473..028851b 100644
--- a/lib/fog/bin/voxel.rb
+++ b/lib/fog/bin/voxel.rb
@@ -1,6 +1,5 @@
 class Voxel < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class Voxel < Fog::Bin
     def services
       Fog::Voxel.services
     end
-
   end
 end
diff --git a/lib/fog/bin/vsphere.rb b/lib/fog/bin/vsphere.rb
index 9d06b91..020d113 100644
--- a/lib/fog/bin/vsphere.rb
+++ b/lib/fog/bin/vsphere.rb
@@ -1,6 +1,5 @@
 class Vsphere < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -25,6 +24,5 @@ class Vsphere < Fog::Bin
     def services
       Fog::Vsphere.services
     end
-
   end
 end
diff --git a/lib/fog/bin/xenserver.rb b/lib/fog/bin/xenserver.rb
index 1b56096..ae94ec0 100644
--- a/lib/fog/bin/xenserver.rb
+++ b/lib/fog/bin/xenserver.rb
@@ -1,6 +1,5 @@
 class XenServer < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :compute
@@ -26,6 +25,5 @@ class XenServer < Fog::Bin
     def services
       Fog::XenServer.services
     end
-
   end
 end
diff --git a/lib/fog/bin/zerigo.rb b/lib/fog/bin/zerigo.rb
index 38b69fc..6ec8a47 100644
--- a/lib/fog/bin/zerigo.rb
+++ b/lib/fog/bin/zerigo.rb
@@ -1,6 +1,5 @@
 class Zerigo < Fog::Bin
   class << self
-
     def class_for(key)
       case key
       when :dns
@@ -26,6 +25,5 @@ class Zerigo < Fog::Bin
     def services
       Fog::Zerigo.services
     end
-
   end
 end
diff --git a/lib/fog/bluebox/blb.rb b/lib/fog/bluebox/blb.rb
index 250f63c..33f832f 100644
--- a/lib/fog/bluebox/blb.rb
+++ b/lib/fog/bluebox/blb.rb
@@ -3,7 +3,6 @@ require 'fog/bluebox/core'
 module Fog
   module Bluebox
     class BLB < Fog::Service
-
       requires :bluebox_api_key, :bluebox_customer_id
       recognizes :bluebox_host, :bluebox_port, :bluebox_scheme, :persistent
 
@@ -18,7 +17,6 @@ module Fog
       model      :lb_backend
       collection :lb_backends
 
-
       request_path 'fog/bluebox/requests/blb'
 
       request :get_lb_application
@@ -78,7 +76,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/compute.rb b/lib/fog/bluebox/compute.rb
index 3354847..d582f93 100644
--- a/lib/fog/bluebox/compute.rb
+++ b/lib/fog/bluebox/compute.rb
@@ -3,7 +3,6 @@ require 'fog/bluebox/core'
 module Fog
   module Compute
     class Bluebox < Fog::Service
-
       requires :bluebox_api_key, :bluebox_customer_id
       recognizes :bluebox_host, :bluebox_port, :bluebox_scheme, :persistent
 
@@ -33,7 +32,6 @@ module Fog
       request :reboot_block
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -55,11 +53,9 @@ module Fog
         def reset_data
           self.class.data.delete(@bluebox_api_key)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @bluebox_api_key      = options[:bluebox_api_key]
           @bluebox_customer_id  = options[:bluebox_customer_id]
@@ -96,7 +92,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/core.rb b/lib/fog/bluebox/core.rb
index 9834a88..b82d6bc 100644
--- a/lib/fog/bluebox/core.rb
+++ b/lib/fog/bluebox/core.rb
@@ -3,12 +3,10 @@ require 'fog/json'
 
 module Fog
   module Bluebox
-
     extend Fog::Provider
 
     service(:blb,     'BLB')
     service(:compute, 'Compute')
     service(:dns,     'DNS')
-
   end
 end
diff --git a/lib/fog/bluebox/dns.rb b/lib/fog/bluebox/dns.rb
index 118a83f..1c7f754 100644
--- a/lib/fog/bluebox/dns.rb
+++ b/lib/fog/bluebox/dns.rb
@@ -3,7 +3,6 @@ require 'fog/bluebox/core'
 module Fog
   module DNS
     class Bluebox < Fog::Service
-
       requires :bluebox_api_key, :bluebox_customer_id
       recognizes :bluebox_host, :bluebox_port, :bluebox_scheme, :persistent
 
@@ -96,7 +95,6 @@ module Fog
         def auth_header
           @auth_header ||= Base64.encode64("#{@bluebox_customer_id}:#{@bluebox_api_key}").gsub("\n",'')
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/models/blb/lb_application.rb b/lib/fog/bluebox/models/blb/lb_application.rb
index c4923e2..9936f05 100644
--- a/lib/fog/bluebox/models/blb/lb_application.rb
+++ b/lib/fog/bluebox/models/blb/lb_application.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Bluebox
     class BLB
-
       class LbApplication < Fog::Model
         identity :id
 
@@ -24,9 +23,7 @@ module Fog
             :lb_application => self
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/blb/lb_applications.rb b/lib/fog/bluebox/models/blb/lb_applications.rb
index 7599ad2..26e086d 100644
--- a/lib/fog/bluebox/models/blb/lb_applications.rb
+++ b/lib/fog/bluebox/models/blb/lb_applications.rb
@@ -18,9 +18,7 @@ module Fog
         rescue Fog::Bluebox::BLB::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/blb/lb_backend.rb b/lib/fog/bluebox/models/blb/lb_backend.rb
index 86b657f..64f787e 100644
--- a/lib/fog/bluebox/models/blb/lb_backend.rb
+++ b/lib/fog/bluebox/models/blb/lb_backend.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Bluebox
     class BLB
-
       class LbBackend < Fog::Model
         identity :id
 
@@ -14,9 +13,7 @@ module Fog
         attribute :acl_name
         attribute :acl_rule
         attribute :check_interval
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/blb/lb_backends.rb b/lib/fog/bluebox/models/blb/lb_backends.rb
index d111c83..626d340 100644
--- a/lib/fog/bluebox/models/blb/lb_backends.rb
+++ b/lib/fog/bluebox/models/blb/lb_backends.rb
@@ -5,7 +5,6 @@ module Fog
   module Bluebox
     class BLB
       class LbBackends < Fog::Collection
-
         model Fog::Bluebox::BLB::LbBackend
 
         attr_accessor :lb_service
@@ -22,9 +21,7 @@ module Fog
         rescue Fog::Compute::Bluebox::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/blb/lb_service.rb b/lib/fog/bluebox/models/blb/lb_service.rb
index 22ffbf8..72a7b69 100644
--- a/lib/fog/bluebox/models/blb/lb_service.rb
+++ b/lib/fog/bluebox/models/blb/lb_service.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Bluebox
     class BLB
-
       class LbService < Fog::Model
         identity :id
 
@@ -17,7 +16,6 @@ module Fog
         attribute :status_password
         attribute :created,     :aliases => 'created_at'
 
-
         def lb_application
           collection.lb_application
         end
@@ -28,7 +26,6 @@ module Fog
             :lb_service => self
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/models/blb/lb_services.rb b/lib/fog/bluebox/models/blb/lb_services.rb
index 71ef06c..7cd4cde 100644
--- a/lib/fog/bluebox/models/blb/lb_services.rb
+++ b/lib/fog/bluebox/models/blb/lb_services.rb
@@ -21,9 +21,7 @@ module Fog
         rescue Fog::Bluebox::BLB::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/flavor.rb b/lib/fog/bluebox/models/compute/flavor.rb
index a3cd82e..d02da40 100644
--- a/lib/fog/bluebox/models/compute/flavor.rb
+++ b/lib/fog/bluebox/models/compute/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Bluebox
-
       class Flavor < Fog::Model
-
         identity :id
 
         attribute :name
@@ -37,9 +35,7 @@ module Fog
           # end
           raise StandardError.new("Figure me out!?!")
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/flavors.rb b/lib/fog/bluebox/models/compute/flavors.rb
index 7ce0df1..97b4569 100644
--- a/lib/fog/bluebox/models/compute/flavors.rb
+++ b/lib/fog/bluebox/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/compute/flavor'
 module Fog
   module Compute
     class Bluebox
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::Bluebox::Flavor
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::Bluebox::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/image.rb b/lib/fog/bluebox/models/compute/image.rb
index 6608679..d029921 100644
--- a/lib/fog/bluebox/models/compute/image.rb
+++ b/lib/fog/bluebox/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Bluebox
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :block_id
@@ -26,9 +24,7 @@ module Fog
           data = service.destroy_template(id)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/images.rb b/lib/fog/bluebox/models/compute/images.rb
index 0f563db..747641e 100644
--- a/lib/fog/bluebox/models/compute/images.rb
+++ b/lib/fog/bluebox/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/compute/image'
 module Fog
   module Compute
     class Bluebox
-
       class Images < Fog::Collection
-
         model Fog::Compute::Bluebox::Image
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::Bluebox::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/location.rb b/lib/fog/bluebox/models/compute/location.rb
index 9c2fc43..6d8cd95 100644
--- a/lib/fog/bluebox/models/compute/location.rb
+++ b/lib/fog/bluebox/models/compute/location.rb
@@ -3,15 +3,11 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Bluebox
-
       class Location < Fog::Model
-
         identity :id
 
         attribute :description
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/locations.rb b/lib/fog/bluebox/models/compute/locations.rb
index ecbb56f..b798e61 100644
--- a/lib/fog/bluebox/models/compute/locations.rb
+++ b/lib/fog/bluebox/models/compute/locations.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/compute/location'
 module Fog
   module Compute
     class Bluebox
-
       class Locations < Fog::Collection
-
         model Fog::Compute::Bluebox::Location
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::Bluebox::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/server.rb b/lib/fog/bluebox/models/compute/server.rb
index 72b1dab..cb904f2 100644
--- a/lib/fog/bluebox/models/compute/server.rb
+++ b/lib/fog/bluebox/models/compute/server.rb
@@ -3,11 +3,9 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Bluebox
-
       class BlockInstantiationError < StandardError; end
 
       class Server < Fog::Compute::Server
-
         identity :id
 
         attribute :cpu
@@ -116,9 +114,7 @@ module Fog
         def username
           @username ||= 'deploy'
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/compute/servers.rb b/lib/fog/bluebox/models/compute/servers.rb
index 360d8a7..1f89be3 100644
--- a/lib/fog/bluebox/models/compute/servers.rb
+++ b/lib/fog/bluebox/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/compute/server'
 module Fog
   module Compute
     class Bluebox
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Bluebox::Server
 
         def all
@@ -28,9 +26,7 @@ module Fog
         rescue Fog::Compute::Bluebox::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/dns/record.rb b/lib/fog/bluebox/models/dns/record.rb
index 09fb664..1c923d8 100644
--- a/lib/fog/bluebox/models/dns/record.rb
+++ b/lib/fog/bluebox/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class Bluebox
-
       class Record < Fog::Model
         extend Fog::Deprecation
         deprecate :ip, :value
@@ -47,9 +46,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/dns/records.rb b/lib/fog/bluebox/models/dns/records.rb
index bf8f1a2..5ccdcd0 100644
--- a/lib/fog/bluebox/models/dns/records.rb
+++ b/lib/fog/bluebox/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/dns/record'
 module Fog
   module DNS
     class Bluebox
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::Bluebox::Record
@@ -28,9 +26,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/models/dns/zone.rb b/lib/fog/bluebox/models/dns/zone.rb
index cbbc60c..cc74252 100644
--- a/lib/fog/bluebox/models/dns/zone.rb
+++ b/lib/fog/bluebox/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/dns/records'
 module Fog
   module DNS
     class Bluebox
-
       class Zone < Fog::Model
-
         identity :id
 
         attribute :domain,        :aliases => 'name'
diff --git a/lib/fog/bluebox/models/dns/zones.rb b/lib/fog/bluebox/models/dns/zones.rb
index b825355..43f5e98 100644
--- a/lib/fog/bluebox/models/dns/zones.rb
+++ b/lib/fog/bluebox/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/bluebox/models/dns/zone'
 module Fog
   module DNS
     class Bluebox
-
       class Zones < Fog::Collection
-
         model Fog::DNS::Bluebox::Zone
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Service::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/parsers/dns/create_record.rb b/lib/fog/bluebox/parsers/dns/create_record.rb
index acc7713..373891c 100644
--- a/lib/fog/bluebox/parsers/dns/create_record.rb
+++ b/lib/fog/bluebox/parsers/dns/create_record.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Bluebox
-
         class CreateRecord < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/parsers/dns/create_zone.rb b/lib/fog/bluebox/parsers/dns/create_zone.rb
index dd222d3..23f7407 100644
--- a/lib/fog/bluebox/parsers/dns/create_zone.rb
+++ b/lib/fog/bluebox/parsers/dns/create_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Bluebox
-
         class CreateZone < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/parsers/dns/get_record.rb b/lib/fog/bluebox/parsers/dns/get_record.rb
index b6979ac..90742c6 100644
--- a/lib/fog/bluebox/parsers/dns/get_record.rb
+++ b/lib/fog/bluebox/parsers/dns/get_record.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Bluebox
-
         class GetRecord < Fog::Parsers::Base
-
           def reset
             @response = { }
           end
@@ -12,9 +10,7 @@ module Fog
           def end_element(name)
             @response[name] = value
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/parsers/dns/get_records.rb b/lib/fog/bluebox/parsers/dns/get_records.rb
index faf3785..9b9d094 100644
--- a/lib/fog/bluebox/parsers/dns/get_records.rb
+++ b/lib/fog/bluebox/parsers/dns/get_records.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Bluebox
-
         class GetRecords < Fog::Parsers::Base
-
           def reset
             @record = {}
             @response = { 'records' => [] }
@@ -19,9 +17,7 @@ module Fog
               @record[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/parsers/dns/get_zone.rb b/lib/fog/bluebox/parsers/dns/get_zone.rb
index 44ffb80..806402f 100644
--- a/lib/fog/bluebox/parsers/dns/get_zone.rb
+++ b/lib/fog/bluebox/parsers/dns/get_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Bluebox
-
         class GetZone < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/parsers/dns/get_zones.rb b/lib/fog/bluebox/parsers/dns/get_zones.rb
index 117e55b..95fd669 100644
--- a/lib/fog/bluebox/parsers/dns/get_zones.rb
+++ b/lib/fog/bluebox/parsers/dns/get_zones.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Bluebox
-
         class GetZones < Fog::Parsers::Base
-
           def reset
             @zone = {}
             @response = { 'zones' => [] }
@@ -21,9 +19,7 @@ module Fog
               @zone = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_application.rb b/lib/fog/bluebox/requests/blb/get_lb_application.rb
index f37ff19..8bf1258 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_application.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_application.rb
@@ -27,7 +27,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_applications.rb b/lib/fog/bluebox/requests/blb/get_lb_applications.rb
index 5da65ee..86f740c 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_applications.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_applications.rb
@@ -25,7 +25,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_backend.rb b/lib/fog/bluebox/requests/blb/get_lb_backend.rb
index 7f20204..c24dc23 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_backend.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_backend.rb
@@ -30,7 +30,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_backends.rb b/lib/fog/bluebox/requests/blb/get_lb_backends.rb
index 12a8ab8..9eabd68 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_backends.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_backends.rb
@@ -30,7 +30,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_machine.rb b/lib/fog/bluebox/requests/blb/get_lb_machine.rb
index c04316d..2fc7b96 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_machine.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_machine.rb
@@ -29,7 +29,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_machines.rb b/lib/fog/bluebox/requests/blb/get_lb_machines.rb
index e0bb698..e9bb99d 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_machines.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_machines.rb
@@ -29,7 +29,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_service.rb b/lib/fog/bluebox/requests/blb/get_lb_service.rb
index 082d2f4..1b90c59 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_service.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_service.rb
@@ -30,7 +30,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/blb/get_lb_services.rb b/lib/fog/bluebox/requests/blb/get_lb_services.rb
index d5d36fd..141e00a 100644
--- a/lib/fog/bluebox/requests/blb/get_lb_services.rb
+++ b/lib/fog/bluebox/requests/blb/get_lb_services.rb
@@ -30,7 +30,6 @@ module Fog
 
       class Mock
       end
-
     end
   end
 end
diff --git a/lib/fog/bluebox/requests/compute/create_block.rb b/lib/fog/bluebox/requests/compute/create_block.rb
index 5ea7942..0070685 100644
--- a/lib/fog/bluebox/requests/compute/create_block.rb
+++ b/lib/fog/bluebox/requests/compute/create_block.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Create a new block
         #
         # ==== Parameters
@@ -19,8 +18,7 @@ module Fog
         # * response<~Excon::Response>:
         #   * body<~Hash>:
         def create_block(product_id, template_id, location_id, options = {})
-
-          unless options.has_key?('password') || options.has_key?('ssh_public_key')
+          unless options.key?('password') || options.key?('ssh_public_key')
             raise ArgumentError, 'Either password or public_key must be supplied'
           end
 
@@ -40,7 +38,6 @@ module Fog
             :body     => options.map {|k,v| "#{CGI.escape(k)}=#{CGI.escape(v)}"}.join('&')
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/create_template.rb b/lib/fog/bluebox/requests/compute/create_template.rb
index 9cbc7a4..9a3d12f 100644
--- a/lib/fog/bluebox/requests/compute/create_template.rb
+++ b/lib/fog/bluebox/requests/compute/create_template.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Create a template from block
         #
         # ==== Parameters
@@ -20,7 +19,6 @@ module Fog
             :query    => {'id' => block_id}.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/destroy_block.rb b/lib/fog/bluebox/requests/compute/destroy_block.rb
index 71b8efb..74b61e8 100644
--- a/lib/fog/bluebox/requests/compute/destroy_block.rb
+++ b/lib/fog/bluebox/requests/compute/destroy_block.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Destroy a block
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "api/blocks/#{block_id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/destroy_template.rb b/lib/fog/bluebox/requests/compute/destroy_template.rb
index b788e3b..8db1502 100644
--- a/lib/fog/bluebox/requests/compute/destroy_template.rb
+++ b/lib/fog/bluebox/requests/compute/destroy_template.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Create a template from block
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "api/block_templates/#{id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_block.rb b/lib/fog/bluebox/requests/compute/get_block.rb
index 9f718d3..65a36db 100644
--- a/lib/fog/bluebox/requests/compute/get_block.rb
+++ b/lib/fog/bluebox/requests/compute/get_block.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get details of a block.
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "api/blocks/#{block_id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_blocks.rb b/lib/fog/bluebox/requests/compute/get_blocks.rb
index 2b56b65..0b03c75 100644
--- a/lib/fog/bluebox/requests/compute/get_blocks.rb
+++ b/lib/fog/bluebox/requests/compute/get_blocks.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get list of blocks
         #
         # ==== Returns
@@ -21,7 +20,6 @@ module Fog
             :path     => 'api/blocks.json'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_location.rb b/lib/fog/bluebox/requests/compute/get_location.rb
index f08c40a..38af734 100644
--- a/lib/fog/bluebox/requests/compute/get_location.rb
+++ b/lib/fog/bluebox/requests/compute/get_location.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get details of a location
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "api/locations/#{location_id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_locations.rb b/lib/fog/bluebox/requests/compute/get_locations.rb
index e49cac4..d0cf3a2 100644
--- a/lib/fog/bluebox/requests/compute/get_locations.rb
+++ b/lib/fog/bluebox/requests/compute/get_locations.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get list of locations
         #
         # ==== Returns
@@ -17,7 +16,6 @@ module Fog
             :path     => 'api/locations.json'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_product.rb b/lib/fog/bluebox/requests/compute/get_product.rb
index ea47e8b..e47613c 100644
--- a/lib/fog/bluebox/requests/compute/get_product.rb
+++ b/lib/fog/bluebox/requests/compute/get_product.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get details of a product
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "api/block_products/#{product_id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_products.rb b/lib/fog/bluebox/requests/compute/get_products.rb
index 0eeac5f..bef1c0f 100644
--- a/lib/fog/bluebox/requests/compute/get_products.rb
+++ b/lib/fog/bluebox/requests/compute/get_products.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get list of products
         #
         # ==== Returns
@@ -18,7 +17,6 @@ module Fog
             :path     => 'api/block_products.json'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_template.rb b/lib/fog/bluebox/requests/compute/get_template.rb
index 10526be..44e47cc 100644
--- a/lib/fog/bluebox/requests/compute/get_template.rb
+++ b/lib/fog/bluebox/requests/compute/get_template.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get details of a template
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "api/block_templates/#{template_id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/get_templates.rb b/lib/fog/bluebox/requests/compute/get_templates.rb
index d5ad8d4..db19545 100644
--- a/lib/fog/bluebox/requests/compute/get_templates.rb
+++ b/lib/fog/bluebox/requests/compute/get_templates.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Get list of OS templates
         #
         # ==== Returns
@@ -19,7 +18,6 @@ module Fog
             :path     => 'api/block_templates.json'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/compute/reboot_block.rb b/lib/fog/bluebox/requests/compute/reboot_block.rb
index a3669a1..8cd74d2 100644
--- a/lib/fog/bluebox/requests/compute/reboot_block.rb
+++ b/lib/fog/bluebox/requests/compute/reboot_block.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Bluebox
       class Real
-
         # Reboot block
         #
         # ==== Parameters
@@ -20,7 +19,6 @@ module Fog
             :path     => "api/blocks/#{block_id}/#{'soft_' if type == 'SOFT'}reboot.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/create_record.rb b/lib/fog/bluebox/requests/dns/create_record.rb
index 05dc16c..cf17122 100644
--- a/lib/fog/bluebox/requests/dns/create_record.rb
+++ b/lib/fog/bluebox/requests/dns/create_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         require 'fog/bluebox/parsers/dns/create_record'
 
         # Create a new record in a DNS zone
@@ -33,15 +32,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}/records.xml"
           )
         end
-
       end
 
       class Mock
-
         def create_record(zone_id, type, name, content)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/create_zone.rb b/lib/fog/bluebox/requests/dns/create_zone.rb
index 8f5a6fe..ec6eff9 100644
--- a/lib/fog/bluebox/requests/dns/create_zone.rb
+++ b/lib/fog/bluebox/requests/dns/create_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         require 'fog/bluebox/parsers/dns/create_zone'
 
         # Create a new DNS zone
@@ -37,15 +36,12 @@ module Fog
             :path     => "/api/domains.xml"
           )
         end
-
       end
 
       class Mock
-
         def create_zone(options)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/delete_record.rb b/lib/fog/bluebox/requests/dns/delete_record.rb
index f604447..411ae00 100644
--- a/lib/fog/bluebox/requests/dns/delete_record.rb
+++ b/lib/fog/bluebox/requests/dns/delete_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         # Delete a record from the specified DNS zone
         # ==== Parameters
         # * record_id<~Integer> - Id of DNS record to delete
@@ -16,15 +15,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}/records/#{record_id}.xml"
           )
         end
-
       end
 
       class Mock
-
         def delete_record(zone_id, record_id)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/delete_zone.rb b/lib/fog/bluebox/requests/dns/delete_zone.rb
index b0882eb..18d88c7 100644
--- a/lib/fog/bluebox/requests/dns/delete_zone.rb
+++ b/lib/fog/bluebox/requests/dns/delete_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         # Delete a zone from DNS
         # ==== Parameters
         # * zone_id<~Integer> - Id of zone to delete
@@ -16,15 +15,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}.xml"
           )
         end
-
       end
 
       class Mock
-
         def delete_zone(zone_id)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/get_record.rb b/lib/fog/bluebox/requests/dns/get_record.rb
index 82609b0..33840f4 100644
--- a/lib/fog/bluebox/requests/dns/get_record.rb
+++ b/lib/fog/bluebox/requests/dns/get_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         require 'fog/bluebox/parsers/dns/get_record'
 
         # Get an individual DNS record from the specified zone
@@ -25,15 +24,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}/records/#{record_id}.xml"
           )
         end
-
       end
 
       class Mock
-
         def get_record(record_id)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/get_records.rb b/lib/fog/bluebox/requests/dns/get_records.rb
index 82d29ef..f2c11ab 100644
--- a/lib/fog/bluebox/requests/dns/get_records.rb
+++ b/lib/fog/bluebox/requests/dns/get_records.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         require 'fog/bluebox/parsers/dns/get_records'
 
         # Get all the DNS records across all the DNS zones for this account
@@ -26,15 +25,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}/records.xml"
           )
         end
-
       end
 
       class Mock
-
         def get_records
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/get_zone.rb b/lib/fog/bluebox/requests/dns/get_zone.rb
index 815319a..9be1a34 100644
--- a/lib/fog/bluebox/requests/dns/get_zone.rb
+++ b/lib/fog/bluebox/requests/dns/get_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         require 'fog/bluebox/parsers/dns/get_zone'
 
         # Get details of a DNS zone
@@ -29,15 +28,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}.xml"
           )
         end
-
       end
 
       class Mock
-
         def get_zone(zone_id)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/get_zones.rb b/lib/fog/bluebox/requests/dns/get_zones.rb
index 0035ee2..e43bc36 100644
--- a/lib/fog/bluebox/requests/dns/get_zones.rb
+++ b/lib/fog/bluebox/requests/dns/get_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         require 'fog/bluebox/parsers/dns/get_zones'
 
         # Get list of all DNS zones hosted on Bluebox (for this account)
@@ -28,15 +27,12 @@ module Fog
             :path     => '/api/domains.xml'
           )
         end
-
       end
 
       class Mock
-
         def get_zones
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/update_record.rb b/lib/fog/bluebox/requests/dns/update_record.rb
index b69c8d6..7704351 100644
--- a/lib/fog/bluebox/requests/dns/update_record.rb
+++ b/lib/fog/bluebox/requests/dns/update_record.rb
@@ -2,7 +2,6 @@ module Fog
   module Bluebox
     class DNS
       class Real
-
         # Updates an existing record in a DNS zone
         # ==== Parameters
         # * type<~String> - type of DNS record (A, CNAME, etc)
@@ -19,15 +18,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}/records/#{record_id}.xml"
           )
         end
-
       end
 
       class Mock
-
         def create_record(zone_id, type, domain, content)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/bluebox/requests/dns/update_zone.rb b/lib/fog/bluebox/requests/dns/update_zone.rb
index aaab907..4d3e4b4 100644
--- a/lib/fog/bluebox/requests/dns/update_zone.rb
+++ b/lib/fog/bluebox/requests/dns/update_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Bluebox
       class Real
-
         # Updates an existing DNS zone
         def update_zone(zone_id, options)
           body = %Q{<?xml version="1.0" encoding="UTF-8"?><domain>}
@@ -15,15 +14,12 @@ module Fog
             :path     => "/api/domains/#{zone_id}.xml"
           )
         end
-
       end
 
       class Mock
-
         def create_record(zone_id, type, domain, content)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/compute.rb b/lib/fog/clodo/compute.rb
index e415502..4be4d21 100644
--- a/lib/fog/clodo/compute.rb
+++ b/lib/fog/clodo/compute.rb
@@ -3,7 +3,6 @@ require 'fog/clodo/core'
 module Fog
   module Compute
     class Clodo < Fog::Service
-
       requires :clodo_api_key, :clodo_username
       recognizes :clodo_auth_url, :persistent
       recognizes :clodo_auth_token, :clodo_management_url
@@ -40,7 +39,6 @@ module Fog
       # request :update_server
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -69,11 +67,9 @@ module Fog
         def reset_data
           self.class.data.delete(@clodo_username)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @clodo_api_key = options[:clodo_api_key]
           @clodo_username = options[:clodo_username]
@@ -145,7 +141,6 @@ module Fog
           @port   = uri.port
           @scheme = uri.scheme
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/core.rb b/lib/fog/clodo/core.rb
index 099ded5..1e57607 100644
--- a/lib/fog/clodo/core.rb
+++ b/lib/fog/clodo/core.rb
@@ -3,7 +3,6 @@ require 'fog/json'
 
 module Fog
   module Clodo
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
@@ -29,7 +28,6 @@ module Fog
       response.headers.reject do |key, value|
         !['X-Server-Management-Url', 'X-Storage-Url', 'X-CDN-Management-Url', 'X-Auth-Token'].include?(key)
       end
-
     end # authenticate
   end # module Clodo
 end # module Fog
diff --git a/lib/fog/clodo/models/compute/image.rb b/lib/fog/clodo/models/compute/image.rb
index c0ac0db..c6f55bd 100644
--- a/lib/fog/clodo/models/compute/image.rb
+++ b/lib/fog/clodo/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Clodo
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -23,9 +21,7 @@ module Fog
         def ready?
           status == 'ACTIVE'
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/clodo/models/compute/images.rb b/lib/fog/clodo/models/compute/images.rb
index 0479f83..d491485 100644
--- a/lib/fog/clodo/models/compute/images.rb
+++ b/lib/fog/clodo/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/clodo/models/compute/image'
 module Fog
   module Compute
     class Clodo
-
       class Images < Fog::Collection
-
         model Fog::Compute::Clodo::Image
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::Clodo::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/clodo/models/compute/server.rb b/lib/fog/clodo/models/compute/server.rb
index b6d8345..78342ac 100644
--- a/lib/fog/clodo/models/compute/server.rb
+++ b/lib/fog/clodo/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Clodo
-
       class Server < Fog::Compute::Server
-
         identity :id
 
         attribute :addresses
@@ -117,10 +115,7 @@ module Fog
         end
 
         private
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/clodo/models/compute/servers.rb b/lib/fog/clodo/models/compute/servers.rb
index 14da86a..988c6d8 100644
--- a/lib/fog/clodo/models/compute/servers.rb
+++ b/lib/fog/clodo/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/clodo/models/compute/server'
 module Fog
   module Compute
     class Clodo
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Clodo::Server
 
         def all
@@ -28,9 +26,7 @@ module Fog
         rescue Fog::Compute::Clodo::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/clodo/requests/compute/add_ip_address.rb b/lib/fog/clodo/requests/compute/add_ip_address.rb
index e2bb496..76725ff 100644
--- a/lib/fog/clodo/requests/compute/add_ip_address.rb
+++ b/lib/fog/clodo/requests/compute/add_ip_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # Bye new IP-address for specified server
         # ==== Paramaters
         # * server_id<~Integer> - Id of server to bye IP for
@@ -22,7 +21,6 @@ module Fog
 
       class Mock
         def add_ip_address(server_id)
-
           raise Excon::Errors::BadRequest.new(
                                               "Invalid image ID"
                                               ) unless server_id > 0
diff --git a/lib/fog/clodo/requests/compute/create_server.rb b/lib/fog/clodo/requests/compute/create_server.rb
index cedfd5f..dcc9887 100644
--- a/lib/fog/clodo/requests/compute/create_server.rb
+++ b/lib/fog/clodo/requests/compute/create_server.rb
@@ -35,13 +35,11 @@ module Fog
                   :method   => 'POST',
                   :path     => 'servers'
                   )
-
         end
       end
 
       class Mock
         def create_server(image_id, options = {})
-
           raise Excon::Errors::BadRequest.new("Invalid image ID") unless image_id > 0
 
           response = Excon::Response.new
@@ -109,4 +107,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/clodo/requests/compute/delete_ip_address.rb b/lib/fog/clodo/requests/compute/delete_ip_address.rb
index b2fc4d1..4d5a3d1 100644
--- a/lib/fog/clodo/requests/compute/delete_ip_address.rb
+++ b/lib/fog/clodo/requests/compute/delete_ip_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # Delete IP-address from specified server
         # ==== Paramaters
         # * server_id<~Integer> - Id of server to delete IP from
@@ -26,7 +25,6 @@ module Fog
 
       class Mock
         def delete_ip_address(server_id, ip)
-
           server = self.data[:servers][server_id]
 
           raise Excon::Errors::BadRequest.new "Server not found" unless server
diff --git a/lib/fog/clodo/requests/compute/delete_server.rb b/lib/fog/clodo/requests/compute/delete_server.rb
index 0101ea6..314f456 100644
--- a/lib/fog/clodo/requests/compute/delete_server.rb
+++ b/lib/fog/clodo/requests/compute/delete_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # Delete an existing server
         #
         # ==== Parameters
@@ -15,15 +14,13 @@ module Fog
             :path   => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_server(server_id)
           response = Excon::Response.new
 
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'].to_i == server_id }
+          if server = list_servers_detail.body['servers'].find {|_| _['id'].to_i == server_id }
             if server['status'] == 'is_install'
               response.status = 405
               raise(Excon::Errors.status_error({:expects => 204}, response))
@@ -37,7 +34,6 @@ module Fog
             raise Fog::Compute::Clodo::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/requests/compute/get_server_details.rb b/lib/fog/clodo/requests/compute/get_server_details.rb
index 83a33ee..bb7a0a9 100644
--- a/lib/fog/clodo/requests/compute/get_server_details.rb
+++ b/lib/fog/clodo/requests/compute/get_server_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # Get details about a server
         #
         # ==== Parameters
@@ -26,14 +25,12 @@ module Fog
             :path     => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_server_details(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == "#{server_id}"}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == "#{server_id}"}
             response.status = [200, 203][rand(1)]
             response.body = { 'server' => server }
             response.body['server']['id'] = server['id'].to_i
@@ -42,7 +39,6 @@ module Fog
             raise Fog::Compute::Clodo::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/requests/compute/list_images.rb b/lib/fog/clodo/requests/compute/list_images.rb
index c03e032..1015e34 100644
--- a/lib/fog/clodo/requests/compute/list_images.rb
+++ b/lib/fog/clodo/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # List all images (IDs and names only)
         #
         # ==== Returns
@@ -19,11 +18,9 @@ module Fog
                   :path     => 'images'
                   )
         end
-
       end
 
       class Mock
-
         def list_images
           response = Excon::Response.new
           response.status = 200
@@ -41,7 +38,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/requests/compute/list_images_detail.rb b/lib/fog/clodo/requests/compute/list_images_detail.rb
index 5c04ee4..a434dac 100644
--- a/lib/fog/clodo/requests/compute/list_images_detail.rb
+++ b/lib/fog/clodo/requests/compute/list_images_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # List all images
         #
         # ==== Returns
@@ -24,11 +23,9 @@ module Fog
                   :path     => 'images/detail'
                   )
         end
-
       end
 
       class Mock
-
         def list_images_detail
           response = Excon::Response.new
           response.status = 200
@@ -54,7 +51,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/requests/compute/list_servers.rb b/lib/fog/clodo/requests/compute/list_servers.rb
index 7342f76..c4f6178 100644
--- a/lib/fog/clodo/requests/compute/list_servers.rb
+++ b/lib/fog/clodo/requests/compute/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # List all servers (IDs and names only)
         #
         # ==== Returns
@@ -27,11 +26,9 @@ module Fog
             :path     => 'servers'
           )
         end
-
       end
 
       class Mock
-
         def list_servers
           response = Excon::Response.new
           data = list_servers_detail.body['servers']
@@ -43,7 +40,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/requests/compute/list_servers_detail.rb b/lib/fog/clodo/requests/compute/list_servers_detail.rb
index e64bda0..3222bf0 100644
--- a/lib/fog/clodo/requests/compute/list_servers_detail.rb
+++ b/lib/fog/clodo/requests/compute/list_servers_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # List all servers details
         #
         # ==== Returns
@@ -22,11 +21,9 @@ module Fog
             :path     => 'servers/detail'
           )
         end
-
       end
 
       class Mock
-
         def list_servers_detail
           response = Excon::Response.new
 
@@ -44,7 +41,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/clodo/requests/compute/move_ip_address.rb b/lib/fog/clodo/requests/compute/move_ip_address.rb
index c35f9e4..937d415 100644
--- a/lib/fog/clodo/requests/compute/move_ip_address.rb
+++ b/lib/fog/clodo/requests/compute/move_ip_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Clodo
       class Real
-
         # Move IP-address to specified server.
         # ==== Paramaters
         # * server_id<~Integer> - Id of server to move IP to
diff --git a/lib/fog/clodo/requests/compute/server_action.rb b/lib/fog/clodo/requests/compute/server_action.rb
index f9227c4..a5f2b47 100644
--- a/lib/fog/clodo/requests/compute/server_action.rb
+++ b/lib/fog/clodo/requests/compute/server_action.rb
@@ -12,7 +12,6 @@ module Fog
       end
       class Mock
         def server_action(id, action)
-
           raise Excon::Errors::BadRequest.new("Invalid server id #{id}.") unless id > 0
 
           response = Excon::Response.new
diff --git a/lib/fog/cloudsigma/compute.rb b/lib/fog/cloudsigma/compute.rb
index d231b52..1e47a66 100644
--- a/lib/fog/cloudsigma/compute.rb
+++ b/lib/fog/cloudsigma/compute.rb
@@ -79,7 +79,6 @@ module Fog
       model :pricing
       request :get_pricing
 
-
       module CommonMockAndReal
         def initialize(options={})
           @init_options = options
@@ -107,7 +106,6 @@ module Fog
         def currency
           # Cache since currency does not change
           @currency ||= profile.currency
-
         end
 
         def pricing
@@ -135,7 +133,7 @@ module Fog
           current_prices = resp.body['objects']
 
           current_pricing_pairs = current_levels.map do |resource, level|
-            price_for_resource_and_level = current_prices.detect do |price|
+            price_for_resource_and_level = current_prices.find do |price|
               price['resource'] == resource
             end
             price_for_resource_and_level ||= {}
@@ -153,7 +151,7 @@ module Fog
           current_prices = resp.body['objects']
 
           current_pricing_pairs = current_levels.map do |resource, level|
-            price_for_resource_and_level = current_prices.detect do |price|
+            price_for_resource_and_level = current_prices.find do |price|
               price['level'] == level && price['resource'] == resource
             end
             price_for_resource_and_level ||= {}
@@ -171,7 +169,7 @@ module Fog
           current_prices = resp.body['objects']
 
           current_pricing_pairs = current_levels.map do |resource, level|
-            price_for_resource_and_level = current_prices.detect do |price|
+            price_for_resource_and_level = current_prices.find do |price|
               price['level'] == level && price['resource'] == resource
             end
             price_for_resource_and_level ||= {}
@@ -181,7 +179,6 @@ module Fog
 
           Pricing.new(Hash[current_pricing_pairs])
         end
-
       end
 
       class Mock
@@ -216,10 +213,7 @@ module Fog
         include Collections
         include CommonMockAndReal
         include Fog::CloudSigma::CloudSigmaConnection::Real
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/cloudsigma/connection.rb b/lib/fog/cloudsigma/connection.rb
index c9211d4..ec36a2f 100644
--- a/lib/fog/cloudsigma/connection.rb
+++ b/lib/fog/cloudsigma/connection.rb
@@ -3,7 +3,6 @@ require 'fog/cloudsigma/error'
 module Fog
   module CloudSigma
     module CloudSigmaConnection
-
       module Real
         def auth_header(type = :basic)
           case type
@@ -47,7 +46,6 @@ module Fog
           req_path = params[:path]
           params[:path] = "#{@path_prefix}#{req_path}"
 
-
           params[:body] = Fog::JSON.encode(params[:body]) if params[:body]
 
           begin
@@ -113,7 +111,6 @@ module Fog
         def setup_connection(options)
           @username = options[:cloudsigma_username]
           @password = options[:cloudsigma_password]
-
         end
 
         def mock_get(obj_or_collection, status, key=nil)
@@ -189,9 +186,7 @@ module Fog
 
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/error.rb b/lib/fog/cloudsigma/error.rb
index 8ed7b73..c12a379 100644
--- a/lib/fog/cloudsigma/error.rb
+++ b/lib/fog/cloudsigma/error.rb
@@ -9,7 +9,6 @@ module Fog
           @error_point = error_point
           super(message)
         end
-
       end
 
       class NotFound < Error; end
@@ -35,11 +34,6 @@ module Fog
         new_error.verbose = error.message
         new_error
       end
-
-
-
     end
-
-
   end
 end
diff --git a/lib/fog/cloudsigma/mock_data.rb b/lib/fog/cloudsigma/mock_data.rb
index ca1a979..e51f1ee 100644
--- a/lib/fog/cloudsigma/mock_data.rb
+++ b/lib/fog/cloudsigma/mock_data.rb
@@ -37,7 +37,6 @@ module Fog
               :current_usage => {},
               :balance => {:balance => 100, :currency => 'CHF'},
 
-
           }
         end
       end
diff --git a/lib/fog/cloudsigma/models/fwpolicies.rb b/lib/fog/cloudsigma/models/fwpolicies.rb
index 0ee5d89..7d3c9e2 100644
--- a/lib/fog/cloudsigma/models/fwpolicies.rb
+++ b/lib/fog/cloudsigma/models/fwpolicies.rb
@@ -12,10 +12,7 @@ module Fog
           data = resp.body['objects']
           load(data)
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/models/fwpolicy.rb b/lib/fog/cloudsigma/models/fwpolicy.rb
index 9d50c1f..240a94e 100644
--- a/lib/fog/cloudsigma/models/fwpolicy.rb
+++ b/lib/fog/cloudsigma/models/fwpolicy.rb
@@ -14,8 +14,6 @@ module Fog
         attribute :servers, :type => :array
         model_attribute_array :rules, Rule
       end
-
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/models/ip.rb b/lib/fog/cloudsigma/models/ip.rb
index a50053d..4874e73 100644
--- a/lib/fog/cloudsigma/models/ip.rb
+++ b/lib/fog/cloudsigma/models/ip.rb
@@ -14,8 +14,6 @@ module Fog
         attribute :subscription
         attribute :gateway, :type => :string
         attribute :resource_uri, :type => :string
-
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/ips.rb b/lib/fog/cloudsigma/models/ips.rb
index cfb7906..d8b6f75 100644
--- a/lib/fog/cloudsigma/models/ips.rb
+++ b/lib/fog/cloudsigma/models/ips.rb
@@ -20,7 +20,6 @@ module Fog
         rescue Fog::CloudSigma::Errors::NotFound
           return nil
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/lib_volume.rb b/lib/fog/cloudsigma/models/lib_volume.rb
index 93ad12e..b44ffca 100644
--- a/lib/fog/cloudsigma/models/lib_volume.rb
+++ b/lib/fog/cloudsigma/models/lib_volume.rb
@@ -6,7 +6,7 @@ module Fog
       class LibVolume < Fog::Model
         identity :uuid
 
-        attribute :mounted_on, :type => :related
+        attribute :mounted_on
         attribute :licenses
         attribute :meta
         attribute :owner
@@ -31,8 +31,6 @@ module Fog
         attribute :os, :type => :string
         attribute :resource_uri, :type => :string
 
-
-
         def reload
           requires :identity
           collection.get(identity)
diff --git a/lib/fog/cloudsigma/models/lib_volumes.rb b/lib/fog/cloudsigma/models/lib_volumes.rb
index 7578ab9..64dfcab 100644
--- a/lib/fog/cloudsigma/models/lib_volumes.rb
+++ b/lib/fog/cloudsigma/models/lib_volumes.rb
@@ -20,7 +20,6 @@ module Fog
         rescue Fog::CloudSigma::Errors::NotFound
           return nil
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/mountpoint.rb b/lib/fog/cloudsigma/models/mountpoint.rb
index 3718cd4..d3e39fa 100644
--- a/lib/fog/cloudsigma/models/mountpoint.rb
+++ b/lib/fog/cloudsigma/models/mountpoint.rb
@@ -18,7 +18,7 @@ module Fog
         def drive=(new_drive)
           attributes[:drive] = new_drive
         end
-        alias :volume :drive
+        alias_method :volume, :drive
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/nic.rb b/lib/fog/cloudsigma/models/nic.rb
index bb06e30..6fbd889 100644
--- a/lib/fog/cloudsigma/models/nic.rb
+++ b/lib/fog/cloudsigma/models/nic.rb
@@ -2,13 +2,10 @@ require 'fog/core/model'
 require 'fog/cloudsigma/nested_model'
 require 'fog/cloudsigma/models/ipconf'
 
-
 module Fog
   module Compute
     class CloudSigma
       class Nic < Fog::CloudSigma::CloudsigmaModel
-
-
         attribute :boot_order
         attribute :mac, :type => :string
         attribute :model, :type => :string
@@ -16,7 +13,6 @@ module Fog
         attribute :firewall_policy
         model_attribute :ip_v4_conf, IPConf
         model_attribute :ip_v6_conf, IPConf
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/price_record.rb b/lib/fog/cloudsigma/models/price_record.rb
index 0e4e1c6..71d957f 100644
--- a/lib/fog/cloudsigma/models/price_record.rb
+++ b/lib/fog/cloudsigma/models/price_record.rb
@@ -31,7 +31,6 @@ module Fog
         def base_price
           price / multiplier
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/pricing.rb b/lib/fog/cloudsigma/models/pricing.rb
index 4185fe1..06a119f 100644
--- a/lib/fog/cloudsigma/models/pricing.rb
+++ b/lib/fog/cloudsigma/models/pricing.rb
@@ -13,7 +13,6 @@ module Fog
         model_attribute :ssd, PriceRecord
         model_attribute :tx, PriceRecord
         model_attribute :vlan, PriceRecord
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/profile.rb b/lib/fog/cloudsigma/models/profile.rb
index 9e75de8..270d98e 100644
--- a/lib/fog/cloudsigma/models/profile.rb
+++ b/lib/fog/cloudsigma/models/profile.rb
@@ -32,7 +32,6 @@ module Fog
         attribute :country, :type => :string
         attribute :postcode, :type => :string
 
-
         def save
           update
         end
@@ -43,7 +42,6 @@ module Fog
 
           self
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/rule.rb b/lib/fog/cloudsigma/models/rule.rb
index da91086..fdc48c1 100644
--- a/lib/fog/cloudsigma/models/rule.rb
+++ b/lib/fog/cloudsigma/models/rule.rb
@@ -12,10 +12,7 @@ module Fog
         attribute :ip_proto, :type => :string
         attribute :src_ip, :type => :string
         attribute :src_port, :type => :string
-
-
       end
     end
   end
 end
-
diff --git a/lib/fog/cloudsigma/models/server.rb b/lib/fog/cloudsigma/models/server.rb
index c29c39f..efe6ee7 100644
--- a/lib/fog/cloudsigma/models/server.rb
+++ b/lib/fog/cloudsigma/models/server.rb
@@ -6,8 +6,6 @@ module Fog
   module Compute
     class CloudSigma
       class Server < Fog::CloudSigma::CloudsigmaModel
-
-
         identity :uuid
 
         attribute :status, :type => :string
@@ -28,7 +26,6 @@ module Fog
         model_attribute_array :volumes, MountPoint, :aliases => 'drives'
         model_attribute_array :nics, Nic
 
-
         def save
           if persisted?
             update
@@ -54,7 +51,6 @@ module Fog
           response = service.update_server(identity, data)
           new_attributes = response.body
           merge_attributes(new_attributes)
-
         end
 
         def destroy
@@ -64,7 +60,7 @@ module Fog
           true
         end
 
-        alias :delete :destroy
+        alias_method :delete, :destroy
 
         def start(start_params={})
           requires :identity
@@ -126,7 +122,6 @@ module Fog
             end
           end
 
-
           vol_id = volume.kind_of?(String) ? volume : volume.identity
           mountpoint_data = {
               'drive' => vol_id,
diff --git a/lib/fog/cloudsigma/models/servers.rb b/lib/fog/cloudsigma/models/servers.rb
index eb68fac..5c8a3e1 100644
--- a/lib/fog/cloudsigma/models/servers.rb
+++ b/lib/fog/cloudsigma/models/servers.rb
@@ -20,7 +20,6 @@ module Fog
         rescue Fog::CloudSigma::Errors::NotFound
           return nil
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/subscription.rb b/lib/fog/cloudsigma/models/subscription.rb
index 6086527..4025c22 100644
--- a/lib/fog/cloudsigma/models/subscription.rb
+++ b/lib/fog/cloudsigma/models/subscription.rb
@@ -46,7 +46,6 @@ module Fog
 
           self.class.new(response.body)
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/vlan.rb b/lib/fog/cloudsigma/models/vlan.rb
index 19290ef..be34834 100644
--- a/lib/fog/cloudsigma/models/vlan.rb
+++ b/lib/fog/cloudsigma/models/vlan.rb
@@ -22,7 +22,7 @@ module Fog
           merge_attributes(new_attributes)
         end
 
-        alias :save :update
+        alias_method :save, :update
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/vlans.rb b/lib/fog/cloudsigma/models/vlans.rb
index b5f67aa..ff500cd 100644
--- a/lib/fog/cloudsigma/models/vlans.rb
+++ b/lib/fog/cloudsigma/models/vlans.rb
@@ -20,7 +20,6 @@ module Fog
         rescue Fog::CloudSigma::Errors::NotFound
           return nil
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/models/volume.rb b/lib/fog/cloudsigma/models/volume.rb
index 8072cea..3141085 100644
--- a/lib/fog/cloudsigma/models/volume.rb
+++ b/lib/fog/cloudsigma/models/volume.rb
@@ -20,7 +20,6 @@ module Fog
         attribute :size, :type => :integer
         attribute :resource_uri, :type => :string
 
-
         def save
           if persisted?
             update
@@ -46,7 +45,6 @@ module Fog
           response = service.update_volume(identity, data)
           new_attributes = response.body
           merge_attributes(new_attributes)
-
         end
 
         def destroy
@@ -57,7 +55,7 @@ module Fog
           true
         end
 
-        alias :delete :destroy
+        alias_method :delete, :destroy
 
         def clone(clone_params={})
           requires :identity
diff --git a/lib/fog/cloudsigma/models/volumes.rb b/lib/fog/cloudsigma/models/volumes.rb
index 40881e4..2aae678 100644
--- a/lib/fog/cloudsigma/models/volumes.rb
+++ b/lib/fog/cloudsigma/models/volumes.rb
@@ -20,7 +20,6 @@ module Fog
         rescue Fog::CloudSigma::Errors::NotFound
           return nil
         end
-
       end
     end
   end
diff --git a/lib/fog/cloudsigma/requests/calculate_subscription_price.rb b/lib/fog/cloudsigma/requests/calculate_subscription_price.rb
index bd2cfcc..d7acbfc 100644
--- a/lib/fog/cloudsigma/requests/calculate_subscription_price.rb
+++ b/lib/fog/cloudsigma/requests/calculate_subscription_price.rb
@@ -9,10 +9,8 @@ module Fog
 
       class Mock
         def calculate_subscription_price(data)
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/clone_libvolume.rb b/lib/fog/cloudsigma/requests/clone_libvolume.rb
index 40d6622..d4049f7 100644
--- a/lib/fog/cloudsigma/requests/clone_libvolume.rb
+++ b/lib/fog/cloudsigma/requests/clone_libvolume.rb
@@ -26,7 +26,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/clone_server.rb b/lib/fog/cloudsigma/requests/clone_server.rb
index da985f7..cb0f722 100644
--- a/lib/fog/cloudsigma/requests/clone_server.rb
+++ b/lib/fog/cloudsigma/requests/clone_server.rb
@@ -26,7 +26,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/clone_volume.rb b/lib/fog/cloudsigma/requests/clone_volume.rb
index 3a647b9..69c717e 100644
--- a/lib/fog/cloudsigma/requests/clone_volume.rb
+++ b/lib/fog/cloudsigma/requests/clone_volume.rb
@@ -26,7 +26,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/close_vnc.rb b/lib/fog/cloudsigma/requests/close_vnc.rb
index e98e58a..a9e4711 100644
--- a/lib/fog/cloudsigma/requests/close_vnc.rb
+++ b/lib/fog/cloudsigma/requests/close_vnc.rb
@@ -24,7 +24,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/create_server.rb b/lib/fog/cloudsigma/requests/create_server.rb
index 2e8ac5a..5558150 100644
--- a/lib/fog/cloudsigma/requests/create_server.rb
+++ b/lib/fog/cloudsigma/requests/create_server.rb
@@ -23,11 +23,9 @@ module Fog
                       'tags' => []
           }
 
-
           mock_create(:servers, 202, data, uuid, defaults)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/create_subscription.rb b/lib/fog/cloudsigma/requests/create_subscription.rb
index 8022350..405a8d8 100644
--- a/lib/fog/cloudsigma/requests/create_subscription.rb
+++ b/lib/fog/cloudsigma/requests/create_subscription.rb
@@ -9,7 +9,6 @@ module Fog
 
       class Mock
         def create_subscription(data)
-
           if data[:period] != '1 month' || data[:start_time] || data[:end_time]
             raise Fog::Errors::MockNotImplemented.new('Currently only mocks for subscriptions with period 1 month from now are implemented as mock')
           end
@@ -34,7 +33,6 @@ module Fog
           mock_create(:subscriptions, 200, data, id, defaults)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/create_volume.rb b/lib/fog/cloudsigma/requests/create_volume.rb
index 185d5b7..56072ef 100644
--- a/lib/fog/cloudsigma/requests/create_volume.rb
+++ b/lib/fog/cloudsigma/requests/create_volume.rb
@@ -24,7 +24,6 @@ module Fog
           mock_create(:volumes, 202, data, uuid, defaults)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/delete_server.rb b/lib/fog/cloudsigma/requests/delete_server.rb
index c6e3a39..d3c6d5d 100644
--- a/lib/fog/cloudsigma/requests/delete_server.rb
+++ b/lib/fog/cloudsigma/requests/delete_server.rb
@@ -12,7 +12,6 @@ module Fog
           mock_delete(:servers, 204, server_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/delete_volume.rb b/lib/fog/cloudsigma/requests/delete_volume.rb
index f54f8f0..04c7b23 100644
--- a/lib/fog/cloudsigma/requests/delete_volume.rb
+++ b/lib/fog/cloudsigma/requests/delete_volume.rb
@@ -12,7 +12,6 @@ module Fog
           mock_delete(:volumes, 204, vol_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/extend_subscription.rb b/lib/fog/cloudsigma/requests/extend_subscription.rb
index 87c7d43..3809316 100644
--- a/lib/fog/cloudsigma/requests/extend_subscription.rb
+++ b/lib/fog/cloudsigma/requests/extend_subscription.rb
@@ -13,10 +13,8 @@ module Fog
 
       class Mock
         def extend_subscription(sub_id, data)
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_balance.rb b/lib/fog/cloudsigma/requests/get_balance.rb
index 0ffa2af..60d364b 100644
--- a/lib/fog/cloudsigma/requests/get_balance.rb
+++ b/lib/fog/cloudsigma/requests/get_balance.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:balance,  200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_current_usage.rb b/lib/fog/cloudsigma/requests/get_current_usage.rb
index 31c78e7..4f5f49a 100644
--- a/lib/fog/cloudsigma/requests/get_current_usage.rb
+++ b/lib/fog/cloudsigma/requests/get_current_usage.rb
@@ -9,10 +9,8 @@ module Fog
 
       class Mock
         def get_current_usage
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_ip.rb b/lib/fog/cloudsigma/requests/get_ip.rb
index 58d065b..5e681a3 100644
--- a/lib/fog/cloudsigma/requests/get_ip.rb
+++ b/lib/fog/cloudsigma/requests/get_ip.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:ips, 200, ip)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_lib_volume.rb b/lib/fog/cloudsigma/requests/get_lib_volume.rb
index 6d08787..d6dcb5d 100644
--- a/lib/fog/cloudsigma/requests/get_lib_volume.rb
+++ b/lib/fog/cloudsigma/requests/get_lib_volume.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:libvolumes, 200, vol_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_pricing.rb b/lib/fog/cloudsigma/requests/get_pricing.rb
index 20e1e9b..fab5742 100644
--- a/lib/fog/cloudsigma/requests/get_pricing.rb
+++ b/lib/fog/cloudsigma/requests/get_pricing.rb
@@ -22,7 +22,6 @@ module Fog
           mock_get(:pricing,  200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_profile.rb b/lib/fog/cloudsigma/requests/get_profile.rb
index 5b6bf67..504f9b1 100644
--- a/lib/fog/cloudsigma/requests/get_profile.rb
+++ b/lib/fog/cloudsigma/requests/get_profile.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:profile,  200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_server.rb b/lib/fog/cloudsigma/requests/get_server.rb
index 39b5026..8219cad 100644
--- a/lib/fog/cloudsigma/requests/get_server.rb
+++ b/lib/fog/cloudsigma/requests/get_server.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:servers, 200, server_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_subscription.rb b/lib/fog/cloudsigma/requests/get_subscription.rb
index bd4ff45..c8db78a 100644
--- a/lib/fog/cloudsigma/requests/get_subscription.rb
+++ b/lib/fog/cloudsigma/requests/get_subscription.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:subscriptions, 200, sub_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_vlan.rb b/lib/fog/cloudsigma/requests/get_vlan.rb
index 93d7e24..70dfdea 100644
--- a/lib/fog/cloudsigma/requests/get_vlan.rb
+++ b/lib/fog/cloudsigma/requests/get_vlan.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:vlans, 200, vlan)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/get_volume.rb b/lib/fog/cloudsigma/requests/get_volume.rb
index deeefeb..cf24cb2 100644
--- a/lib/fog/cloudsigma/requests/get_volume.rb
+++ b/lib/fog/cloudsigma/requests/get_volume.rb
@@ -12,7 +12,6 @@ module Fog
           mock_get(:volumes, 200, vol_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_fwpolicies.rb b/lib/fog/cloudsigma/requests/list_fwpolicies.rb
index ee13ad4..4199a71 100644
--- a/lib/fog/cloudsigma/requests/list_fwpolicies.rb
+++ b/lib/fog/cloudsigma/requests/list_fwpolicies.rb
@@ -12,7 +12,6 @@ module Fog
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_ips.rb b/lib/fog/cloudsigma/requests/list_ips.rb
index a03f119..2a25ff6 100644
--- a/lib/fog/cloudsigma/requests/list_ips.rb
+++ b/lib/fog/cloudsigma/requests/list_ips.rb
@@ -12,7 +12,6 @@ module Fog
           mock_list(:ips, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_lib_volumes.rb b/lib/fog/cloudsigma/requests/list_lib_volumes.rb
index d782ace..74beb36 100644
--- a/lib/fog/cloudsigma/requests/list_lib_volumes.rb
+++ b/lib/fog/cloudsigma/requests/list_lib_volumes.rb
@@ -12,7 +12,6 @@ module Fog
           mock_list(:libvolumes, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_servers.rb b/lib/fog/cloudsigma/requests/list_servers.rb
index 942ec7d..b7f9956 100644
--- a/lib/fog/cloudsigma/requests/list_servers.rb
+++ b/lib/fog/cloudsigma/requests/list_servers.rb
@@ -12,7 +12,6 @@ module Fog
           mock_list(:servers, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_subscriptions.rb b/lib/fog/cloudsigma/requests/list_subscriptions.rb
index ccb5355..3deadce 100644
--- a/lib/fog/cloudsigma/requests/list_subscriptions.rb
+++ b/lib/fog/cloudsigma/requests/list_subscriptions.rb
@@ -12,7 +12,6 @@ module Fog
           mock_list(:subscriptions, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_vlans.rb b/lib/fog/cloudsigma/requests/list_vlans.rb
index f49b788..2a5b93d 100644
--- a/lib/fog/cloudsigma/requests/list_vlans.rb
+++ b/lib/fog/cloudsigma/requests/list_vlans.rb
@@ -12,7 +12,6 @@ module Fog
           mock_list(:vlans, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/list_volumes.rb b/lib/fog/cloudsigma/requests/list_volumes.rb
index b26998b..8ac6e8b 100644
--- a/lib/fog/cloudsigma/requests/list_volumes.rb
+++ b/lib/fog/cloudsigma/requests/list_volumes.rb
@@ -12,7 +12,6 @@ module Fog
           mock_list(:volumes, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/open_vnc.rb b/lib/fog/cloudsigma/requests/open_vnc.rb
index 831d9b4..a64a8cd 100644
--- a/lib/fog/cloudsigma/requests/open_vnc.rb
+++ b/lib/fog/cloudsigma/requests/open_vnc.rb
@@ -28,7 +28,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/start_server.rb b/lib/fog/cloudsigma/requests/start_server.rb
index 740502d..a8f62c7 100644
--- a/lib/fog/cloudsigma/requests/start_server.rb
+++ b/lib/fog/cloudsigma/requests/start_server.rb
@@ -26,7 +26,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/stop_server.rb b/lib/fog/cloudsigma/requests/stop_server.rb
index e13f4c5..5356764 100644
--- a/lib/fog/cloudsigma/requests/stop_server.rb
+++ b/lib/fog/cloudsigma/requests/stop_server.rb
@@ -23,11 +23,9 @@ module Fog
               'uuid' => server_id
           }
 
-
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/update_profile.rb b/lib/fog/cloudsigma/requests/update_profile.rb
index dc4fd27..d62a63b 100644
--- a/lib/fog/cloudsigma/requests/update_profile.rb
+++ b/lib/fog/cloudsigma/requests/update_profile.rb
@@ -12,7 +12,6 @@ module Fog
           mock_update(data, :profile, 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/update_server.rb b/lib/fog/cloudsigma/requests/update_server.rb
index d485f43..28f3efa 100644
--- a/lib/fog/cloudsigma/requests/update_server.rb
+++ b/lib/fog/cloudsigma/requests/update_server.rb
@@ -34,7 +34,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/update_vlan.rb b/lib/fog/cloudsigma/requests/update_vlan.rb
index 223832f..3204452 100644
--- a/lib/fog/cloudsigma/requests/update_vlan.rb
+++ b/lib/fog/cloudsigma/requests/update_vlan.rb
@@ -14,7 +14,6 @@ module Fog
           mock_update(data, :vlans, 200, vlan_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudsigma/requests/update_volume.rb b/lib/fog/cloudsigma/requests/update_volume.rb
index a1bf30c..ac00aac 100644
--- a/lib/fog/cloudsigma/requests/update_volume.rb
+++ b/lib/fog/cloudsigma/requests/update_volume.rb
@@ -12,7 +12,6 @@ module Fog
           mock_update(data, :volumes, 200,  vol_id)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/compute.rb b/lib/fog/cloudstack/compute.rb
index 23054a8..0e7f58a 100644
--- a/lib/fog/cloudstack/compute.rb
+++ b/lib/fog/cloudstack/compute.rb
@@ -38,105 +38,492 @@ module Fog
       collection :snapshots
       model :zone
       collection :zones
-
-      request :acquire_ip_address
+      request :activate_project
+      request :add_account_to_project
+      request :add_baremetal_dhcp
+      request :add_baremetal_host
+      request :add_baremetal_pxe_kick_start_server
+      request :add_baremetal_pxe_ping_server
+      request :add_big_switch_vns_device
+      request :add_cisco_asa1000v_resource
+      request :add_cisco_vnmc_resource
+      request :add_cluster
+      request :add_external_firewall
+      request :add_external_load_balancer
+      request :add_f5_load_balancer
+      request :add_guest_os
+      request :add_guest_os_mapping
+      request :add_host
+      request :add_image_store
+      request :add_ip_to_nic
+      request :add_ldap_configuration
+      request :add_netscaler_load_balancer
+      request :add_network_device
+      request :add_network_service_provider
+      request :add_nic_to_virtual_machine
+      request :add_nicira_nvp_device
+      request :add_open_daylight_controller
+      request :add_palo_alto_firewall
+      request :add_region
+      request :add_resource_detail
+      request :add_s3
+      request :add_secondary_storage
+      request :add_srx_firewall
+      request :add_stratosphere_ssp
+      request :add_swift
+      request :add_traffic_monitor
+      request :add_traffic_type
+      request :add_ucs_manager
+      request :add_vmware_dc
+      request :add_vpn_user
+      request :archive_alerts
+      request :archive_events
+      request :assign_cert_to_load_balancer
+      request :assign_to_global_load_balancer_rule
       request :assign_to_load_balancer_rule
       request :assign_virtual_machine
+      request :associate_ip_address
+      request :associate_ucs_profile_to_blade
+      request :attach_iso
       request :attach_volume
       request :authorize_security_group_egress
       request :authorize_security_group_ingress
+      request :cancel_host_maintenance
+      request :cancel_storage_maintenance
+      request :change_service_for_router
+      request :change_service_for_system_vm
       request :change_service_for_virtual_machine
+      request :clean_vmreservations
+      request :configure_f5_load_balancer
+      request :configure_internal_load_balancer_element
+      request :configure_netscaler_load_balancer
+      request :configure_ovs_element
+      request :configure_palo_alto_firewall
+      request :configure_srx_firewall
+      request :configure_virtual_router_element
+      request :copy_iso
+      request :copy_template
       request :create_account
+      request :create_affinity_group
+      request :create_auto_scale_policy
+      request :create_auto_scale_vm_group
+      request :create_auto_scale_vm_profile
+      request :create_condition
+      request :create_counter
       request :create_disk_offering
       request :create_domain
+      request :create_egress_firewall_rule
+      request :create_firewall_rule
+      request :create_global_load_balancer_rule
+      request :create_instance_group
+      request :create_internal_load_balancer_element
+      request :create_ip_forwarding_rule
+      request :create_lb_health_check_policy
+      request :create_lb_stickiness_policy
+      request :create_load_balancer
       request :create_load_balancer_rule
       request :create_network
+      request :create_network_acl
+      request :create_network_acl_list
+      request :create_network_offering
+      request :create_physical_network
+      request :create_pod
       request :create_port_forwarding_rule
+      request :create_portable_ip_range
+      request :create_private_gateway
+      request :create_project
+      request :create_remote_access_vpn
+      request :create_secondary_staging_store
       request :create_security_group
-      request :create_ssh_key_pair
+      request :create_service_instance
+      request :create_service_offering
       request :create_snapshot
       request :create_snapshot_policy
+      request :create_ssh_key_pair
+      request :create_static_route
+      request :create_storage_network_ip_range
+      request :create_storage_pool
+      request :create_tags
+      request :create_template
       request :create_user
+      request :create_virtual_router_element
+      request :create_vlan_ip_range
+      request :create_vm_snapshot
       request :create_volume
+      request :create_vpc
+      request :create_vpcoffering
+      request :create_vpn_connection
+      request :create_vpn_customer_gateway
+      request :create_vpn_gateway
       request :create_zone
+      request :dedicate_cluster
+      request :dedicate_guest_vlan_range
+      request :dedicate_host
+      request :dedicate_pod
+      request :dedicate_public_ip_range
+      request :dedicate_zone
       request :delete_account
+      request :delete_account_from_project
+      request :delete_affinity_group
+      request :delete_alerts
+      request :delete_auto_scale_policy
+      request :delete_auto_scale_vm_group
+      request :delete_auto_scale_vm_profile
+      request :delete_big_switch_vns_device
+      request :delete_cisco_asa1000v_resource
+      request :delete_cisco_nexus_vsm
+      request :delete_cisco_vnmc_resource
+      request :delete_cluster
+      request :delete_condition
+      request :delete_counter
       request :delete_disk_offering
       request :delete_domain
+      request :delete_egress_firewall_rule
+      request :delete_events
+      request :delete_external_firewall
+      request :delete_external_load_balancer
+      request :delete_f5_load_balancer
+      request :delete_firewall_rule
+      request :delete_global_load_balancer_rule
+      request :delete_host
+      request :delete_image_store
+      request :delete_instance_group
+      request :delete_ip_forwarding_rule
+      request :delete_iso
+      request :delete_lb_health_check_policy
+      request :delete_lb_stickiness_policy
+      request :delete_ldap_configuration
+      request :delete_load_balancer
       request :delete_load_balancer_rule
+      request :delete_netscaler_load_balancer
+      request :delete_network
+      request :delete_network_acl
+      request :delete_network_acl_list
+      request :delete_network_device
+      request :delete_network_offering
+      request :delete_network_service_provider
+      request :delete_nicira_nvp_device
+      request :delete_open_daylight_controller
+      request :delete_palo_alto_firewall
+      request :delete_physical_network
+      request :delete_pod
       request :delete_port_forwarding_rule
+      request :delete_portable_ip_range
+      request :delete_private_gateway
+      request :delete_project
+      request :delete_project_invitation
+      request :delete_remote_access_vpn
+      request :delete_secondary_staging_store
       request :delete_security_group
-      request :delete_ssh_key_pair
+      request :delete_service_offering
       request :delete_snapshot
       request :delete_snapshot_policies
+      request :delete_srx_firewall
+      request :delete_ssh_key_pair
+      request :delete_ssl_cert
+      request :delete_static_route
+      request :delete_storage_network_ip_range
+      request :delete_storage_pool
+      request :delete_tags
       request :delete_template
+      request :delete_traffic_monitor
+      request :delete_traffic_type
       request :delete_user
+      request :delete_vlan_ip_range
+      request :delete_vm_snapshot
       request :delete_volume
-      request :detach_volume
+      request :delete_vpc
+      request :delete_vpcoffering
+      request :delete_vpn_connection
+      request :delete_vpn_customer_gateway
+      request :delete_vpn_gateway
+      request :delete_zone
       request :deploy_virtual_machine
+      request :destroy_router
+      request :destroy_system_vm
       request :destroy_virtual_machine
+      request :detach_iso
+      request :detach_volume
+      request :disable_account
+      request :disable_auto_scale_vm_group
+      request :disable_cisco_nexus_vsm
+      request :disable_static_nat
       request :disable_user
+      request :disassociate_ip_address
+      request :enable_account
+      request :enable_auto_scale_vm_group
+      request :enable_cisco_nexus_vsm
+      request :enable_static_nat
+      request :enable_storage_maintenance
       request :enable_user
+      request :expunge_virtual_machine
+      request :extract_iso
+      request :extract_template
+      request :extract_volume
+      request :find_hosts_for_migration
+      request :find_storage_pools_for_migration
+      request :generate_alert
       request :generate_usage_records
+      request :get_api_limit
+      request :get_cloud_identifier
+      request :get_user
+      request :get_virtual_machine_user_data
       request :get_vm_password
+      request :import_ldap_users
+      request :ldap_create_account
       request :list_accounts
+      request :list_affinity_group_types
+      request :list_affinity_groups
       request :list_alerts
+      request :list_apis
       request :list_async_jobs
-      request :list_capacity
+      request :list_auto_scale_policies
+      request :list_auto_scale_vm_groups
+      request :list_auto_scale_vm_profiles
+      request :list_baremetal_dhcp
+      request :list_baremetal_pxe_servers
+      request :list_big_switch_vns_devices
       request :list_capabilities
+      request :list_capacity
+      request :list_cisco_asa1000v_resources
+      request :list_cisco_nexus_vsms
+      request :list_cisco_vnmc_resources
       request :list_clusters
+      request :list_conditions
       request :list_configurations
+      request :list_counters
+      request :list_dedicated_clusters
+      request :list_dedicated_guest_vlan_ranges
+      request :list_dedicated_hosts
+      request :list_dedicated_pods
+      request :list_dedicated_zones
+      request :list_deployment_planners
       request :list_disk_offerings
-      request :list_capacity
-      request :list_domains
       request :list_domain_children
+      request :list_domains
+      request :list_egress_firewall_rules
+      request :list_event_types
       request :list_events
       request :list_external_firewalls
       request :list_external_load_balancers
+      request :list_f5_load_balancer_networks
+      request :list_f5_load_balancers
       request :list_firewall_rules
+      request :list_global_load_balancer_rules
+      request :list_guest_os_mapping
       request :list_hosts
+      request :list_hypervisor_capabilities
       request :list_hypervisors
+      request :list_image_stores
       request :list_instance_groups
+      request :list_internal_load_balancer_elements
+      request :list_internal_load_balancer_vms
+      request :list_ip_forwarding_rules
+      request :list_iso_permissions
       request :list_isos
-      request :list_load_balancer_rules
+      request :list_lb_health_check_policies
+      request :list_lb_stickiness_policies
+      request :list_ldap_configurations
+      request :list_ldap_users
       request :list_load_balancer_rule_instances
+      request :list_load_balancer_rules
+      request :list_load_balancers
+      request :list_netscaler_load_balancer_networks
+      request :list_netscaler_load_balancers
+      request :list_network_acl_lists
+      request :list_network_acls
+      request :list_network_device
+      request :list_network_isolation_methods
       request :list_network_offerings
+      request :list_network_service_providers
       request :list_networks
+      request :list_nicira_nvp_device_networks
+      request :list_nicira_nvp_devices
+      request :list_nics
+      request :list_open_daylight_controllers
       request :list_os_categories
       request :list_os_types
+      request :list_ovs_elements
+      request :list_palo_alto_firewall_networks
+      request :list_palo_alto_firewalls
+      request :list_physical_networks
       request :list_pods
       request :list_port_forwarding_rules
+      request :list_portable_ip_ranges
+      request :list_private_gateways
+      request :list_project_accounts
+      request :list_project_invitations
+      request :list_projects
       request :list_public_ip_addresses
+      request :list_regions
+      request :list_remote_access_vpns
+      request :list_resource_details
       request :list_resource_limits
+      request :list_routers
+      request :list_s3s
+      request :list_secondary_staging_stores
       request :list_security_groups
       request :list_service_offerings
-      request :list_snapshots
       request :list_snapshot_policies
+      request :list_snapshots
+      request :list_srx_firewall_networks
+      request :list_srx_firewalls
       request :list_ssh_key_pairs
+      request :list_ssl_certs
+      request :list_static_routes
+      request :list_storage_network_ip_range
       request :list_storage_pools
+      request :list_storage_providers
+      request :list_supported_network_services
+      request :list_swifts
+      request :list_system_vms
+      request :list_tags
+      request :list_template_permissions
       request :list_templates
+      request :list_traffic_monitors
+      request :list_traffic_type_implementors
+      request :list_traffic_types
+      request :list_ucs_blades
+      request :list_ucs_managers
+      request :list_ucs_profiles
       request :list_usage_records
+      request :list_usage_types
       request :list_users
       request :list_virtual_machines
+      request :list_virtual_router_elements
+      request :list_vlan_ip_ranges
+      request :list_vm_snapshot
+      request :list_vmware_dcs
       request :list_volumes
+      request :list_vpc_offerings
+      request :list_vpcs
+      request :list_vpn_connections
+      request :list_vpn_customer_gateways
+      request :list_vpn_gateways
+      request :list_vpn_users
       request :list_zones
+      request :lock_account
+      request :lock_user
+      request :mark_default_zone_for_account
+      request :migrate_system_vm
       request :migrate_virtual_machine
+      request :migrate_virtual_machine_with_volume
+      request :migrate_volume
+      request :prepare_host_for_maintenance
+      request :prepare_template
       request :query_async_job_result
+      request :reboot_router
+      request :reboot_system_vm
       request :reboot_virtual_machine
+      request :reconnect_host
       request :recover_virtual_machine
+      request :register_iso
       request :register_ssh_key_pair
-      request :register_user_keys
       request :register_template
+      request :register_user_keys
+      request :release_dedicated_cluster
+      request :release_dedicated_guest_vlan_range
+      request :release_dedicated_host
+      request :release_dedicated_pod
+      request :release_dedicated_zone
+      request :release_host_reservation
+      request :release_public_ip_range
+      request :remove_cert_from_load_balancer
+      request :remove_from_global_load_balancer_rule
       request :remove_from_load_balancer_rule
+      request :remove_guest_os
+      request :remove_guest_os_mapping
+      request :remove_ip_from_nic
+      request :remove_nic_from_virtual_machine
+      request :remove_region
+      request :remove_resource_detail
+      request :remove_vmware_dc
+      request :remove_vpn_user
+      request :replace_network_acl_list
+      request :reset_api_limit
       request :reset_password_for_virtual_machine
-      request :revoke_security_group_ingress
+      request :reset_ssh_key_for_virtual_machine
+      request :reset_vpn_connection
+      request :resize_volume
+      request :restart_network
+      request :restart_vpc
+      request :restore_virtual_machine
+      request :revert_snapshot
+      request :revert_to_vm_snapshot
       request :revoke_security_group_egress
+      request :revoke_security_group_ingress
+      request :scale_system_vm
+      request :scale_virtual_machine
+      request :start_internal_load_balancer_vm
+      request :start_router
+      request :start_system_vm
       request :start_virtual_machine
+      request :stop_internal_load_balancer_vm
+      request :stop_router
+      request :stop_system_vm
       request :stop_virtual_machine
+      request :suspend_project
       request :update_account
+      request :update_auto_scale_policy
+      request :update_auto_scale_vm_group
+      request :update_auto_scale_vm_profile
+      request :update_cloud_to_use_object_store
+      request :update_cluster
+      request :update_configuration
+      request :update_default_nic_for_virtual_machine
+      request :update_disk_offering
       request :update_domain
-      request :update_user
+      request :update_egress_firewall_rule
+      request :update_firewall_rule
+      request :update_global_load_balancer_rule
+      request :update_guest_os
+      request :update_guest_os_mapping
+      request :update_host
+      request :update_host_password
+      request :update_hypervisor_capabilities
+      request :update_instance_group
+      request :update_ip_address
+      request :update_iso
+      request :update_iso_permissions
+      request :update_lb_health_check_policy
+      request :update_lb_stickiness_policy
+      request :update_load_balancer
+      request :update_load_balancer_rule
+      request :update_network
+      request :update_network_acl_item
+      request :update_network_acl_list
+      request :update_network_offering
+      request :update_network_service_provider
+      request :update_physical_network
+      request :update_pod
+      request :update_port_forwarding_rule
+      request :update_project
+      request :update_project_invitation
+      request :update_region
+      request :update_remote_access_vpn
       request :update_resource_count
+      request :update_resource_limit
+      request :update_service_offering
+      request :update_storage_network_ip_range
+      request :update_storage_pool
+      request :update_template
+      request :update_template_permissions
+      request :update_traffic_type
+      request :update_user
       request :update_virtual_machine
+      request :update_vm_affinity_group
+      request :update_volume
+      request :update_vpc
+      request :update_vpcoffering
+      request :update_vpn_connection
+      request :update_vpn_customer_gateway
+      request :update_vpn_gateway
+      request :update_zone
+      request :upgrade_router_template
+      request :upload_custom_certificate
+      request :upload_ssl_cert
+      request :upload_volume
+      
 
       class Real
 
diff --git a/lib/fog/cloudstack/core.rb b/lib/fog/cloudstack/core.rb
index c916dc0..0ce7e82 100644
--- a/lib/fog/cloudstack/core.rb
+++ b/lib/fog/cloudstack/core.rb
@@ -4,7 +4,6 @@ require 'uri'
 
 module Fog
   module Cloudstack
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
@@ -18,7 +17,7 @@ module Fog
     end
 
     def self.signed_params(key,params)
-      query = params.map{|k,v| [k.to_s, v]}.sort.collect{|c| "#{c[0]}=#{escape(c[1].to_s)}"}.join('&').downcase
+      query = params.map{|k,v| [k.to_s, v]}.sort.map{|c| "#{c[0]}=#{escape(c[1].to_s)}"}.join('&').downcase
 
       signed_string = Base64.encode64(OpenSSL::HMAC.digest(@@digest,key,query)).strip
 
@@ -38,4 +37,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/cloudstack/models/compute/disk_offering.rb b/lib/fog/cloudstack/models/compute/disk_offering.rb
index 4364ab3..0a91c9a 100644
--- a/lib/fog/cloudstack/models/compute/disk_offering.rb
+++ b/lib/fog/cloudstack/models/compute/disk_offering.rb
@@ -13,7 +13,6 @@ module Fog
         attribute :storage_type,    :aliases => 'storagetype'
         attribute :tags
 
-
         def save
           requires :display_text, :name
 
@@ -39,7 +38,6 @@ module Fog
 
           success_status == 'true'
         end
-
       end # DiskOffering
     end # Cloudstack
   end # Compute
diff --git a/lib/fog/cloudstack/models/compute/disk_offerings.rb b/lib/fog/cloudstack/models/compute/disk_offerings.rb
index 85f8fb7..29932ec 100644
--- a/lib/fog/cloudstack/models/compute/disk_offerings.rb
+++ b/lib/fog/cloudstack/models/compute/disk_offerings.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/disk_offering'
 module Fog
   module Compute
     class Cloudstack
-
       class DiskOfferings < Fog::Collection
-
         model Fog::Compute::Cloudstack::DiskOffering
 
         def all(options = {})
@@ -21,7 +19,6 @@ module Fog
           new(disk_offering_data)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/flavors.rb b/lib/fog/cloudstack/models/compute/flavors.rb
index 001c587..5ccabc1 100644
--- a/lib/fog/cloudstack/models/compute/flavors.rb
+++ b/lib/fog/cloudstack/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/flavor'
 module Fog
   module Compute
     class Cloudstack
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::Cloudstack::Flavor
 
         def all
@@ -22,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/images.rb b/lib/fog/cloudstack/models/compute/images.rb
index bc13f86..ee5c1c3 100644
--- a/lib/fog/cloudstack/models/compute/images.rb
+++ b/lib/fog/cloudstack/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/image'
 module Fog
   module Compute
     class Cloudstack
-
       class Images < Fog::Collection
-
         model Fog::Compute::Cloudstack::Image
 
         def all(filters={})
diff --git a/lib/fog/cloudstack/models/compute/job.rb b/lib/fog/cloudstack/models/compute/job.rb
index 55ea8d9..4467a3b 100644
--- a/lib/fog/cloudstack/models/compute/job.rb
+++ b/lib/fog/cloudstack/models/compute/job.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Cloudstack
       class Job < Fog::Model
-
         identity  :id,              :aliases => 'jobid'
         attribute :user_id,         :aliases => 'userid'
         attribute :account_id,      :aliases => 'accountid'
diff --git a/lib/fog/cloudstack/models/compute/jobs.rb b/lib/fog/cloudstack/models/compute/jobs.rb
index 1fac02f..a82844b 100644
--- a/lib/fog/cloudstack/models/compute/jobs.rb
+++ b/lib/fog/cloudstack/models/compute/jobs.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/job'
 module Fog
   module Compute
     class Cloudstack
-
       class Jobs < Fog::Collection
-
         model Fog::Compute::Cloudstack::Job
 
         def all
@@ -22,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/security_group_rule.rb b/lib/fog/cloudstack/models/compute/security_group_rule.rb
index b9d4989..37ae8f7 100644
--- a/lib/fog/cloudstack/models/compute/security_group_rule.rb
+++ b/lib/fog/cloudstack/models/compute/security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Cloudstack
       class SecurityGroupRule < Fog::Model
-
         identity  :id,                :aliases => 'ruleid'
 
         attribute :security_group_id, :type => :string
@@ -55,7 +54,6 @@ module Fog
           options.merge!("startport" => self.start_port) unless self.start_port.nil?
           options.merge("endport" => self.end_port) unless self.end_port.nil?
         end
-
       end # SecurityGroupRule
     end # Cloudstack
   end # Compute
diff --git a/lib/fog/cloudstack/models/compute/security_group_rules.rb b/lib/fog/cloudstack/models/compute/security_group_rules.rb
index 2271c93..e8b2379 100644
--- a/lib/fog/cloudstack/models/compute/security_group_rules.rb
+++ b/lib/fog/cloudstack/models/compute/security_group_rules.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/security_group_rule'
 module Fog
   module Compute
     class Cloudstack
-
       class SecurityGroupRules < Fog::Collection
-
         model Fog::Compute::Cloudstack::SecurityGroupRule
 
         attribute :security_group_id, :type => :string
diff --git a/lib/fog/cloudstack/models/compute/security_groups.rb b/lib/fog/cloudstack/models/compute/security_groups.rb
index 8a22b7c..43ad1ec 100644
--- a/lib/fog/cloudstack/models/compute/security_groups.rb
+++ b/lib/fog/cloudstack/models/compute/security_groups.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class Cloudstack
       class SecurityGroups < Fog::Collection
-
         model Fog::Compute::Cloudstack::SecurityGroup
 
         def all(options={})
@@ -21,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/server.rb b/lib/fog/cloudstack/models/compute/server.rb
index 709382b..459a61f 100644
--- a/lib/fog/cloudstack/models/compute/server.rb
+++ b/lib/fog/cloudstack/models/compute/server.rb
@@ -49,9 +49,25 @@ module Fog
           nics.map{|nic| Address.new(nic)}
         end
 
-        def destroy
+        def ip_addresses
+          addresses.map{|a| a.ip_address}
+        end
+
+        def public_ip_addresses
+          if public_ip_address.nil? then [public_ip_address] else [] end
+        end
+
+        def private_ip_addresses
+          ip_addresses - public_ip_addresses
+        end
+
+        def private_ip_address
+          private_ip_addresses.first
+        end
+
+        def destroy(options={})
           requires :id
-          data = service.destroy_virtual_machine("id" => id)
+          data = service.destroy_virtual_machine(options.merge({'id'=> self.id}))
           service.jobs.new(data["destroyvirtualmachineresponse"])
         end
 
@@ -115,9 +131,13 @@ module Fog
           service.jobs.new(data["startvirtualmachineresponse"])
         end
 
-        def stop(force=false)
+        def stop(options={})
           requires :id
-          data = service.stop_virtual_machine("id" => self.id, "force" => force)
+          unless options.is_a?(Hash)
+            Fog::Logger.deprecation("Passing force as a boolean option has been deprecated. Please pass a hash with 'force' => (true|false)")
+            options = {'force' => options}
+          end
+          data = service.stop_virtual_machine(options.merge({'id' => self.id}))
           service.jobs.new(data["stopvirtualmachineresponse"])
         end
       end # Server
diff --git a/lib/fog/cloudstack/models/compute/servers.rb b/lib/fog/cloudstack/models/compute/servers.rb
index 8d49d1f..26e0d39 100644
--- a/lib/fog/cloudstack/models/compute/servers.rb
+++ b/lib/fog/cloudstack/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/server'
 module Fog
   module Compute
     class Cloudstack
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Cloudstack::Server
 
         def all(attributes={})
@@ -33,7 +31,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/snapshots.rb b/lib/fog/cloudstack/models/compute/snapshots.rb
index 7ad0b28..44c29d6 100644
--- a/lib/fog/cloudstack/models/compute/snapshots.rb
+++ b/lib/fog/cloudstack/models/compute/snapshots.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/snapshot'
 module Fog
   module Compute
     class Cloudstack
-
       class Snapshots < Fog::Collection
-
         model Fog::Compute::Cloudstack::Snapshot
 
         def all
@@ -19,7 +17,6 @@ module Fog
           new(snapshot) if snapshot
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/volume.rb b/lib/fog/cloudstack/models/compute/volume.rb
index a20c9e3..8fc7d7c 100644
--- a/lib/fog/cloudstack/models/compute/volume.rb
+++ b/lib/fog/cloudstack/models/compute/volume.rb
@@ -50,7 +50,7 @@ module Fog
         def flavor
           service.disk_offerings.get(self.disk_offering_id)
         end
-        alias disk_offering flavor
+        alias_method :disk_offering, :flavor
 
         def server
           if server_id
@@ -77,7 +77,6 @@ module Fog
           self
         end
 
-
         def attach(instance_or_id, mountpoint=nil)
           requires :id
           instance_id = instance_or_id.is_a?(Server) ? instance_or_id.id : instance_or_id
diff --git a/lib/fog/cloudstack/models/compute/volumes.rb b/lib/fog/cloudstack/models/compute/volumes.rb
index f4dd65d..5dcfa18 100644
--- a/lib/fog/cloudstack/models/compute/volumes.rb
+++ b/lib/fog/cloudstack/models/compute/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/volume'
 module Fog
   module Compute
     class Cloudstack
-
       class Volumes < Fog::Collection
-
         model Fog::Compute::Cloudstack::Volume
 
         def all
@@ -22,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/cloudstack/models/compute/zone.rb b/lib/fog/cloudstack/models/compute/zone.rb
index 2d0cf08..e16e460 100644
--- a/lib/fog/cloudstack/models/compute/zone.rb
+++ b/lib/fog/cloudstack/models/compute/zone.rb
@@ -35,4 +35,3 @@ module Fog
     end # Cloudstack
   end # Compute
 end # Fog
-
diff --git a/lib/fog/cloudstack/models/compute/zones.rb b/lib/fog/cloudstack/models/compute/zones.rb
index 108aafe..5a547cd 100644
--- a/lib/fog/cloudstack/models/compute/zones.rb
+++ b/lib/fog/cloudstack/models/compute/zones.rb
@@ -4,9 +4,7 @@ require 'fog/cloudstack/models/compute/zone'
 module Fog
   module Compute
     class Cloudstack
-
       class Zones < Fog::Collection
-
         model Fog::Compute::Cloudstack::Zone
 
         def all(filters={})
@@ -26,8 +24,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb b/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb
index 88a05a3..9a78644 100644
--- a/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb
+++ b/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Cloudstack
       class Real
-
         # Creates an account.
         #
         # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/associateIpAddress.html]
@@ -13,9 +12,7 @@ module Fog
 
           request(options)
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/cloudstack/requests/compute/activate_project.rb b/lib/fog/cloudstack/requests/compute/activate_project.rb
new file mode 100644
index 0000000..4666523
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/activate_project.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Activates a project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/activateProject.html]
+        def activate_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'activateProject') 
+          else
+            options.merge!('command' => 'activateProject', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_account_to_project.rb b/lib/fog/cloudstack/requests/compute/add_account_to_project.rb
new file mode 100644
index 0000000..2e98605
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_account_to_project.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds acoount to a project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addAccountToProject.html]
+        def add_account_to_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addAccountToProject') 
+          else
+            options.merge!('command' => 'addAccountToProject', 
+            'projectid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_baremetal_dhcp.rb b/lib/fog/cloudstack/requests/compute/add_baremetal_dhcp.rb
new file mode 100644
index 0000000..e60744d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_baremetal_dhcp.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # adds a baremetal dhcp server
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addBaremetalDhcp.html]
+        def add_baremetal_dhcp(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addBaremetalDhcp') 
+          else
+            options.merge!('command' => 'addBaremetalDhcp', 
+            'dhcpservertype' => args[0], 
+            'username' => args[1], 
+            'url' => args[2], 
+            'physicalnetworkid' => args[3], 
+            'password' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_baremetal_host.rb b/lib/fog/cloudstack/requests/compute/add_baremetal_host.rb
new file mode 100644
index 0000000..c995253
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_baremetal_host.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # add a baremetal host
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addBaremetalHost.html]
+        def add_baremetal_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addBaremetalHost') 
+          else
+            options.merge!('command' => 'addBaremetalHost', 
+            'podid' => args[0], 
+            'url' => args[1], 
+            'hypervisor' => args[2], 
+            'username' => args[3], 
+            'zoneid' => args[4], 
+            'password' => args[5])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_kick_start_server.rb b/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_kick_start_server.rb
new file mode 100644
index 0000000..183430a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_kick_start_server.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # add a baremetal pxe server
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addBaremetalPxeKickStartServer.html]
+        def add_baremetal_pxe_kick_start_server(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addBaremetalPxeKickStartServer') 
+          else
+            options.merge!('command' => 'addBaremetalPxeKickStartServer', 
+            'url' => args[0], 
+            'username' => args[1], 
+            'tftpdir' => args[2], 
+            'pxeservertype' => args[3], 
+            'password' => args[4], 
+            'physicalnetworkid' => args[5])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_ping_server.rb b/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_ping_server.rb
new file mode 100644
index 0000000..7c9ac09
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_baremetal_pxe_ping_server.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # add a baremetal ping pxe server
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addBaremetalPxePingServer.html]
+        def add_baremetal_pxe_ping_server(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addBaremetalPxePingServer') 
+          else
+            options.merge!('command' => 'addBaremetalPxePingServer', 
+            'physicalnetworkid' => args[0], 
+            'pxeservertype' => args[1], 
+            'pingstorageserverip' => args[2], 
+            'url' => args[3], 
+            'tftpdir' => args[4], 
+            'password' => args[5], 
+            'pingdir' => args[6], 
+            'username' => args[7])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_big_switch_vns_device.rb b/lib/fog/cloudstack/requests/compute/add_big_switch_vns_device.rb
new file mode 100644
index 0000000..601b460
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_big_switch_vns_device.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a BigSwitch VNS device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addBigSwitchVnsDevice.html]
+        def add_big_switch_vns_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addBigSwitchVnsDevice') 
+          else
+            options.merge!('command' => 'addBigSwitchVnsDevice', 
+            'hostname' => args[0], 
+            'physicalnetworkid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_cisco_asa1000v_resource.rb b/lib/fog/cloudstack/requests/compute/add_cisco_asa1000v_resource.rb
new file mode 100644
index 0000000..b9f5301
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_cisco_asa1000v_resource.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a Cisco Asa 1000v appliance
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addCiscoAsa1000vResource.html]
+        def add_cisco_asa1000v_resource(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addCiscoAsa1000vResource') 
+          else
+            options.merge!('command' => 'addCiscoAsa1000vResource', 
+            'hostname' => args[0], 
+            'physicalnetworkid' => args[1], 
+            'insideportprofile' => args[2], 
+            'clusterid' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_cisco_vnmc_resource.rb b/lib/fog/cloudstack/requests/compute/add_cisco_vnmc_resource.rb
new file mode 100644
index 0000000..7d2774c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_cisco_vnmc_resource.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a Cisco Vnmc Controller
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addCiscoVnmcResource.html]
+        def add_cisco_vnmc_resource(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addCiscoVnmcResource') 
+          else
+            options.merge!('command' => 'addCiscoVnmcResource', 
+            'username' => args[0], 
+            'hostname' => args[1], 
+            'password' => args[2], 
+            'physicalnetworkid' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_cluster.rb b/lib/fog/cloudstack/requests/compute/add_cluster.rb
new file mode 100644
index 0000000..dc306a4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_cluster.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a new cluster
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addCluster.html]
+        def add_cluster(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addCluster') 
+          else
+            options.merge!('command' => 'addCluster', 
+            'clustertype' => args[0], 
+            'hypervisor' => args[1], 
+            'clustername' => args[2], 
+            'podid' => args[3], 
+            'zoneid' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_external_firewall.rb b/lib/fog/cloudstack/requests/compute/add_external_firewall.rb
new file mode 100644
index 0000000..dac97f3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_external_firewall.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds an external firewall appliance
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addExternalFirewall.html]
+        def add_external_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addExternalFirewall') 
+          else
+            options.merge!('command' => 'addExternalFirewall', 
+            'url' => args[0], 
+            'username' => args[1], 
+            'password' => args[2], 
+            'zoneid' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_external_load_balancer.rb b/lib/fog/cloudstack/requests/compute/add_external_load_balancer.rb
new file mode 100644
index 0000000..b6ad9d7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_external_load_balancer.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds F5 external load balancer appliance.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addExternalLoadBalancer.html]
+        def add_external_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addExternalLoadBalancer') 
+          else
+            options.merge!('command' => 'addExternalLoadBalancer', 
+            'zoneid' => args[0], 
+            'url' => args[1], 
+            'password' => args[2], 
+            'username' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_f5_load_balancer.rb b/lib/fog/cloudstack/requests/compute/add_f5_load_balancer.rb
new file mode 100644
index 0000000..184518a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_f5_load_balancer.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a F5 BigIP load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addF5LoadBalancer.html]
+        def add_f5_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addF5LoadBalancer') 
+          else
+            options.merge!('command' => 'addF5LoadBalancer', 
+            'password' => args[0], 
+            'physicalnetworkid' => args[1], 
+            'networkdevicetype' => args[2], 
+            'username' => args[3], 
+            'url' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_guest_os.rb b/lib/fog/cloudstack/requests/compute/add_guest_os.rb
new file mode 100644
index 0000000..729954d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_guest_os.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Add a new guest OS type
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addGuestOs.html]
+        def add_guest_os(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addGuestOs') 
+          else
+            options.merge!('command' => 'addGuestOs', 
+            'osdisplayname' => args[0], 
+            'oscategoryid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_guest_os_mapping.rb b/lib/fog/cloudstack/requests/compute/add_guest_os_mapping.rb
new file mode 100644
index 0000000..63e50174
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_guest_os_mapping.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a guest OS name to hypervisor OS name mapping
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addGuestOsMapping.html]
+        def add_guest_os_mapping(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addGuestOsMapping') 
+          else
+            options.merge!('command' => 'addGuestOsMapping', 
+            'hypervisor' => args[0], 
+            'osnameforhypervisor' => args[1], 
+            'hypervisorversion' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_host.rb b/lib/fog/cloudstack/requests/compute/add_host.rb
new file mode 100644
index 0000000..b044359
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_host.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a new host.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addHost.html]
+        def add_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addHost') 
+          else
+            options.merge!('command' => 'addHost', 
+            'url' => args[0], 
+            'zoneid' => args[1], 
+            'username' => args[2], 
+            'password' => args[3], 
+            'hypervisor' => args[4], 
+            'podid' => args[5])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_image_store.rb b/lib/fog/cloudstack/requests/compute/add_image_store.rb
new file mode 100644
index 0000000..8acc8a3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_image_store.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds backup image store.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addImageStore.html]
+        def add_image_store(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addImageStore') 
+          else
+            options.merge!('command' => 'addImageStore', 
+            'provider' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_ip_to_nic.rb b/lib/fog/cloudstack/requests/compute/add_ip_to_nic.rb
new file mode 100644
index 0000000..edab2a0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_ip_to_nic.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Assigns secondary IP to NIC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addIpToNic.html]
+        def add_ip_to_nic(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addIpToNic') 
+          else
+            options.merge!('command' => 'addIpToNic', 
+            'nicid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_ldap_configuration.rb b/lib/fog/cloudstack/requests/compute/add_ldap_configuration.rb
new file mode 100644
index 0000000..0b99674
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_ldap_configuration.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Add a new Ldap Configuration
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addLdapConfiguration.html]
+        def add_ldap_configuration(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addLdapConfiguration') 
+          else
+            options.merge!('command' => 'addLdapConfiguration', 
+            'port' => args[0], 
+            'hostname' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_netscaler_load_balancer.rb b/lib/fog/cloudstack/requests/compute/add_netscaler_load_balancer.rb
new file mode 100644
index 0000000..e4b27c9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_netscaler_load_balancer.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a netscaler load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addNetscalerLoadBalancer.html]
+        def add_netscaler_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addNetscalerLoadBalancer') 
+          else
+            options.merge!('command' => 'addNetscalerLoadBalancer', 
+            'username' => args[0], 
+            'networkdevicetype' => args[1], 
+            'password' => args[2], 
+            'physicalnetworkid' => args[3], 
+            'url' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_network_device.rb b/lib/fog/cloudstack/requests/compute/add_network_device.rb
new file mode 100644
index 0000000..02cf1bf
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_network_device.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a network device of one of the following types: ExternalDhcp, ExternalFirewall, ExternalLoadBalancer, PxeServer
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addNetworkDevice.html]
+        def add_network_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addNetworkDevice') 
+          else
+            options.merge!('command' => 'addNetworkDevice')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_network_service_provider.rb b/lib/fog/cloudstack/requests/compute/add_network_service_provider.rb
new file mode 100644
index 0000000..250b887
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_network_service_provider.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a network serviceProvider to a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addNetworkServiceProvider.html]
+        def add_network_service_provider(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addNetworkServiceProvider') 
+          else
+            options.merge!('command' => 'addNetworkServiceProvider', 
+            'name' => args[0], 
+            'physicalnetworkid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_nic_to_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/add_nic_to_virtual_machine.rb
new file mode 100644
index 0000000..a02fcd7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_nic_to_virtual_machine.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds VM to specified network by creating a NIC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addNicToVirtualMachine.html]
+        def add_nic_to_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addNicToVirtualMachine') 
+          else
+            options.merge!('command' => 'addNicToVirtualMachine', 
+            'virtualmachineid' => args[0], 
+            'networkid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_nicira_nvp_device.rb b/lib/fog/cloudstack/requests/compute/add_nicira_nvp_device.rb
new file mode 100644
index 0000000..58e783d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_nicira_nvp_device.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a Nicira NVP device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addNiciraNvpDevice.html]
+        def add_nicira_nvp_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addNiciraNvpDevice') 
+          else
+            options.merge!('command' => 'addNiciraNvpDevice', 
+            'physicalnetworkid' => args[0], 
+            'transportzoneuuid' => args[1], 
+            'username' => args[2], 
+            'password' => args[3], 
+            'hostname' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_open_daylight_controller.rb b/lib/fog/cloudstack/requests/compute/add_open_daylight_controller.rb
new file mode 100644
index 0000000..3bfaae0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_open_daylight_controller.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds an OpenDyalight controler
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addOpenDaylightController.html]
+        def add_open_daylight_controller(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addOpenDaylightController') 
+          else
+            options.merge!('command' => 'addOpenDaylightController', 
+            'physicalnetworkid' => args[0], 
+            'url' => args[1], 
+            'password' => args[2], 
+            'username' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_palo_alto_firewall.rb b/lib/fog/cloudstack/requests/compute/add_palo_alto_firewall.rb
new file mode 100644
index 0000000..c714344
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_palo_alto_firewall.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a Palo Alto firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addPaloAltoFirewall.html]
+        def add_palo_alto_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addPaloAltoFirewall') 
+          else
+            options.merge!('command' => 'addPaloAltoFirewall', 
+            'username' => args[0], 
+            'networkdevicetype' => args[1], 
+            'password' => args[2], 
+            'physicalnetworkid' => args[3], 
+            'url' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_region.rb b/lib/fog/cloudstack/requests/compute/add_region.rb
new file mode 100644
index 0000000..f42231a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_region.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a Region
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addRegion.html]
+        def add_region(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addRegion') 
+          else
+            options.merge!('command' => 'addRegion', 
+            'id' => args[0], 
+            'name' => args[1], 
+            'endpoint' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_resource_detail.rb b/lib/fog/cloudstack/requests/compute/add_resource_detail.rb
new file mode 100644
index 0000000..c025e7b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_resource_detail.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds detail for the Resource.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addResourceDetail.html]
+        def add_resource_detail(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addResourceDetail') 
+          else
+            options.merge!('command' => 'addResourceDetail', 
+            'resourcetype' => args[0], 
+            'details' => args[1], 
+            'resourceid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_s3.rb b/lib/fog/cloudstack/requests/compute/add_s3.rb
new file mode 100644
index 0000000..bc2ddb4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_s3.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds S3
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addS3.html]
+        def add_s3(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addS3') 
+          else
+            options.merge!('command' => 'addS3', 
+            'accesskey' => args[0], 
+            'bucket' => args[1], 
+            'secretkey' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_secondary_storage.rb b/lib/fog/cloudstack/requests/compute/add_secondary_storage.rb
new file mode 100644
index 0000000..c7f5c45
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_secondary_storage.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds secondary storage.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addSecondaryStorage.html]
+        def add_secondary_storage(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addSecondaryStorage') 
+          else
+            options.merge!('command' => 'addSecondaryStorage', 
+            'url' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_srx_firewall.rb b/lib/fog/cloudstack/requests/compute/add_srx_firewall.rb
new file mode 100644
index 0000000..bec9531
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_srx_firewall.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a SRX firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addSrxFirewall.html]
+        def add_srx_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addSrxFirewall') 
+          else
+            options.merge!('command' => 'addSrxFirewall', 
+            'username' => args[0], 
+            'networkdevicetype' => args[1], 
+            'physicalnetworkid' => args[2], 
+            'password' => args[3], 
+            'url' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_stratosphere_ssp.rb b/lib/fog/cloudstack/requests/compute/add_stratosphere_ssp.rb
new file mode 100644
index 0000000..8dd4d1b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_stratosphere_ssp.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds stratosphere ssp server
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addStratosphereSsp.html]
+        def add_stratosphere_ssp(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addStratosphereSsp') 
+          else
+            options.merge!('command' => 'addStratosphereSsp', 
+            'url' => args[0], 
+            'zoneid' => args[1], 
+            'name' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_swift.rb b/lib/fog/cloudstack/requests/compute/add_swift.rb
new file mode 100644
index 0000000..cfcad4d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_swift.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds Swift.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addSwift.html]
+        def add_swift(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addSwift') 
+          else
+            options.merge!('command' => 'addSwift', 
+            'url' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_traffic_monitor.rb b/lib/fog/cloudstack/requests/compute/add_traffic_monitor.rb
new file mode 100644
index 0000000..7a978c2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_traffic_monitor.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds Traffic Monitor Host for Direct Network Usage
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addTrafficMonitor.html]
+        def add_traffic_monitor(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addTrafficMonitor') 
+          else
+            options.merge!('command' => 'addTrafficMonitor', 
+            'zoneid' => args[0], 
+            'url' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_traffic_type.rb b/lib/fog/cloudstack/requests/compute/add_traffic_type.rb
new file mode 100644
index 0000000..6b30e06
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_traffic_type.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds traffic type to a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addTrafficType.html]
+        def add_traffic_type(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addTrafficType') 
+          else
+            options.merge!('command' => 'addTrafficType', 
+            'traffictype' => args[0], 
+            'physicalnetworkid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_ucs_manager.rb b/lib/fog/cloudstack/requests/compute/add_ucs_manager.rb
new file mode 100644
index 0000000..79b1577
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_ucs_manager.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a Ucs manager
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addUcsManager.html]
+        def add_ucs_manager(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addUcsManager') 
+          else
+            options.merge!('command' => 'addUcsManager', 
+            'url' => args[0], 
+            'password' => args[1], 
+            'username' => args[2], 
+            'zoneid' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_vmware_dc.rb b/lib/fog/cloudstack/requests/compute/add_vmware_dc.rb
new file mode 100644
index 0000000..34e41f5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_vmware_dc.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds a VMware datacenter to specified zone
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addVmwareDc.html]
+        def add_vmware_dc(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addVmwareDc') 
+          else
+            options.merge!('command' => 'addVmwareDc', 
+            'zoneid' => args[0], 
+            'vcenter' => args[1], 
+            'name' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/add_vpn_user.rb b/lib/fog/cloudstack/requests/compute/add_vpn_user.rb
new file mode 100644
index 0000000..ff94098
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/add_vpn_user.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds vpn users
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/addVpnUser.html]
+        def add_vpn_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'addVpnUser') 
+          else
+            options.merge!('command' => 'addVpnUser', 
+            'password' => args[0], 
+            'username' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/archive_alerts.rb b/lib/fog/cloudstack/requests/compute/archive_alerts.rb
new file mode 100644
index 0000000..d6e5b1c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/archive_alerts.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Archive one or more alerts.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/archiveAlerts.html]
+        def archive_alerts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'archiveAlerts') 
+          else
+            options.merge!('command' => 'archiveAlerts')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/archive_events.rb b/lib/fog/cloudstack/requests/compute/archive_events.rb
new file mode 100644
index 0000000..65cde99
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/archive_events.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Archive one or more events.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/archiveEvents.html]
+        def archive_events(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'archiveEvents') 
+          else
+            options.merge!('command' => 'archiveEvents')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/assign_cert_to_load_balancer.rb b/lib/fog/cloudstack/requests/compute/assign_cert_to_load_balancer.rb
new file mode 100644
index 0000000..ff030b8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/assign_cert_to_load_balancer.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Assigns a certificate to a Load Balancer Rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/assignCertToLoadBalancer.html]
+        def assign_cert_to_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'assignCertToLoadBalancer') 
+          else
+            options.merge!('command' => 'assignCertToLoadBalancer', 
+            'lbruleid' => args[0], 
+            'certid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/assign_to_global_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/assign_to_global_load_balancer_rule.rb
new file mode 100644
index 0000000..1e104c8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/assign_to_global_load_balancer_rule.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Assign load balancer rule or list of load balancer rules to a global load balancer rules.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/assignToGlobalLoadBalancerRule.html]
+        def assign_to_global_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'assignToGlobalLoadBalancerRule') 
+          else
+            options.merge!('command' => 'assignToGlobalLoadBalancerRule', 
+            'id' => args[0], 
+            'loadbalancerrulelist' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb
index 335981a..9b243ef 100644
--- a/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb
+++ b/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb
@@ -1,24 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Assigns virtual machine or a list of virtual machines to a load balancer rule.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/assignToLoadBalancerRule.html]
-        def assign_to_load_balancer_rule(id,virtualmachineids=[])
-          virtualmachineids = [*virtualmachineids]
-
-          options = {
-            'command' => 'assignToLoadBalancerRule',
-            'id' => id,
-            'virtualmachineids' => virtualmachineids.join(',')
-          }
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/assignToLoadBalancerRule.html]
+        def assign_to_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'assignToLoadBalancerRule') 
+          else
+            options.merge!('command' => 'assignToLoadBalancerRule', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
diff --git a/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb
index 33ba61f..646b2a1 100644
--- a/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb
@@ -1,18 +1,27 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-        def assign_virtual_machine(options={})
-          options.merge!('command' => 'assignVirtualMachine')
 
+      class Real
+        # Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/assignVirtualMachine.html]
+        def assign_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'assignVirtualMachine') 
+          else
+            options.merge!('command' => 'assignVirtualMachine', 
+            'account' => args[0], 
+            'virtualmachineid' => args[1], 
+            'domainid' => args[2])
+          end
           request(options)
         end
       end
-      class Mock
-        # Fog::Compute::Cloudstack::Error: Failed to move vm VM is Running, unable to move the vm VM[User|e845934a-e44f-43da-aabf-05c90c651756]
-        #def assign_virtual_machine(options={})
-        #end
-      end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/associate_ip_address.rb b/lib/fog/cloudstack/requests/compute/associate_ip_address.rb
new file mode 100644
index 0000000..22a9f72
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/associate_ip_address.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Acquires and associates a public IP to an account.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/associateIpAddress.html]
+        def associate_ip_address(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'associateIpAddress') 
+          else
+            options.merge!('command' => 'associateIpAddress')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/associate_lun.rb b/lib/fog/cloudstack/requests/compute/associate_lun.rb
new file mode 100644
index 0000000..02e527a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/associate_lun.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Associate a LUN with a guest IQN
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/associateLun.html]
+        def associate_lun(iqn, name, options={})
+          options.merge!(
+            'command' => 'associateLun', 
+            'iqn' => iqn, 
+            'name' => name  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/associate_ucs_profile_to_blade.rb b/lib/fog/cloudstack/requests/compute/associate_ucs_profile_to_blade.rb
new file mode 100644
index 0000000..ddc2320
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/associate_ucs_profile_to_blade.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # associate a profile to a blade
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/associateUcsProfileToBlade.html]
+        def associate_ucs_profile_to_blade(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'associateUcsProfileToBlade') 
+          else
+            options.merge!('command' => 'associateUcsProfileToBlade', 
+            'profiledn' => args[0], 
+            'ucsmanagerid' => args[1], 
+            'bladeid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/attach_iso.rb b/lib/fog/cloudstack/requests/compute/attach_iso.rb
new file mode 100644
index 0000000..6079954
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/attach_iso.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Attaches an ISO to a virtual machine.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/attachIso.html]
+        def attach_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'attachIso') 
+          else
+            options.merge!('command' => 'attachIso', 
+            'virtualmachineid' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/attach_volume.rb b/lib/fog/cloudstack/requests/compute/attach_volume.rb
index 9c12ea7..5e83f41 100644
--- a/lib/fog/cloudstack/requests/compute/attach_volume.rb
+++ b/lib/fog/cloudstack/requests/compute/attach_volume.rb
@@ -1,21 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Attaches a disk volume to a virtual machine.
         #
-        # {CloudStack API Reference}[http://http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/attachVolume.html]
-        def attach_volume(options={})
-          options.merge!(
-            'command' => 'attachVolume'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/attachVolume.html]
+        def attach_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'attachVolume') 
+          else
+            options.merge!('command' => 'attachVolume', 
+            'virtualmachineid' => args[0], 
+            'id' => args[1])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
 
         def attach_volume(options={})
@@ -64,7 +68,9 @@ module Fog
             }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end
+ 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb b/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb
index 22c1341..b76c988 100644
--- a/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb
+++ b/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb
@@ -1,15 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-        def authorize_security_group_egress(options={})
-          options.merge!(
-            'command' => 'authorizeSecurityGroupEgress'
-          )
 
+      class Real
+        # Authorizes a particular egress rule for this security group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/authorizeSecurityGroupEgress.html]
+        def authorize_security_group_egress(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'authorizeSecurityGroupEgress') 
+          else
+            options.merge!('command' => 'authorizeSecurityGroupEgress')
+          end
           request(options)
         end
-      end # Real
+      end
+ 
       class Mock
         def authorize_security_group_egress(options={})
           security_group_id      = options['securitygroupid']
@@ -62,7 +70,9 @@ module Fog
 
           { "authorizesecuritygroupegressresponse" => { "jobid" => job_id } }
         end
-      end # Mock
+      end
+ 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb b/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb
index 3b86c11..52e4a82 100644
--- a/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb
+++ b/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb
@@ -1,18 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-
-        def authorize_security_group_ingress(options={})
-          options.merge!(
-            'command' => 'authorizeSecurityGroupIngress'
-          )
 
+      class Real
+        # Authorizes a particular ingress rule for this security group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/authorizeSecurityGroupIngress.html]
+        def authorize_security_group_ingress(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'authorizeSecurityGroupIngress') 
+          else
+            options.merge!('command' => 'authorizeSecurityGroupIngress')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def authorize_security_group_ingress(options={})
           security_group_id      = options['securitygroupid']
@@ -65,9 +70,9 @@ module Fog
 
           { "authorizesecuritygroupingressresponse" => { "jobid" => job_id } }
         end
-      end # Mock
+      end
+ 
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/cancel_host_maintenance.rb b/lib/fog/cloudstack/requests/compute/cancel_host_maintenance.rb
new file mode 100644
index 0000000..dd16db1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/cancel_host_maintenance.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Cancels host maintenance.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/cancelHostMaintenance.html]
+        def cancel_host_maintenance(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'cancelHostMaintenance') 
+          else
+            options.merge!('command' => 'cancelHostMaintenance', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/cancel_storage_maintenance.rb b/lib/fog/cloudstack/requests/compute/cancel_storage_maintenance.rb
new file mode 100644
index 0000000..61d163e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/cancel_storage_maintenance.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Cancels maintenance for primary storage
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/cancelStorageMaintenance.html]
+        def cancel_storage_maintenance(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'cancelStorageMaintenance') 
+          else
+            options.merge!('command' => 'cancelStorageMaintenance', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/change_service_for_router.rb b/lib/fog/cloudstack/requests/compute/change_service_for_router.rb
new file mode 100644
index 0000000..e3c187a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/change_service_for_router.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Upgrades domain router to a new service offering
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/changeServiceForRouter.html]
+        def change_service_for_router(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'changeServiceForRouter') 
+          else
+            options.merge!('command' => 'changeServiceForRouter', 
+            'serviceofferingid' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/change_service_for_system_vm.rb b/lib/fog/cloudstack/requests/compute/change_service_for_system_vm.rb
new file mode 100644
index 0000000..5fa5f10
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/change_service_for_system_vm.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Changes the service offering for a system vm (console proxy or secondary storage). The system vm must be in a "Stopped" state for this command to take effect.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/changeServiceForSystemVm.html]
+        def change_service_for_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'changeServiceForSystemVm') 
+          else
+            options.merge!('command' => 'changeServiceForSystemVm', 
+            'id' => args[0], 
+            'serviceofferingid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb
index 787c0d5..65b7abb 100644
--- a/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb
@@ -1,20 +1,26 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Changes the service offering for a virtual machine. The virtual machine must be in a "Stopped" state for this command to take effect.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/changeServiceForVirtualMachine.html]
-        def change_service_for_virtual_machine(options={})
-          options.merge!(
-            'command' => 'changeServiceForVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/changeServiceForVirtualMachine.html]
+        def change_service_for_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'changeServiceForVirtualMachine') 
+          else
+            options.merge!('command' => 'changeServiceForVirtualMachine', 
+            'serviceofferingid' => args[0], 
+            'id' => args[1])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/clean_vmreservations.rb b/lib/fog/cloudstack/requests/compute/clean_vmreservations.rb
new file mode 100644
index 0000000..06d3a26
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/clean_vmreservations.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Cleanups VM reservations in the database.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/cleanVMReservations.html]
+        def clean_vmreservations(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'cleanVMReservations') 
+          else
+            options.merge!('command' => 'cleanVMReservations')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_f5_load_balancer.rb b/lib/fog/cloudstack/requests/compute/configure_f5_load_balancer.rb
new file mode 100644
index 0000000..6705310
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_f5_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # configures a F5 load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configureF5LoadBalancer.html]
+        def configure_f5_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configureF5LoadBalancer') 
+          else
+            options.merge!('command' => 'configureF5LoadBalancer', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_internal_load_balancer_element.rb b/lib/fog/cloudstack/requests/compute/configure_internal_load_balancer_element.rb
new file mode 100644
index 0000000..a74eb43
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_internal_load_balancer_element.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Configures an Internal Load Balancer element.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configureInternalLoadBalancerElement.html]
+        def configure_internal_load_balancer_element(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configureInternalLoadBalancerElement') 
+          else
+            options.merge!('command' => 'configureInternalLoadBalancerElement', 
+            'id' => args[0], 
+            'enabled' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_netscaler_load_balancer.rb b/lib/fog/cloudstack/requests/compute/configure_netscaler_load_balancer.rb
new file mode 100644
index 0000000..5f0706e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_netscaler_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # configures a netscaler load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configureNetscalerLoadBalancer.html]
+        def configure_netscaler_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configureNetscalerLoadBalancer') 
+          else
+            options.merge!('command' => 'configureNetscalerLoadBalancer', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_ovs_element.rb b/lib/fog/cloudstack/requests/compute/configure_ovs_element.rb
new file mode 100644
index 0000000..3a6cff3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_ovs_element.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Configures an ovs element.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configureOvsElement.html]
+        def configure_ovs_element(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configureOvsElement') 
+          else
+            options.merge!('command' => 'configureOvsElement', 
+            'id' => args[0], 
+            'enabled' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_palo_alto_firewall.rb b/lib/fog/cloudstack/requests/compute/configure_palo_alto_firewall.rb
new file mode 100644
index 0000000..940250d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_palo_alto_firewall.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Configures a Palo Alto firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configurePaloAltoFirewall.html]
+        def configure_palo_alto_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configurePaloAltoFirewall') 
+          else
+            options.merge!('command' => 'configurePaloAltoFirewall', 
+            'fwdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_srx_firewall.rb b/lib/fog/cloudstack/requests/compute/configure_srx_firewall.rb
new file mode 100644
index 0000000..190ebee
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_srx_firewall.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Configures a SRX firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configureSrxFirewall.html]
+        def configure_srx_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configureSrxFirewall') 
+          else
+            options.merge!('command' => 'configureSrxFirewall', 
+            'fwdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/configure_virtual_router_element.rb b/lib/fog/cloudstack/requests/compute/configure_virtual_router_element.rb
new file mode 100644
index 0000000..610858a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/configure_virtual_router_element.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Configures a virtual router element.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/configureVirtualRouterElement.html]
+        def configure_virtual_router_element(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'configureVirtualRouterElement') 
+          else
+            options.merge!('command' => 'configureVirtualRouterElement', 
+            'id' => args[0], 
+            'enabled' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/copy_iso.rb b/lib/fog/cloudstack/requests/compute/copy_iso.rb
new file mode 100644
index 0000000..1c0aa8b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/copy_iso.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Copies an iso from one zone to another.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/copyIso.html]
+        def copy_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'copyIso') 
+          else
+            options.merge!('command' => 'copyIso', 
+            'destzoneid' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/copy_template.rb b/lib/fog/cloudstack/requests/compute/copy_template.rb
new file mode 100644
index 0000000..46bb237
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/copy_template.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Copies a template from one zone to another.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/copyTemplate.html]
+        def copy_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'copyTemplate') 
+          else
+            options.merge!('command' => 'copyTemplate', 
+            'id' => args[0], 
+            'destzoneid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_account.rb b/lib/fog/cloudstack/requests/compute/create_account.rb
index 6023408..85c723f 100644
--- a/lib/fog/cloudstack/requests/compute/create_account.rb
+++ b/lib/fog/cloudstack/requests/compute/create_account.rb
@@ -1,20 +1,30 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates an account.
+      class Real
+        # Creates an account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createAccount.html]
-        def create_account(options={})
-          options.merge!(
-            'command' => 'createAccount'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createAccount.html]
+        def create_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createAccount') 
+          else
+            options.merge!('command' => 'createAccount', 
+            'accounttype' => args[0], 
+            'lastname' => args[1], 
+            'email' => args[2], 
+            'firstname' => args[3], 
+            'username' => args[4], 
+            'password' => args[5])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_affinity_group.rb b/lib/fog/cloudstack/requests/compute/create_affinity_group.rb
new file mode 100644
index 0000000..87c3f39
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_affinity_group.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates an affinity/anti-affinity group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createAffinityGroup.html]
+        def create_affinity_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createAffinityGroup') 
+          else
+            options.merge!('command' => 'createAffinityGroup', 
+            'type' => args[0], 
+            'name' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_auto_scale_policy.rb b/lib/fog/cloudstack/requests/compute/create_auto_scale_policy.rb
new file mode 100644
index 0000000..6af3750
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_auto_scale_policy.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates an autoscale policy for a provision or deprovision action, the action is taken when the all the conditions evaluates to true for the specified duration. The policy is in effect once it is attached to a autscale vm group.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createAutoScalePolicy.html]
+        def create_auto_scale_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createAutoScalePolicy') 
+          else
+            options.merge!('command' => 'createAutoScalePolicy', 
+            'duration' => args[0], 
+            'conditionids' => args[1], 
+            'action' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_group.rb b/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_group.rb
new file mode 100644
index 0000000..2834495
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_group.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createAutoScaleVmGroup.html]
+        def create_auto_scale_vm_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createAutoScaleVmGroup') 
+          else
+            options.merge!('command' => 'createAutoScaleVmGroup', 
+            'minmembers' => args[0], 
+            'scaleuppolicyids' => args[1], 
+            'scaledownpolicyids' => args[2], 
+            'maxmembers' => args[3], 
+            'vmprofileid' => args[4], 
+            'lbruleid' => args[5])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_profile.rb b/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_profile.rb
new file mode 100644
index 0000000..d7ad294
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_auto_scale_vm_profile.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createAutoScaleVmProfile.html]
+        def create_auto_scale_vm_profile(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createAutoScaleVmProfile') 
+          else
+            options.merge!('command' => 'createAutoScaleVmProfile', 
+            'templateid' => args[0], 
+            'zoneid' => args[1], 
+            'serviceofferingid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_condition.rb b/lib/fog/cloudstack/requests/compute/create_condition.rb
new file mode 100644
index 0000000..7c41f85
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_condition.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a condition
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createCondition.html]
+        def create_condition(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createCondition') 
+          else
+            options.merge!('command' => 'createCondition', 
+            'threshold' => args[0], 
+            'relationaloperator' => args[1], 
+            'counterid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_counter.rb b/lib/fog/cloudstack/requests/compute/create_counter.rb
new file mode 100644
index 0000000..030f621
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_counter.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Adds metric counter
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createCounter.html]
+        def create_counter(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createCounter') 
+          else
+            options.merge!('command' => 'createCounter', 
+            'name' => args[0], 
+            'value' => args[1], 
+            'source' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_disk_offering.rb b/lib/fog/cloudstack/requests/compute/create_disk_offering.rb
index 6996249..1d86b44 100644
--- a/lib/fog/cloudstack/requests/compute/create_disk_offering.rb
+++ b/lib/fog/cloudstack/requests/compute/create_disk_offering.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Creates a disk offering.
         #
-        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/root_admin/createDiskOffering.html]
-        def create_disk_offering(options={})
-          options.merge!(
-            'command' => 'createDiskOffering'
-          )
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createDiskOffering.html]
+        def create_disk_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createDiskOffering') 
+          else
+            options.merge!('command' => 'createDiskOffering', 
+            'displaytext' => args[0], 
+            'name' => args[1])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
 
         def create_disk_offering(options={})
@@ -44,8 +49,8 @@ module Fog
 
           {'creatediskofferingresponse' => disk_offering}
         end
-      end
+      end 
+    end
+  end
+end
 
-    end # Cloudstack
-  end # Compute
-end # Fog
diff --git a/lib/fog/cloudstack/requests/compute/create_domain.rb b/lib/fog/cloudstack/requests/compute/create_domain.rb
index 858e445..5388b8e 100644
--- a/lib/fog/cloudstack/requests/compute/create_domain.rb
+++ b/lib/fog/cloudstack/requests/compute/create_domain.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a domain.
+      class Real
+        # Creates a domain
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createDomain.html]
-        def create_domain(options={})
-          options.merge!(
-            'command' => 'createDomain'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createDomain.html]
+        def create_domain(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createDomain') 
+          else
+            options.merge!('command' => 'createDomain', 
+            'name' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_egress_firewall_rule.rb b/lib/fog/cloudstack/requests/compute/create_egress_firewall_rule.rb
new file mode 100644
index 0000000..c9f9c03
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_egress_firewall_rule.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a egress firewall rule for a given network 
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createEgressFirewallRule.html]
+        def create_egress_firewall_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createEgressFirewallRule') 
+          else
+            options.merge!('command' => 'createEgressFirewallRule', 
+            'networkid' => args[0], 
+            'protocol' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_firewall_rule.rb b/lib/fog/cloudstack/requests/compute/create_firewall_rule.rb
new file mode 100644
index 0000000..2e890cf
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_firewall_rule.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a firewall rule for a given ip address
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createFirewallRule.html]
+        def create_firewall_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createFirewallRule') 
+          else
+            options.merge!('command' => 'createFirewallRule', 
+            'ipaddressid' => args[0], 
+            'protocol' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_global_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/create_global_load_balancer_rule.rb
new file mode 100644
index 0000000..e210ef2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_global_load_balancer_rule.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a global load balancer rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createGlobalLoadBalancerRule.html]
+        def create_global_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createGlobalLoadBalancerRule') 
+          else
+            options.merge!('command' => 'createGlobalLoadBalancerRule', 
+            'gslbdomainname' => args[0], 
+            'gslbservicetype' => args[1], 
+            'regionid' => args[2], 
+            'name' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_instance_group.rb b/lib/fog/cloudstack/requests/compute/create_instance_group.rb
new file mode 100644
index 0000000..4194455
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_instance_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a vm group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createInstanceGroup.html]
+        def create_instance_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createInstanceGroup') 
+          else
+            options.merge!('command' => 'createInstanceGroup', 
+            'name' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_internal_load_balancer_element.rb b/lib/fog/cloudstack/requests/compute/create_internal_load_balancer_element.rb
new file mode 100644
index 0000000..caf77a5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_internal_load_balancer_element.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Create an Internal Load Balancer element.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createInternalLoadBalancerElement.html]
+        def create_internal_load_balancer_element(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createInternalLoadBalancerElement') 
+          else
+            options.merge!('command' => 'createInternalLoadBalancerElement', 
+            'nspid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_ip_forwarding_rule.rb b/lib/fog/cloudstack/requests/compute/create_ip_forwarding_rule.rb
new file mode 100644
index 0000000..f10f9e7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_ip_forwarding_rule.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates an ip forwarding rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createIpForwardingRule.html]
+        def create_ip_forwarding_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createIpForwardingRule') 
+          else
+            options.merge!('command' => 'createIpForwardingRule', 
+            'ipaddressid' => args[0], 
+            'protocol' => args[1], 
+            'startport' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_lb_health_check_policy.rb b/lib/fog/cloudstack/requests/compute/create_lb_health_check_policy.rb
new file mode 100644
index 0000000..cfe6522
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_lb_health_check_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a Load Balancer healthcheck policy 
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createLBHealthCheckPolicy.html]
+        def create_lb_health_check_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createLBHealthCheckPolicy') 
+          else
+            options.merge!('command' => 'createLBHealthCheckPolicy', 
+            'lbruleid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_lb_stickiness_policy.rb b/lib/fog/cloudstack/requests/compute/create_lb_stickiness_policy.rb
new file mode 100644
index 0000000..1996ca3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_lb_stickiness_policy.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a Load Balancer stickiness policy 
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createLBStickinessPolicy.html]
+        def create_lb_stickiness_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createLBStickinessPolicy') 
+          else
+            options.merge!('command' => 'createLBStickinessPolicy', 
+            'methodname' => args[0], 
+            'name' => args[1], 
+            'lbruleid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_load_balancer.rb b/lib/fog/cloudstack/requests/compute/create_load_balancer.rb
new file mode 100644
index 0000000..5043738
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_load_balancer.rb
@@ -0,0 +1,31 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a Load Balancer
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createLoadBalancer.html]
+        def create_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createLoadBalancer') 
+          else
+            options.merge!('command' => 'createLoadBalancer', 
+            'sourceipaddressnetworkid' => args[0], 
+            'algorithm' => args[1], 
+            'networkid' => args[2], 
+            'instanceport' => args[3], 
+            'scheme' => args[4], 
+            'name' => args[5], 
+            'sourceport' => args[6])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb
index 958153c..32042b7 100644
--- a/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb
+++ b/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb
@@ -1,20 +1,28 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Creates a load balancer rule
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.11/global_admin/createLoadBalancerRule.html]
-        def create_load_balancer_rule(options={})
-          options.merge!(
-            'command' => 'createLoadBalancerRule'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createLoadBalancerRule.html]
+        def create_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createLoadBalancerRule') 
+          else
+            options.merge!('command' => 'createLoadBalancerRule', 
+            'name' => args[0], 
+            'privateport' => args[1], 
+            'algorithm' => args[2], 
+            'publicport' => args[3])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_lun_on_filer.rb b/lib/fog/cloudstack/requests/compute/create_lun_on_filer.rb
new file mode 100644
index 0000000..efb2fc5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_lun_on_filer.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Create a LUN from a pool
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/createLunOnFiler.html]
+        def create_lun_on_filer(size, name, options={})
+          options.merge!(
+            'command' => 'createLunOnFiler', 
+            'size' => size, 
+            'name' => name  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_network.rb b/lib/fog/cloudstack/requests/compute/create_network.rb
index 4974863..009880c 100644
--- a/lib/fog/cloudstack/requests/compute/create_network.rb
+++ b/lib/fog/cloudstack/requests/compute/create_network.rb
@@ -1,20 +1,28 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates an network.
+      class Real
+        # Creates a network
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createNetwork.html]
-        def create_network(options={})
-          options.merge!(
-            'command' => 'createNetwork'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createNetwork.html]
+        def create_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createNetwork') 
+          else
+            options.merge!('command' => 'createNetwork', 
+            'displaytext' => args[0], 
+            'zoneid' => args[1], 
+            'name' => args[2], 
+            'networkofferingid' => args[3])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_network_acl.rb b/lib/fog/cloudstack/requests/compute/create_network_acl.rb
new file mode 100644
index 0000000..a4e47f2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_network_acl.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a ACL rule in the given network (the network has to belong to VPC)
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createNetworkACL.html]
+        def create_network_acl(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createNetworkACL') 
+          else
+            options.merge!('command' => 'createNetworkACL', 
+            'protocol' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_network_acl_list.rb b/lib/fog/cloudstack/requests/compute/create_network_acl_list.rb
new file mode 100644
index 0000000..3471a3c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_network_acl_list.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a Network ACL for the given VPC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createNetworkACLList.html]
+        def create_network_acl_list(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createNetworkACLList') 
+          else
+            options.merge!('command' => 'createNetworkACLList', 
+            'name' => args[0], 
+            'vpcid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_network_offering.rb b/lib/fog/cloudstack/requests/compute/create_network_offering.rb
new file mode 100644
index 0000000..5992770
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_network_offering.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a network offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createNetworkOffering.html]
+        def create_network_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createNetworkOffering') 
+          else
+            options.merge!('command' => 'createNetworkOffering', 
+            'traffictype' => args[0], 
+            'guestiptype' => args[1], 
+            'name' => args[2], 
+            'supportedservices' => args[3], 
+            'displaytext' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_physical_network.rb b/lib/fog/cloudstack/requests/compute/create_physical_network.rb
new file mode 100644
index 0000000..4ab1333
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_physical_network.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createPhysicalNetwork.html]
+        def create_physical_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createPhysicalNetwork') 
+          else
+            options.merge!('command' => 'createPhysicalNetwork', 
+            'name' => args[0], 
+            'zoneid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_pod.rb b/lib/fog/cloudstack/requests/compute/create_pod.rb
new file mode 100644
index 0000000..ab0823c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_pod.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a new Pod.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createPod.html]
+        def create_pod(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createPod') 
+          else
+            options.merge!('command' => 'createPod', 
+            'netmask' => args[0], 
+            'zoneid' => args[1], 
+            'name' => args[2], 
+            'gateway' => args[3], 
+            'startip' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_pool.rb b/lib/fog/cloudstack/requests/compute/create_pool.rb
new file mode 100644
index 0000000..19ff70c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_pool.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Create a pool
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/createPool.html]
+        def create_pool(algorithm, name, options={})
+          options.merge!(
+            'command' => 'createPool', 
+            'algorithm' => algorithm, 
+            'name' => name  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb b/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb
index fa595c9..ffc7836 100644
--- a/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb
+++ b/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb
@@ -1,20 +1,29 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a domain.
+      class Real
+        # Creates a port forwarding rule
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createPortForwardingRule.html]
-        def create_port_forwarding_rule(options={})
-          options.merge!(
-            'command' => 'createPortForwardingRule'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createPortForwardingRule.html]
+        def create_port_forwarding_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createPortForwardingRule') 
+          else
+            options.merge!('command' => 'createPortForwardingRule', 
+            'virtualmachineid' => args[0], 
+            'protocol' => args[1], 
+            'privateport' => args[2], 
+            'ipaddressid' => args[3], 
+            'publicport' => args[4])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_portable_ip_range.rb b/lib/fog/cloudstack/requests/compute/create_portable_ip_range.rb
new file mode 100644
index 0000000..9b08128
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_portable_ip_range.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # adds a range of portable public IP's to a region
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createPortableIpRange.html]
+        def create_portable_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createPortableIpRange') 
+          else
+            options.merge!('command' => 'createPortableIpRange', 
+            'startip' => args[0], 
+            'netmask' => args[1], 
+            'regionid' => args[2], 
+            'gateway' => args[3], 
+            'endip' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_private_gateway.rb b/lib/fog/cloudstack/requests/compute/create_private_gateway.rb
new file mode 100644
index 0000000..03003dd
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_private_gateway.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a private gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createPrivateGateway.html]
+        def create_private_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createPrivateGateway') 
+          else
+            options.merge!('command' => 'createPrivateGateway', 
+            'ipaddress' => args[0], 
+            'vlan' => args[1], 
+            'netmask' => args[2], 
+            'vpcid' => args[3], 
+            'gateway' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_project.rb b/lib/fog/cloudstack/requests/compute/create_project.rb
new file mode 100644
index 0000000..30099d1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_project.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createProject.html]
+        def create_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createProject') 
+          else
+            options.merge!('command' => 'createProject', 
+            'displaytext' => args[0], 
+            'name' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_remote_access_vpn.rb b/lib/fog/cloudstack/requests/compute/create_remote_access_vpn.rb
new file mode 100644
index 0000000..470ff3b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_remote_access_vpn.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a l2tp/ipsec remote access vpn
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createRemoteAccessVpn.html]
+        def create_remote_access_vpn(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createRemoteAccessVpn') 
+          else
+            options.merge!('command' => 'createRemoteAccessVpn', 
+            'publicipid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_secondary_staging_store.rb b/lib/fog/cloudstack/requests/compute/create_secondary_staging_store.rb
new file mode 100644
index 0000000..009c30c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_secondary_staging_store.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # create secondary staging store.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createSecondaryStagingStore.html]
+        def create_secondary_staging_store(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createSecondaryStagingStore') 
+          else
+            options.merge!('command' => 'createSecondaryStagingStore', 
+            'url' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_security_group.rb b/lib/fog/cloudstack/requests/compute/create_security_group.rb
index c2cbc32..d2811ca 100644
--- a/lib/fog/cloudstack/requests/compute/create_security_group.rb
+++ b/lib/fog/cloudstack/requests/compute/create_security_group.rb
@@ -1,16 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-        def create_security_group(options={})
-          options.merge!(
-            'command' => 'createSecurityGroup'
-          )
 
+      class Real
+        # Creates a security group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createSecurityGroup.html]
+        def create_security_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createSecurityGroup') 
+          else
+            options.merge!('command' => 'createSecurityGroup', 
+            'name' => args[0])
+          end
           request(options)
         end
-      end # Real
-
+      end
+ 
       class Mock
         def create_security_group(options={})
           security_group_id = Fog::Cloudstack.uuid
@@ -22,7 +30,8 @@ module Fog
           self.data[:security_groups][security_group_id]= security_group
           {"createsecuritygroupresponse" => { "securitygroup" => security_group}}
         end
-      end
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_service_instance.rb b/lib/fog/cloudstack/requests/compute/create_service_instance.rb
new file mode 100644
index 0000000..3d326aa
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_service_instance.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a system virtual-machine that implements network services
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createServiceInstance.html]
+        def create_service_instance(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createServiceInstance') 
+          else
+            options.merge!('command' => 'createServiceInstance', 
+            'name' => args[0], 
+            'rightnetworkid' => args[1], 
+            'serviceofferingid' => args[2], 
+            'leftnetworkid' => args[3], 
+            'templateid' => args[4], 
+            'zoneid' => args[5])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_service_offering.rb b/lib/fog/cloudstack/requests/compute/create_service_offering.rb
new file mode 100644
index 0000000..a6a5d7f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_service_offering.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a service offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createServiceOffering.html]
+        def create_service_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createServiceOffering') 
+          else
+            options.merge!('command' => 'createServiceOffering', 
+            'name' => args[0], 
+            'displaytext' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_snapshot.rb b/lib/fog/cloudstack/requests/compute/create_snapshot.rb
index feed4f7..5673548 100644
--- a/lib/fog/cloudstack/requests/compute/create_snapshot.rb
+++ b/lib/fog/cloudstack/requests/compute/create_snapshot.rb
@@ -1,21 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a snapshot for an account that already exists.
+      class Real
+        # Creates an instant snapshot of a volume.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createSnapshot.html]
-        def create_snapshot(options={})
-          options.merge!(
-            'command' => 'createSnapshot'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createSnapshot.html]
+        def create_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createSnapshot') 
+          else
+            options.merge!('command' => 'createSnapshot', 
+            'volumeid' => args[0])
+          end
           request(options)
         end
-
       end
-
+ 
       class Mock
         def create_snapshot(options={})
           snapshot_id = Fog::Cloudstack.uuid
@@ -38,7 +41,8 @@ module Fog
           self.data[:snapshots][snapshot_id]= snapshot
           {'createsnapshotresponse' => snapshot}
         end
-      end
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb b/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb
index 904e0db..cafc7ac 100644
--- a/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb
+++ b/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb
@@ -1,20 +1,29 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates an account.
+      class Real
+        # Creates a snapshot policy for the account.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createSnapshotPolicy.html]
-        def create_snapshot_policy(options={})
-          options.merge!(
-            'command' => 'createSnapshotPolicy'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createSnapshotPolicy.html]
+        def create_snapshot_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createSnapshotPolicy') 
+          else
+            options.merge!('command' => 'createSnapshotPolicy', 
+            'volumeid' => args[0], 
+            'maxsnaps' => args[1], 
+            'timezone' => args[2], 
+            'intervaltype' => args[3], 
+            'schedule' => args[4])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb b/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb
index a4e746a..ea674f9 100644
--- a/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb
+++ b/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb
@@ -1,21 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a new SSH key pair..
+      class Real
+        # Create a new keypair and returns the private key
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createSSHKeyPair.html]
-        def create_ssh_key_pair(name,options={})
-          options.merge!(
-            'command' => 'createSSHKeyPair',
-            'name' => name
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createSSHKeyPair.html]
+        def create_ssh_key_pair(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createSSHKeyPair') 
+          else
+            options.merge!('command' => 'createSSHKeyPair', 
+            'name' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
diff --git a/lib/fog/cloudstack/requests/compute/create_static_route.rb b/lib/fog/cloudstack/requests/compute/create_static_route.rb
new file mode 100644
index 0000000..8dc4376
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_static_route.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a static route
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createStaticRoute.html]
+        def create_static_route(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createStaticRoute') 
+          else
+            options.merge!('command' => 'createStaticRoute', 
+            'gatewayid' => args[0], 
+            'cidr' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_storage_network_ip_range.rb b/lib/fog/cloudstack/requests/compute/create_storage_network_ip_range.rb
new file mode 100644
index 0000000..6e3faad
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_storage_network_ip_range.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a Storage network IP range.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createStorageNetworkIpRange.html]
+        def create_storage_network_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createStorageNetworkIpRange') 
+          else
+            options.merge!('command' => 'createStorageNetworkIpRange', 
+            'podid' => args[0], 
+            'netmask' => args[1], 
+            'gateway' => args[2], 
+            'startip' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_storage_pool.rb b/lib/fog/cloudstack/requests/compute/create_storage_pool.rb
new file mode 100644
index 0000000..34c99b4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_storage_pool.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a storage pool.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createStoragePool.html]
+        def create_storage_pool(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createStoragePool') 
+          else
+            options.merge!('command' => 'createStoragePool', 
+            'url' => args[0], 
+            'name' => args[1], 
+            'zoneid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_tags.rb b/lib/fog/cloudstack/requests/compute/create_tags.rb
new file mode 100644
index 0000000..90c475a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_tags.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates resource tag(s)
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createTags.html]
+        def create_tags(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createTags') 
+          else
+            options.merge!('command' => 'createTags', 
+            'tags' => args[0], 
+            'resourcetype' => args[1], 
+            'resourceids' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_template.rb b/lib/fog/cloudstack/requests/compute/create_template.rb
new file mode 100644
index 0000000..19d0b98
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_template.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a template of a virtual machine. The virtual machine must be in a STOPPED state. A template created from this command is automatically designated as a private template visible to the account that created it.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createTemplate.html]
+        def create_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createTemplate') 
+          else
+            options.merge!('command' => 'createTemplate', 
+            'ostypeid' => args[0], 
+            'name' => args[1], 
+            'displaytext' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_user.rb b/lib/fog/cloudstack/requests/compute/create_user.rb
index 3949bc3..e19296f 100644
--- a/lib/fog/cloudstack/requests/compute/create_user.rb
+++ b/lib/fog/cloudstack/requests/compute/create_user.rb
@@ -1,20 +1,30 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a user for an account that already exists.
+      class Real
+        # Creates a user for an account that already exists
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createUser.html]
-        def create_user(options={})
-          options.merge!(
-            'command' => 'createUser'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createUser.html]
+        def create_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createUser') 
+          else
+            options.merge!('command' => 'createUser', 
+            'email' => args[0], 
+            'username' => args[1], 
+            'lastname' => args[2], 
+            'password' => args[3], 
+            'firstname' => args[4], 
+            'account' => args[5])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_virtual_router_element.rb b/lib/fog/cloudstack/requests/compute/create_virtual_router_element.rb
new file mode 100644
index 0000000..d0ba5dd
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_virtual_router_element.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Create a virtual router element.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVirtualRouterElement.html]
+        def create_virtual_router_element(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVirtualRouterElement') 
+          else
+            options.merge!('command' => 'createVirtualRouterElement', 
+            'nspid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vlan_ip_range.rb b/lib/fog/cloudstack/requests/compute/create_vlan_ip_range.rb
new file mode 100644
index 0000000..d967d6d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vlan_ip_range.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a VLAN IP range.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVlanIpRange.html]
+        def create_vlan_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVlanIpRange') 
+          else
+            options.merge!('command' => 'createVlanIpRange')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vm_snapshot.rb b/lib/fog/cloudstack/requests/compute/create_vm_snapshot.rb
new file mode 100644
index 0000000..ea1a3eb
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vm_snapshot.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates snapshot for a vm.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVMSnapshot.html]
+        def create_vm_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVMSnapshot') 
+          else
+            options.merge!('command' => 'createVMSnapshot', 
+            'virtualmachineid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_volume.rb b/lib/fog/cloudstack/requests/compute/create_volume.rb
index 7e57dd0..65de65a 100644
--- a/lib/fog/cloudstack/requests/compute/create_volume.rb
+++ b/lib/fog/cloudstack/requests/compute/create_volume.rb
@@ -1,21 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a volume for an account that already exists.
+      class Real
+        # Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/createVolume.html]
-        def create_volume(options={})
-          options.merge!(
-            'command' => 'createVolume'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVolume.html]
+        def create_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVolume') 
+          else
+            options.merge!('command' => 'createVolume', 
+            'name' => args[0])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def create_volume(options={})
           volume_id = Fog::Cloudstack.uuid
@@ -57,7 +60,8 @@ module Fog
           self.data[:volumes][volume_id]= volume
           {'createvolumeresponse' => volume}
         end
-      end
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_volume_on_filer.rb b/lib/fog/cloudstack/requests/compute/create_volume_on_filer.rb
new file mode 100644
index 0000000..afdc457
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_volume_on_filer.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Create a volume
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/createVolumeOnFiler.html]
+        def create_volume_on_filer(password, ipaddress, size, volumename, username, poolname, aggregatename, options={})
+          options.merge!(
+            'command' => 'createVolumeOnFiler', 
+            'password' => password, 
+            'ipaddress' => ipaddress, 
+            'size' => size, 
+            'volumename' => volumename, 
+            'username' => username, 
+            'poolname' => poolname, 
+            'aggregatename' => aggregatename  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vpc.rb b/lib/fog/cloudstack/requests/compute/create_vpc.rb
new file mode 100644
index 0000000..0e7cc99
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vpc.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a VPC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVPC.html]
+        def create_vpc(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVPC') 
+          else
+            options.merge!('command' => 'createVPC', 
+            'vpcofferingid' => args[0], 
+            'zoneid' => args[1], 
+            'name' => args[2], 
+            'cidr' => args[3], 
+            'displaytext' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vpcoffering.rb b/lib/fog/cloudstack/requests/compute/create_vpcoffering.rb
new file mode 100644
index 0000000..40c1da1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vpcoffering.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates VPC offering
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVPCOffering.html]
+        def create_vpcoffering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVPCOffering') 
+          else
+            options.merge!('command' => 'createVPCOffering', 
+            'supportedservices' => args[0], 
+            'name' => args[1], 
+            'displaytext' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vpn_connection.rb b/lib/fog/cloudstack/requests/compute/create_vpn_connection.rb
new file mode 100644
index 0000000..08f8c71
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vpn_connection.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Create site to site vpn connection
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVpnConnection.html]
+        def create_vpn_connection(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVpnConnection') 
+          else
+            options.merge!('command' => 'createVpnConnection', 
+            's2svpngatewayid' => args[0], 
+            's2scustomergatewayid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vpn_customer_gateway.rb b/lib/fog/cloudstack/requests/compute/create_vpn_customer_gateway.rb
new file mode 100644
index 0000000..e192f54
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vpn_customer_gateway.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates site to site vpn customer gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVpnCustomerGateway.html]
+        def create_vpn_customer_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVpnCustomerGateway') 
+          else
+            options.merge!('command' => 'createVpnCustomerGateway', 
+            'esppolicy' => args[0], 
+            'cidrlist' => args[1], 
+            'ikepolicy' => args[2], 
+            'gateway' => args[3], 
+            'ipsecpsk' => args[4])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_vpn_gateway.rb b/lib/fog/cloudstack/requests/compute/create_vpn_gateway.rb
new file mode 100644
index 0000000..0526d6a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/create_vpn_gateway.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates site to site vpn local gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createVpnGateway.html]
+        def create_vpn_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createVpnGateway') 
+          else
+            options.merge!('command' => 'createVpnGateway', 
+            'vpcid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/create_zone.rb b/lib/fog/cloudstack/requests/compute/create_zone.rb
index 7a3f4a6..38a5751 100644
--- a/lib/fog/cloudstack/requests/compute/create_zone.rb
+++ b/lib/fog/cloudstack/requests/compute/create_zone.rb
@@ -1,20 +1,28 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists zones.
+      class Real
+        # Creates a Zone.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listZones.html]
-        def create_zone(options={})
-          options.merge!(
-            'command' => 'createZone'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/createZone.html]
+        def create_zone(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'createZone') 
+          else
+            options.merge!('command' => 'createZone', 
+            'dns1' => args[0], 
+            'internaldns1' => args[1], 
+            'networktype' => args[2], 
+            'name' => args[3])
+          end
           request(options)
         end
+      end
+
+    end
+  end
+end
 
-      end # Real
-    end # Cloudstack
-  end # Compute
-end # Fog
diff --git a/lib/fog/cloudstack/requests/compute/dedicate_cluster.rb b/lib/fog/cloudstack/requests/compute/dedicate_cluster.rb
new file mode 100644
index 0000000..9406e27
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dedicate_cluster.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dedicate an existing cluster
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/dedicateCluster.html]
+        def dedicate_cluster(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'dedicateCluster') 
+          else
+            options.merge!('command' => 'dedicateCluster', 
+            'clusterid' => args[0], 
+            'domainid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/dedicate_guest_vlan_range.rb b/lib/fog/cloudstack/requests/compute/dedicate_guest_vlan_range.rb
new file mode 100644
index 0000000..d905f8f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dedicate_guest_vlan_range.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dedicates a guest vlan range to an account
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/dedicateGuestVlanRange.html]
+        def dedicate_guest_vlan_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'dedicateGuestVlanRange') 
+          else
+            options.merge!('command' => 'dedicateGuestVlanRange', 
+            'account' => args[0], 
+            'domainid' => args[1], 
+            'vlanrange' => args[2], 
+            'physicalnetworkid' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/dedicate_host.rb b/lib/fog/cloudstack/requests/compute/dedicate_host.rb
new file mode 100644
index 0000000..1543406
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dedicate_host.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dedicates a host.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/dedicateHost.html]
+        def dedicate_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'dedicateHost') 
+          else
+            options.merge!('command' => 'dedicateHost', 
+            'hostid' => args[0], 
+            'domainid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/dedicate_pod.rb b/lib/fog/cloudstack/requests/compute/dedicate_pod.rb
new file mode 100644
index 0000000..93d3ead
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dedicate_pod.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dedicates a Pod.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/dedicatePod.html]
+        def dedicate_pod(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'dedicatePod') 
+          else
+            options.merge!('command' => 'dedicatePod', 
+            'podid' => args[0], 
+            'domainid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/dedicate_public_ip_range.rb b/lib/fog/cloudstack/requests/compute/dedicate_public_ip_range.rb
new file mode 100644
index 0000000..362487b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dedicate_public_ip_range.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dedicates a Public IP range to an account
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/dedicatePublicIpRange.html]
+        def dedicate_public_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'dedicatePublicIpRange') 
+          else
+            options.merge!('command' => 'dedicatePublicIpRange', 
+            'domainid' => args[0], 
+            'account' => args[1], 
+            'id' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/dedicate_zone.rb b/lib/fog/cloudstack/requests/compute/dedicate_zone.rb
new file mode 100644
index 0000000..c063dc8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dedicate_zone.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dedicates a zones.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/dedicateZone.html]
+        def dedicate_zone(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'dedicateZone') 
+          else
+            options.merge!('command' => 'dedicateZone', 
+            'domainid' => args[0], 
+            'zoneid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_account.rb b/lib/fog/cloudstack/requests/compute/delete_account.rb
index 8311895..98af886 100644
--- a/lib/fog/cloudstack/requests/compute/delete_account.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_account.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a account, and all users associated with this account.
+      class Real
+        # Deletes a account, and all users associated with this account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteAccount.html]
-        def delete_account(options={})
-          options.merge!(
-            'command' => 'deleteAccount'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAccount.html]
+        def delete_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAccount') 
+          else
+            options.merge!('command' => 'deleteAccount', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_account_from_project.rb b/lib/fog/cloudstack/requests/compute/delete_account_from_project.rb
new file mode 100644
index 0000000..338e282
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_account_from_project.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes account from the project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAccountFromProject.html]
+        def delete_account_from_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAccountFromProject') 
+          else
+            options.merge!('command' => 'deleteAccountFromProject', 
+            'projectid' => args[0], 
+            'account' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_affinity_group.rb b/lib/fog/cloudstack/requests/compute/delete_affinity_group.rb
new file mode 100644
index 0000000..5030d68
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_affinity_group.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes affinity group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAffinityGroup.html]
+        def delete_affinity_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAffinityGroup') 
+          else
+            options.merge!('command' => 'deleteAffinityGroup')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_alerts.rb b/lib/fog/cloudstack/requests/compute/delete_alerts.rb
new file mode 100644
index 0000000..8e0ece4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_alerts.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete one or more alerts.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAlerts.html]
+        def delete_alerts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAlerts') 
+          else
+            options.merge!('command' => 'deleteAlerts')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_auto_scale_policy.rb b/lib/fog/cloudstack/requests/compute/delete_auto_scale_policy.rb
new file mode 100644
index 0000000..4376ca8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_auto_scale_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a autoscale policy.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAutoScalePolicy.html]
+        def delete_auto_scale_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAutoScalePolicy') 
+          else
+            options.merge!('command' => 'deleteAutoScalePolicy', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_group.rb b/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_group.rb
new file mode 100644
index 0000000..035a8c5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a autoscale vm group.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAutoScaleVmGroup.html]
+        def delete_auto_scale_vm_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAutoScaleVmGroup') 
+          else
+            options.merge!('command' => 'deleteAutoScaleVmGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_profile.rb b/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_profile.rb
new file mode 100644
index 0000000..76594c7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_profile.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a autoscale vm profile.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteAutoScaleVmProfile.html]
+        def delete_auto_scale_vm_profile(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteAutoScaleVmProfile') 
+          else
+            options.merge!('command' => 'deleteAutoScaleVmProfile', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_big_switch_vns_device.rb b/lib/fog/cloudstack/requests/compute/delete_big_switch_vns_device.rb
new file mode 100644
index 0000000..70001e0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_big_switch_vns_device.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a bigswitch vns device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteBigSwitchVnsDevice.html]
+        def delete_big_switch_vns_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteBigSwitchVnsDevice') 
+          else
+            options.merge!('command' => 'deleteBigSwitchVnsDevice', 
+            'vnsdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_cisco_asa1000v_resource.rb b/lib/fog/cloudstack/requests/compute/delete_cisco_asa1000v_resource.rb
new file mode 100644
index 0000000..ccdce15
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_cisco_asa1000v_resource.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Cisco ASA 1000v appliance
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteCiscoAsa1000vResource.html]
+        def delete_cisco_asa1000v_resource(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteCiscoAsa1000vResource') 
+          else
+            options.merge!('command' => 'deleteCiscoAsa1000vResource', 
+            'resourceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_cisco_nexus_vsm.rb b/lib/fog/cloudstack/requests/compute/delete_cisco_nexus_vsm.rb
new file mode 100644
index 0000000..cee0c73
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_cisco_nexus_vsm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a Cisco Nexus VSM device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteCiscoNexusVSM.html]
+        def delete_cisco_nexus_vsm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteCiscoNexusVSM') 
+          else
+            options.merge!('command' => 'deleteCiscoNexusVSM', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_cisco_vnmc_resource.rb b/lib/fog/cloudstack/requests/compute/delete_cisco_vnmc_resource.rb
new file mode 100644
index 0000000..bd94894
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_cisco_vnmc_resource.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Cisco Vnmc controller
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteCiscoVnmcResource.html]
+        def delete_cisco_vnmc_resource(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteCiscoVnmcResource') 
+          else
+            options.merge!('command' => 'deleteCiscoVnmcResource', 
+            'resourceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_cluster.rb b/lib/fog/cloudstack/requests/compute/delete_cluster.rb
new file mode 100644
index 0000000..e068cf3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_cluster.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a cluster.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteCluster.html]
+        def delete_cluster(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteCluster') 
+          else
+            options.merge!('command' => 'deleteCluster', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_condition.rb b/lib/fog/cloudstack/requests/compute/delete_condition.rb
new file mode 100644
index 0000000..bb1ed0d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_condition.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes a condition
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteCondition.html]
+        def delete_condition(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteCondition') 
+          else
+            options.merge!('command' => 'deleteCondition', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_counter.rb b/lib/fog/cloudstack/requests/compute/delete_counter.rb
new file mode 100644
index 0000000..3d12c4f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_counter.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a counter
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteCounter.html]
+        def delete_counter(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteCounter') 
+          else
+            options.merge!('command' => 'deleteCounter', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb b/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb
index 1921825..f9a1489 100644
--- a/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb
@@ -1,31 +1,33 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Updates a disk offering.
         #
-        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/root_admin/deleteDiskOffering.html]
-        def delete_disk_offering(options={})
-          options.merge!(
-            'command' => 'deleteDiskOffering'
-          )
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteDiskOffering.html]
+        def delete_disk_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteDiskOffering') 
+          else
+            options.merge!('command' => 'deleteDiskOffering', 
+            'id' => args[0])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
-
         def delete_disk_offering(options={})
           disk_offering_id = options['id']
           data[:disk_offerings].delete(disk_offering_id) if data[:disk_offerings][disk_offering_id]
 
           { 'deletediskofferingresponse' => { 'success' => 'true' } }
         end
+      end 
+    end
+  end
+end
 
-      end
-
-    end # Cloudstack
-  end # Compute
-end # Fog
diff --git a/lib/fog/cloudstack/requests/compute/delete_domain.rb b/lib/fog/cloudstack/requests/compute/delete_domain.rb
index 5a5a834..f480c7f 100644
--- a/lib/fog/cloudstack/requests/compute/delete_domain.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_domain.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified domain.
+      class Real
+        # Deletes a specified domain
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteDomain.html]
-        def delete_domain(options={})
-          options.merge!(
-            'command' => 'deleteDomain'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteDomain.html]
+        def delete_domain(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteDomain') 
+          else
+            options.merge!('command' => 'deleteDomain', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_egress_firewall_rule.rb b/lib/fog/cloudstack/requests/compute/delete_egress_firewall_rule.rb
new file mode 100644
index 0000000..65ca758
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_egress_firewall_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes an ggress firewall rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteEgressFirewallRule.html]
+        def delete_egress_firewall_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteEgressFirewallRule') 
+          else
+            options.merge!('command' => 'deleteEgressFirewallRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_events.rb b/lib/fog/cloudstack/requests/compute/delete_events.rb
new file mode 100644
index 0000000..2063f1a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_events.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete one or more events.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteEvents.html]
+        def delete_events(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteEvents') 
+          else
+            options.merge!('command' => 'deleteEvents')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_external_firewall.rb b/lib/fog/cloudstack/requests/compute/delete_external_firewall.rb
new file mode 100644
index 0000000..7bc83c9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_external_firewall.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes an external firewall appliance.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteExternalFirewall.html]
+        def delete_external_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteExternalFirewall') 
+          else
+            options.merge!('command' => 'deleteExternalFirewall', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_external_load_balancer.rb b/lib/fog/cloudstack/requests/compute/delete_external_load_balancer.rb
new file mode 100644
index 0000000..5ed05f6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_external_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a F5 external load balancer appliance added in a zone.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteExternalLoadBalancer.html]
+        def delete_external_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteExternalLoadBalancer') 
+          else
+            options.merge!('command' => 'deleteExternalLoadBalancer', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_f5_load_balancer.rb b/lib/fog/cloudstack/requests/compute/delete_f5_load_balancer.rb
new file mode 100644
index 0000000..e18d71b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_f5_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a F5 load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteF5LoadBalancer.html]
+        def delete_f5_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteF5LoadBalancer') 
+          else
+            options.merge!('command' => 'deleteF5LoadBalancer', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_firewall_rule.rb b/lib/fog/cloudstack/requests/compute/delete_firewall_rule.rb
new file mode 100644
index 0000000..1004af6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_firewall_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a firewall rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteFirewallRule.html]
+        def delete_firewall_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteFirewallRule') 
+          else
+            options.merge!('command' => 'deleteFirewallRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_global_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/delete_global_load_balancer_rule.rb
new file mode 100644
index 0000000..a6fb013
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_global_load_balancer_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a global load balancer rule.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteGlobalLoadBalancerRule.html]
+        def delete_global_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteGlobalLoadBalancerRule') 
+          else
+            options.merge!('command' => 'deleteGlobalLoadBalancerRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_host.rb b/lib/fog/cloudstack/requests/compute/delete_host.rb
new file mode 100644
index 0000000..f9b7af2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_host.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a host.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteHost.html]
+        def delete_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteHost') 
+          else
+            options.merge!('command' => 'deleteHost', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_image_store.rb b/lib/fog/cloudstack/requests/compute/delete_image_store.rb
new file mode 100644
index 0000000..7a0f772
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_image_store.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes an image store .
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteImageStore.html]
+        def delete_image_store(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteImageStore') 
+          else
+            options.merge!('command' => 'deleteImageStore', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_instance_group.rb b/lib/fog/cloudstack/requests/compute/delete_instance_group.rb
new file mode 100644
index 0000000..2df364d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_instance_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a vm group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteInstanceGroup.html]
+        def delete_instance_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteInstanceGroup') 
+          else
+            options.merge!('command' => 'deleteInstanceGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_ip_forwarding_rule.rb b/lib/fog/cloudstack/requests/compute/delete_ip_forwarding_rule.rb
new file mode 100644
index 0000000..a2026cd
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_ip_forwarding_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes an ip forwarding rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteIpForwardingRule.html]
+        def delete_ip_forwarding_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteIpForwardingRule') 
+          else
+            options.merge!('command' => 'deleteIpForwardingRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_iso.rb b/lib/fog/cloudstack/requests/compute/delete_iso.rb
new file mode 100644
index 0000000..9cc2352
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_iso.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes an ISO file.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteIso.html]
+        def delete_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteIso') 
+          else
+            options.merge!('command' => 'deleteIso', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_lb_health_check_policy.rb b/lib/fog/cloudstack/requests/compute/delete_lb_health_check_policy.rb
new file mode 100644
index 0000000..854b8da
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_lb_health_check_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a load balancer HealthCheck policy.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteLBHealthCheckPolicy.html]
+        def delete_lb_health_check_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteLBHealthCheckPolicy') 
+          else
+            options.merge!('command' => 'deleteLBHealthCheckPolicy', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_lb_stickiness_policy.rb b/lib/fog/cloudstack/requests/compute/delete_lb_stickiness_policy.rb
new file mode 100644
index 0000000..e51b31e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_lb_stickiness_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a LB stickiness policy.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteLBStickinessPolicy.html]
+        def delete_lb_stickiness_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteLBStickinessPolicy') 
+          else
+            options.merge!('command' => 'deleteLBStickinessPolicy', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_ldap_configuration.rb b/lib/fog/cloudstack/requests/compute/delete_ldap_configuration.rb
new file mode 100644
index 0000000..f6698f3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_ldap_configuration.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Remove an Ldap Configuration
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteLdapConfiguration.html]
+        def delete_ldap_configuration(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteLdapConfiguration') 
+          else
+            options.merge!('command' => 'deleteLdapConfiguration', 
+            'hostname' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_load_balancer.rb b/lib/fog/cloudstack/requests/compute/delete_load_balancer.rb
new file mode 100644
index 0000000..a3bd7f5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a load balancer
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteLoadBalancer.html]
+        def delete_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteLoadBalancer') 
+          else
+            options.merge!('command' => 'deleteLoadBalancer', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb
index 425a902..ee89426 100644
--- a/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a domain.
+      class Real
+        # Deletes a load balancer rule.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteLoadBalancerRule.html]
-        def delete_load_balancer_rule(options={})
-          options.merge!(
-            'command' => 'deleteLoadBalancerRule'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteLoadBalancerRule.html]
+        def delete_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteLoadBalancerRule') 
+          else
+            options.merge!('command' => 'deleteLoadBalancerRule', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_netscaler_load_balancer.rb b/lib/fog/cloudstack/requests/compute/delete_netscaler_load_balancer.rb
new file mode 100644
index 0000000..4019a35
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_netscaler_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a netscaler load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetscalerLoadBalancer.html]
+        def delete_netscaler_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetscalerLoadBalancer') 
+          else
+            options.merge!('command' => 'deleteNetscalerLoadBalancer', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_network.rb b/lib/fog/cloudstack/requests/compute/delete_network.rb
new file mode 100644
index 0000000..d418618
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_network.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetwork.html]
+        def delete_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetwork') 
+          else
+            options.merge!('command' => 'deleteNetwork', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_network_acl.rb b/lib/fog/cloudstack/requests/compute/delete_network_acl.rb
new file mode 100644
index 0000000..8c59f47
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_network_acl.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Network ACL
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetworkACL.html]
+        def delete_network_acl(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetworkACL') 
+          else
+            options.merge!('command' => 'deleteNetworkACL', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_network_acl_list.rb b/lib/fog/cloudstack/requests/compute/delete_network_acl_list.rb
new file mode 100644
index 0000000..a6dbfd4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_network_acl_list.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Network ACL
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetworkACLList.html]
+        def delete_network_acl_list(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetworkACLList') 
+          else
+            options.merge!('command' => 'deleteNetworkACLList', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_network_device.rb b/lib/fog/cloudstack/requests/compute/delete_network_device.rb
new file mode 100644
index 0000000..84f90c0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_network_device.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes network device.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetworkDevice.html]
+        def delete_network_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetworkDevice') 
+          else
+            options.merge!('command' => 'deleteNetworkDevice', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_network_offering.rb b/lib/fog/cloudstack/requests/compute/delete_network_offering.rb
new file mode 100644
index 0000000..1db6ba8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_network_offering.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a network offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetworkOffering.html]
+        def delete_network_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetworkOffering') 
+          else
+            options.merge!('command' => 'deleteNetworkOffering', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_network_service_provider.rb b/lib/fog/cloudstack/requests/compute/delete_network_service_provider.rb
new file mode 100644
index 0000000..916f289
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_network_service_provider.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Network Service Provider.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNetworkServiceProvider.html]
+        def delete_network_service_provider(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNetworkServiceProvider') 
+          else
+            options.merge!('command' => 'deleteNetworkServiceProvider', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_nicira_nvp_device.rb b/lib/fog/cloudstack/requests/compute/delete_nicira_nvp_device.rb
new file mode 100644
index 0000000..a2796a8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_nicira_nvp_device.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a nicira nvp device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteNiciraNvpDevice.html]
+        def delete_nicira_nvp_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteNiciraNvpDevice') 
+          else
+            options.merge!('command' => 'deleteNiciraNvpDevice', 
+            'nvpdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_open_daylight_controller.rb b/lib/fog/cloudstack/requests/compute/delete_open_daylight_controller.rb
new file mode 100644
index 0000000..f931060
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_open_daylight_controller.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes an OpenDyalight controler
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteOpenDaylightController.html]
+        def delete_open_daylight_controller(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteOpenDaylightController') 
+          else
+            options.merge!('command' => 'deleteOpenDaylightController', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_palo_alto_firewall.rb b/lib/fog/cloudstack/requests/compute/delete_palo_alto_firewall.rb
new file mode 100644
index 0000000..768782a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_palo_alto_firewall.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a Palo Alto firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deletePaloAltoFirewall.html]
+        def delete_palo_alto_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deletePaloAltoFirewall') 
+          else
+            options.merge!('command' => 'deletePaloAltoFirewall', 
+            'fwdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_physical_network.rb b/lib/fog/cloudstack/requests/compute/delete_physical_network.rb
new file mode 100644
index 0000000..fb2eb97
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_physical_network.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Physical Network.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deletePhysicalNetwork.html]
+        def delete_physical_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deletePhysicalNetwork') 
+          else
+            options.merge!('command' => 'deletePhysicalNetwork', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_pod.rb b/lib/fog/cloudstack/requests/compute/delete_pod.rb
new file mode 100644
index 0000000..6c1b87f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_pod.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Pod.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deletePod.html]
+        def delete_pod(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deletePod') 
+          else
+            options.merge!('command' => 'deletePod', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_pool.rb b/lib/fog/cloudstack/requests/compute/delete_pool.rb
new file mode 100644
index 0000000..8035e98
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_pool.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete a pool
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/deletePool.html]
+        def delete_pool(poolname, options={})
+          options.merge!(
+            'command' => 'deletePool', 
+            'poolname' => poolname  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb b/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb
index aa14a53..b5b9a9a 100644
--- a/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates a domain.
+      class Real
+        # Deletes a port forwarding rule
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deletePortForwardingRule.html]
-        def delete_port_forwarding_rule(options={})
-          options.merge!(
-            'command' => 'deletePortForwardingRule'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deletePortForwardingRule.html]
+        def delete_port_forwarding_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deletePortForwardingRule') 
+          else
+            options.merge!('command' => 'deletePortForwardingRule', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_portable_ip_range.rb b/lib/fog/cloudstack/requests/compute/delete_portable_ip_range.rb
new file mode 100644
index 0000000..7a3b9ab
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_portable_ip_range.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # deletes a range of portable public IP's associated with a region
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deletePortableIpRange.html]
+        def delete_portable_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deletePortableIpRange') 
+          else
+            options.merge!('command' => 'deletePortableIpRange', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_private_gateway.rb b/lib/fog/cloudstack/requests/compute/delete_private_gateway.rb
new file mode 100644
index 0000000..36205d1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_private_gateway.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Private gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deletePrivateGateway.html]
+        def delete_private_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deletePrivateGateway') 
+          else
+            options.merge!('command' => 'deletePrivateGateway', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_project.rb b/lib/fog/cloudstack/requests/compute/delete_project.rb
new file mode 100644
index 0000000..3300243
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_project.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteProject.html]
+        def delete_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteProject') 
+          else
+            options.merge!('command' => 'deleteProject', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_project_invitation.rb b/lib/fog/cloudstack/requests/compute/delete_project_invitation.rb
new file mode 100644
index 0000000..ee07771
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_project_invitation.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Accepts or declines project invitation
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteProjectInvitation.html]
+        def delete_project_invitation(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteProjectInvitation') 
+          else
+            options.merge!('command' => 'deleteProjectInvitation', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_remote_access_vpn.rb b/lib/fog/cloudstack/requests/compute/delete_remote_access_vpn.rb
new file mode 100644
index 0000000..2076540
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_remote_access_vpn.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Destroys a l2tp/ipsec remote access vpn
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteRemoteAccessVpn.html]
+        def delete_remote_access_vpn(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteRemoteAccessVpn') 
+          else
+            options.merge!('command' => 'deleteRemoteAccessVpn', 
+            'publicipid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_secondary_staging_store.rb b/lib/fog/cloudstack/requests/compute/delete_secondary_staging_store.rb
new file mode 100644
index 0000000..a17b96c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_secondary_staging_store.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a secondary staging store .
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSecondaryStagingStore.html]
+        def delete_secondary_staging_store(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSecondaryStagingStore') 
+          else
+            options.merge!('command' => 'deleteSecondaryStagingStore', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_security_group.rb b/lib/fog/cloudstack/requests/compute/delete_security_group.rb
index 6022682..186b45e 100644
--- a/lib/fog/cloudstack/requests/compute/delete_security_group.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_security_group.rb
@@ -1,21 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Creates an account.
+      class Real
+        # Deletes security group
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteSecurityGroup.html]
-        def delete_security_group(options={})
-          options.merge!(
-            'command' => 'deleteSecurityGroup'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSecurityGroup.html]
+        def delete_security_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSecurityGroup') 
+          else
+            options.merge!('command' => 'deleteSecurityGroup')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def delete_security_group(options={})
           security_group_id = options['id']
@@ -30,8 +32,8 @@ module Fog
             raise Fog::Compute::Cloudstack::BadRequest.new('No security_group found')
           end
         end
-      end
-
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_service_offering.rb b/lib/fog/cloudstack/requests/compute/delete_service_offering.rb
new file mode 100644
index 0000000..6d3c5aa
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_service_offering.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a service offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteServiceOffering.html]
+        def delete_service_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteServiceOffering') 
+          else
+            options.merge!('command' => 'deleteServiceOffering', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_snapshot.rb b/lib/fog/cloudstack/requests/compute/delete_snapshot.rb
index 7a6742b..03183a7 100644
--- a/lib/fog/cloudstack/requests/compute/delete_snapshot.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_snapshot.rb
@@ -1,26 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified snapshot.
+      class Real
+        # Deletes a snapshot of a disk volume.
         #
-        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/user/deleteSnapshot.html]
-        def delete_snapshot(options={})
-          options.merge!(
-            'command' => 'deleteSnapshot'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSnapshot.html]
+        def delete_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSnapshot') 
+          else
+            options.merge!('command' => 'deleteSnapshot', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
-
-       class Mock
-
-        # Deletes a specified snapashot.
-        #
-        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/user/deleteSnapshot.html]
+ 
+      class Mock
         def delete_snapshot(options={})
           snapshot_id = options['id']
           snapshots = self.data[:snapshots]
@@ -55,8 +54,8 @@ module Fog
           job_id
         end
 
-      end
-
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb b/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb
index a2b9765..0a44cbf 100644
--- a/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified user.
+      class Real
+        # Deletes snapshot policies for the account.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteSnapshotPolicies.html]
-        def delete_snapshot_policy(options={})
-          options.merge!(
-            'command' => 'deleteSnapshotPolicies'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSnapshotPolicies.html]
+        def delete_snapshot_policies(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSnapshotPolicies') 
+          else
+            options.merge!('command' => 'deleteSnapshotPolicies')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_srx_firewall.rb b/lib/fog/cloudstack/requests/compute/delete_srx_firewall.rb
new file mode 100644
index 0000000..29ddf2b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_srx_firewall.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        #  delete a SRX firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSrxFirewall.html]
+        def delete_srx_firewall(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSrxFirewall') 
+          else
+            options.merge!('command' => 'deleteSrxFirewall', 
+            'fwdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb b/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb
index 032a938..f836fac 100644
--- a/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb
@@ -1,21 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Deletes a keypair by name
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/deleteSSHKeyPair.html]
-        def delete_ssh_key_pair(name,options={})
-          options.merge!(
-            'command' => 'deleteSSHKeyPair',
-            'name' => name
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSSHKeyPair.html]
+        def delete_ssh_key_pair(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSSHKeyPair') 
+          else
+            options.merge!('command' => 'deleteSSHKeyPair', 
+            'name' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_ssl_cert.rb b/lib/fog/cloudstack/requests/compute/delete_ssl_cert.rb
new file mode 100644
index 0000000..9c4832d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_ssl_cert.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete a certificate to cloudstack
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteSslCert.html]
+        def delete_ssl_cert(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteSslCert') 
+          else
+            options.merge!('command' => 'deleteSslCert', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_static_route.rb b/lib/fog/cloudstack/requests/compute/delete_static_route.rb
new file mode 100644
index 0000000..3e2f376
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_static_route.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a static route
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteStaticRoute.html]
+        def delete_static_route(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteStaticRoute') 
+          else
+            options.merge!('command' => 'deleteStaticRoute', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_storage_network_ip_range.rb b/lib/fog/cloudstack/requests/compute/delete_storage_network_ip_range.rb
new file mode 100644
index 0000000..fc51804
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_storage_network_ip_range.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a storage network IP Range.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteStorageNetworkIpRange.html]
+        def delete_storage_network_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteStorageNetworkIpRange') 
+          else
+            options.merge!('command' => 'deleteStorageNetworkIpRange', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_storage_pool.rb b/lib/fog/cloudstack/requests/compute/delete_storage_pool.rb
new file mode 100644
index 0000000..734f7d4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_storage_pool.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a storage pool.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteStoragePool.html]
+        def delete_storage_pool(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteStoragePool') 
+          else
+            options.merge!('command' => 'deleteStoragePool', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_tags.rb b/lib/fog/cloudstack/requests/compute/delete_tags.rb
new file mode 100644
index 0000000..05e1642
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_tags.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deleting resource tag(s)
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteTags.html]
+        def delete_tags(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteTags') 
+          else
+            options.merge!('command' => 'deleteTags', 
+            'resourceids' => args[0], 
+            'resourcetype' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_template.rb b/lib/fog/cloudstack/requests/compute/delete_template.rb
index 6e6c112..e1ad05c 100644
--- a/lib/fog/cloudstack/requests/compute/delete_template.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_template.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified template.
+      class Real
+        # Deletes a template from the system. All virtual machines using the deleted template will not be affected.
         #
-        # {CloudStack API Reference}[http://http://download.cloud.com/releases/3.0.0/api_3.0.0/user/deleteTemplate.html]
-        def delete_template(options={})
-          options.merge!(
-            'command' => 'deleteTemplate'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteTemplate.html]
+        def delete_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteTemplate') 
+          else
+            options.merge!('command' => 'deleteTemplate', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_traffic_monitor.rb b/lib/fog/cloudstack/requests/compute/delete_traffic_monitor.rb
new file mode 100644
index 0000000..3866a7a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_traffic_monitor.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes an traffic monitor host.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteTrafficMonitor.html]
+        def delete_traffic_monitor(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteTrafficMonitor') 
+          else
+            options.merge!('command' => 'deleteTrafficMonitor', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_traffic_type.rb b/lib/fog/cloudstack/requests/compute/delete_traffic_type.rb
new file mode 100644
index 0000000..1f473c7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_traffic_type.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes traffic type of a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteTrafficType.html]
+        def delete_traffic_type(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteTrafficType') 
+          else
+            options.merge!('command' => 'deleteTrafficType', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_ucs_manager.rb b/lib/fog/cloudstack/requests/compute/delete_ucs_manager.rb
new file mode 100644
index 0000000..0de8876
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_ucs_manager.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete a Ucs manager
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/deleteUcsManager.html]
+        def delete_ucs_manager(ucsmanagerid, options={})
+          options.merge!(
+            'command' => 'deleteUcsManager', 
+            'ucsmanagerid' => ucsmanagerid  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_user.rb b/lib/fog/cloudstack/requests/compute/delete_user.rb
index 9ab3755..c5ab74e 100644
--- a/lib/fog/cloudstack/requests/compute/delete_user.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_user.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified user.
+      class Real
+        # Deletes a user for an account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteUser.html]
-        def delete_user(options={})
-          options.merge!(
-            'command' => 'deleteUser'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteUser.html]
+        def delete_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteUser') 
+          else
+            options.merge!('command' => 'deleteUser', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vlan_ip_range.rb b/lib/fog/cloudstack/requests/compute/delete_vlan_ip_range.rb
new file mode 100644
index 0000000..6582bed
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vlan_ip_range.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates a VLAN IP range.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVlanIpRange.html]
+        def delete_vlan_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVlanIpRange') 
+          else
+            options.merge!('command' => 'deleteVlanIpRange', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vm_snapshot.rb b/lib/fog/cloudstack/requests/compute/delete_vm_snapshot.rb
new file mode 100644
index 0000000..cf49d29
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vm_snapshot.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a vmsnapshot.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVMSnapshot.html]
+        def delete_vm_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVMSnapshot') 
+          else
+            options.merge!('command' => 'deleteVMSnapshot', 
+            'vmsnapshotid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_volume.rb b/lib/fog/cloudstack/requests/compute/delete_volume.rb
index 9598a02..e9638f9 100644
--- a/lib/fog/cloudstack/requests/compute/delete_volume.rb
+++ b/lib/fog/cloudstack/requests/compute/delete_volume.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified user.
+      class Real
+        # Deletes a detached disk volume.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteVolume.html]
-        def delete_volume(options={})
-          options.merge!(
-            'command' => 'deleteVolume'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVolume.html]
+        def delete_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVolume') 
+          else
+            options.merge!('command' => 'deleteVolume', 
+            'id' => args[0])
+          end
           request(options)
         end
-
-      end # Real
+      end
+ 
       class Mock
         def delete_volume(options={})
           volume_id = options['id']
@@ -34,7 +38,8 @@ module Fog
             }
           end
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vpc.rb b/lib/fog/cloudstack/requests/compute/delete_vpc.rb
new file mode 100644
index 0000000..87b8b0f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vpc.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a VPC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVPC.html]
+        def delete_vpc(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVPC') 
+          else
+            options.merge!('command' => 'deleteVPC', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vpcoffering.rb b/lib/fog/cloudstack/requests/compute/delete_vpcoffering.rb
new file mode 100644
index 0000000..a3f9113
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vpcoffering.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes VPC offering
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVPCOffering.html]
+        def delete_vpcoffering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVPCOffering') 
+          else
+            options.merge!('command' => 'deleteVPCOffering', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vpn_connection.rb b/lib/fog/cloudstack/requests/compute/delete_vpn_connection.rb
new file mode 100644
index 0000000..5da4ebc
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vpn_connection.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete site to site vpn connection
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVpnConnection.html]
+        def delete_vpn_connection(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVpnConnection') 
+          else
+            options.merge!('command' => 'deleteVpnConnection', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vpn_customer_gateway.rb b/lib/fog/cloudstack/requests/compute/delete_vpn_customer_gateway.rb
new file mode 100644
index 0000000..c2d24dc
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vpn_customer_gateway.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete site to site vpn customer gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVpnCustomerGateway.html]
+        def delete_vpn_customer_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVpnCustomerGateway') 
+          else
+            options.merge!('command' => 'deleteVpnCustomerGateway', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_vpn_gateway.rb b/lib/fog/cloudstack/requests/compute/delete_vpn_gateway.rb
new file mode 100644
index 0000000..d40d524
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_vpn_gateway.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Delete site to site vpn gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteVpnGateway.html]
+        def delete_vpn_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteVpnGateway') 
+          else
+            options.merge!('command' => 'deleteVpnGateway', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/delete_zone.rb b/lib/fog/cloudstack/requests/compute/delete_zone.rb
new file mode 100644
index 0000000..bb58a2f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/delete_zone.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Deletes a Zone.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deleteZone.html]
+        def delete_zone(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deleteZone') 
+          else
+            options.merge!('command' => 'deleteZone', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb
index 52aeb85..33339b4 100644
--- a/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb
@@ -1,34 +1,27 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deployVirtualMachine.html]
-        def deploy_virtual_machine(options={})
-          options.merge!(
-            'command' => 'deployVirtualMachine'
-          )
-
-          if security_group_ids = options.delete('securitygroupids')
-            options.merge!('securitygroupids' => Array(security_group_ids).join(','))
-          end
-
-          if security_group_names = options.delete('securitygroupnames')
-            options.merge!('securitygroupnames' => Array(security_group_names).join(','))
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/deployVirtualMachine.html]
+        def deploy_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'deployVirtualMachine') 
+          else
+            options.merge!('command' => 'deployVirtualMachine', 
+            'templateid' => args[0], 
+            'zoneid' => args[1], 
+            'serviceofferingid' => args[2])
           end
-
-          if network_ids = options.delete('networkids')
-            options.merge!('networkids' => Array(network_ids).join(','))
-          end
-
           request(options)
         end
-      end # Real
-
+      end
+ 
       class Mock
-
         def deploy_virtual_machine(options={})
           zone_id = options['zoneid']
           unless zone_id
@@ -123,7 +116,8 @@ module Fog
           self.data[:servers][identity]= virtual_machine
           {'deployvirtualmachineresponse' => virtual_machine}
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/destroy_lun_on_filer.rb b/lib/fog/cloudstack/requests/compute/destroy_lun_on_filer.rb
new file mode 100644
index 0000000..730ff91
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/destroy_lun_on_filer.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Destroy a LUN
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/destroyLunOnFiler.html]
+        def destroy_lun_on_filer(path, options={})
+          options.merge!(
+            'command' => 'destroyLunOnFiler', 
+            'path' => path  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/destroy_router.rb b/lib/fog/cloudstack/requests/compute/destroy_router.rb
new file mode 100644
index 0000000..0eae54e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/destroy_router.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Destroys a router.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/destroyRouter.html]
+        def destroy_router(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'destroyRouter') 
+          else
+            options.merge!('command' => 'destroyRouter', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/destroy_system_vm.rb b/lib/fog/cloudstack/requests/compute/destroy_system_vm.rb
new file mode 100644
index 0000000..1f6ce36
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/destroy_system_vm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Destroyes a system virtual machine.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/destroySystemVm.html]
+        def destroy_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'destroySystemVm') 
+          else
+            options.merge!('command' => 'destroySystemVm', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb
index 3f8c204..1b109a6 100644
--- a/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb
@@ -1,23 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates account information for the authenticated user.
+      class Real
+        # Destroys a virtual machine. Once destroyed, only the administrator can recover it.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/destroyVirtualMachine.html]
-        def destroy_virtual_machine(options={})
-          options.merge!(
-            'command' => 'destroyVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/destroyVirtualMachine.html]
+        def destroy_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'destroyVirtualMachine') 
+          else
+            options.merge!('command' => 'destroyVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
-
         def destroy_virtual_machine(options={})
           identity = options["id"]
 
@@ -45,7 +47,8 @@ module Fog
 
           {"destroyvirtualmachineresponse" => {"jobid" => job_id}}
         end
-      end
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/destroy_volume_on_filer.rb b/lib/fog/cloudstack/requests/compute/destroy_volume_on_filer.rb
new file mode 100644
index 0000000..297b9aa
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/destroy_volume_on_filer.rb
@@ -0,0 +1,23 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Destroy a Volume
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/destroyVolumeOnFiler.html]
+        def destroy_volume_on_filer(ipaddress, aggregatename, volumename, options={})
+          options.merge!(
+            'command' => 'destroyVolumeOnFiler', 
+            'ipaddress' => ipaddress, 
+            'aggregatename' => aggregatename, 
+            'volumename' => volumename  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/detach_iso.rb b/lib/fog/cloudstack/requests/compute/detach_iso.rb
new file mode 100644
index 0000000..d8568d9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/detach_iso.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Detaches any ISO file (if any) currently attached to a virtual machine.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/detachIso.html]
+        def detach_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'detachIso') 
+          else
+            options.merge!('command' => 'detachIso', 
+            'virtualmachineid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/detach_volume.rb b/lib/fog/cloudstack/requests/compute/detach_volume.rb
index e639b9c..3458a9a 100644
--- a/lib/fog/cloudstack/requests/compute/detach_volume.rb
+++ b/lib/fog/cloudstack/requests/compute/detach_volume.rb
@@ -1,23 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Deletes a specified domain.
+      class Real
+        # Detaches a disk volume from a virtual machine.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/detachVolume.html]
-        def detach_volume(options={})
-          options.merge!(
-            'command' => 'detachVolume'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/detachVolume.html]
+        def detach_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'detachVolume') 
+          else
+            options.merge!('command' => 'detachVolume')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
-
         def detach_volume(options={})
           volume_id = options['id']
 
@@ -56,7 +57,8 @@ module Fog
             }
           }
         end
-      end # Mock
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/disable_account.rb b/lib/fog/cloudstack/requests/compute/disable_account.rb
index ec87a7b..1db6a35 100644
--- a/lib/fog/cloudstack/requests/compute/disable_account.rb
+++ b/lib/fog/cloudstack/requests/compute/disable_account.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Disables an account.
+      class Real
+        # Disables an account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/disableAccount.html]
-        def disable_account(options={})
-          options.merge!(
-            'command' => 'disableAccount'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/disableAccount.html]
+        def disable_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'disableAccount') 
+          else
+            options.merge!('command' => 'disableAccount', 
+            'lock' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/disable_auto_scale_vm_group.rb b/lib/fog/cloudstack/requests/compute/disable_auto_scale_vm_group.rb
new file mode 100644
index 0000000..df520d7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/disable_auto_scale_vm_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Disables an AutoScale Vm Group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/disableAutoScaleVmGroup.html]
+        def disable_auto_scale_vm_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'disableAutoScaleVmGroup') 
+          else
+            options.merge!('command' => 'disableAutoScaleVmGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/disable_cisco_nexus_vsm.rb b/lib/fog/cloudstack/requests/compute/disable_cisco_nexus_vsm.rb
new file mode 100644
index 0000000..bc635ea
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/disable_cisco_nexus_vsm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # disable a Cisco Nexus VSM device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/disableCiscoNexusVSM.html]
+        def disable_cisco_nexus_vsm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'disableCiscoNexusVSM') 
+          else
+            options.merge!('command' => 'disableCiscoNexusVSM', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/disable_static_nat.rb b/lib/fog/cloudstack/requests/compute/disable_static_nat.rb
new file mode 100644
index 0000000..4a02d7e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/disable_static_nat.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Disables static rule for given ip address
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/disableStaticNat.html]
+        def disable_static_nat(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'disableStaticNat') 
+          else
+            options.merge!('command' => 'disableStaticNat', 
+            'ipaddressid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/disable_user.rb b/lib/fog/cloudstack/requests/compute/disable_user.rb
index 4f2728a..5a07db1 100644
--- a/lib/fog/cloudstack/requests/compute/disable_user.rb
+++ b/lib/fog/cloudstack/requests/compute/disable_user.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Disables a user account.
+      class Real
+        # Disables a user account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/disableUser.html]
-        def disable_user(options={})
-          options.merge!(
-            'command' => 'disableUser'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/disableUser.html]
+        def disable_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'disableUser') 
+          else
+            options.merge!('command' => 'disableUser', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/disassociate_ip_address.rb b/lib/fog/cloudstack/requests/compute/disassociate_ip_address.rb
new file mode 100644
index 0000000..78332aa
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/disassociate_ip_address.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Disassociates an ip address from the account.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/disassociateIpAddress.html]
+        def disassociate_ip_address(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'disassociateIpAddress') 
+          else
+            options.merge!('command' => 'disassociateIpAddress', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/disassociate_ucs_profile_from_blade.rb b/lib/fog/cloudstack/requests/compute/disassociate_ucs_profile_from_blade.rb
new file mode 100644
index 0000000..f4fce61
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/disassociate_ucs_profile_from_blade.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # disassociate a profile from a blade
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/disassociateUcsProfileFromBlade.html]
+        def disassociate_ucs_profile_from_blade(bladeid, options={})
+          options.merge!(
+            'command' => 'disassociateUcsProfileFromBlade', 
+            'bladeid' => bladeid  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/dissociate_lun.rb b/lib/fog/cloudstack/requests/compute/dissociate_lun.rb
new file mode 100644
index 0000000..641385b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/dissociate_lun.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Dissociate a LUN
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/dissociateLun.html]
+        def dissociate_lun(iqn, path, options={})
+          options.merge!(
+            'command' => 'dissociateLun', 
+            'iqn' => iqn, 
+            'path' => path  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/enable_account.rb b/lib/fog/cloudstack/requests/compute/enable_account.rb
index ad83d1b..d6dbf6c 100644
--- a/lib/fog/cloudstack/requests/compute/enable_account.rb
+++ b/lib/fog/cloudstack/requests/compute/enable_account.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Enables an account.
+      class Real
+        # Enables an account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/enableAccount.html]
-        def enable_account(options={})
-          options.merge!(
-            'command' => 'enableAccount'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/enableAccount.html]
+        def enable_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'enableAccount') 
+          else
+            options.merge!('command' => 'enableAccount')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/enable_auto_scale_vm_group.rb b/lib/fog/cloudstack/requests/compute/enable_auto_scale_vm_group.rb
new file mode 100644
index 0000000..6a17494
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/enable_auto_scale_vm_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Enables an AutoScale Vm Group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/enableAutoScaleVmGroup.html]
+        def enable_auto_scale_vm_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'enableAutoScaleVmGroup') 
+          else
+            options.merge!('command' => 'enableAutoScaleVmGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/enable_cisco_nexus_vsm.rb b/lib/fog/cloudstack/requests/compute/enable_cisco_nexus_vsm.rb
new file mode 100644
index 0000000..011227f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/enable_cisco_nexus_vsm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Enable a Cisco Nexus VSM device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/enableCiscoNexusVSM.html]
+        def enable_cisco_nexus_vsm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'enableCiscoNexusVSM') 
+          else
+            options.merge!('command' => 'enableCiscoNexusVSM', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/enable_static_nat.rb b/lib/fog/cloudstack/requests/compute/enable_static_nat.rb
new file mode 100644
index 0000000..4476959
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/enable_static_nat.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Enables static nat for given ip address
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/enableStaticNat.html]
+        def enable_static_nat(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'enableStaticNat') 
+          else
+            options.merge!('command' => 'enableStaticNat', 
+            'ipaddressid' => args[0], 
+            'virtualmachineid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/enable_storage_maintenance.rb b/lib/fog/cloudstack/requests/compute/enable_storage_maintenance.rb
new file mode 100644
index 0000000..3cc9071
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/enable_storage_maintenance.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Puts storage pool into maintenance state
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/enableStorageMaintenance.html]
+        def enable_storage_maintenance(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'enableStorageMaintenance') 
+          else
+            options.merge!('command' => 'enableStorageMaintenance', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/enable_user.rb b/lib/fog/cloudstack/requests/compute/enable_user.rb
index 1e3c038..54fd2c7 100644
--- a/lib/fog/cloudstack/requests/compute/enable_user.rb
+++ b/lib/fog/cloudstack/requests/compute/enable_user.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Enables a user account.
+      class Real
+        # Enables a user account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/enableUser.html]
-        def enable_user(options={})
-          options.merge!(
-            'command' => 'enableUser'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/enableUser.html]
+        def enable_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'enableUser') 
+          else
+            options.merge!('command' => 'enableUser', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/expunge_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/expunge_virtual_machine.rb
new file mode 100644
index 0000000..c8d9349
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/expunge_virtual_machine.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Expunge a virtual machine. Once expunged, it cannot be recoverd.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/expungeVirtualMachine.html]
+        def expunge_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'expungeVirtualMachine') 
+          else
+            options.merge!('command' => 'expungeVirtualMachine', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/extract_iso.rb b/lib/fog/cloudstack/requests/compute/extract_iso.rb
new file mode 100644
index 0000000..2839e41
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/extract_iso.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Extracts an ISO
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/extractIso.html]
+        def extract_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'extractIso') 
+          else
+            options.merge!('command' => 'extractIso', 
+            'id' => args[0], 
+            'mode' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/extract_template.rb b/lib/fog/cloudstack/requests/compute/extract_template.rb
new file mode 100644
index 0000000..cc2b6f6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/extract_template.rb
@@ -0,0 +1,65 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Extracts a template
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/extractTemplate.html]
+        def extract_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'extractTemplate') 
+          else
+            options.merge!('command' => 'extractTemplate', 
+            'mode' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+ 
+      class Mock
+        def extract_template(options={})
+          Fog.credentials[:cloudstack_zone_id] = 1105
+
+          template_id = options['id']
+          template_mode = options['mode']
+
+          zoneid = self.data[:zones].keys[0]
+          zone = self.data[:zones][zoneid]
+
+          template = {}
+          template['id'] = template_id
+          template['name'] = "test template"
+          template['extractId'] = 1
+          template['accountid'] = 1
+          template['state'] = "DOWNLOAD_URL_CREATED"
+          template['zoneid'] = zoneid
+          template['zonename'] = self.data[:zones][zoneid]["name"]
+          template['extractMode'] = template_mode
+          template['url'] = "http:%2F%2Fexample.com"
+
+          job_id = 1
+          job = {
+            "jobid"         => job_id,
+            "jobstatus"     => 1,
+            "jobprocstatus" => 0,
+            "jobresultcode" => 0,
+            "jobresulttype" => "object",
+            "jobresult"     => { "template" => template }
+          }
+
+          self.data[:jobs][job_id] = job
+          {
+            "extracttemplateresponse" => {
+              "jobid" => job_id
+            }
+          }
+        end
+      end # Mock 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/extract_volume.rb b/lib/fog/cloudstack/requests/compute/extract_volume.rb
new file mode 100644
index 0000000..cba86b6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/extract_volume.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Extracts volume
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/extractVolume.html]
+        def extract_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'extractVolume') 
+          else
+            options.merge!('command' => 'extractVolume', 
+            'mode' => args[0], 
+            'id' => args[1], 
+            'zoneid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/find_hosts_for_migration.rb b/lib/fog/cloudstack/requests/compute/find_hosts_for_migration.rb
new file mode 100644
index 0000000..1e103ae
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/find_hosts_for_migration.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Find hosts suitable for migrating a virtual machine.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/findHostsForMigration.html]
+        def find_hosts_for_migration(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'findHostsForMigration') 
+          else
+            options.merge!('command' => 'findHostsForMigration', 
+            'virtualmachineid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/find_storage_pools_for_migration.rb b/lib/fog/cloudstack/requests/compute/find_storage_pools_for_migration.rb
new file mode 100644
index 0000000..87b33c1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/find_storage_pools_for_migration.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists storage pools available for migration of a volume.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/findStoragePoolsForMigration.html]
+        def find_storage_pools_for_migration(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'findStoragePoolsForMigration') 
+          else
+            options.merge!('command' => 'findStoragePoolsForMigration', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/generate_alert.rb b/lib/fog/cloudstack/requests/compute/generate_alert.rb
new file mode 100644
index 0000000..5b6655d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/generate_alert.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Generates an alert
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/generateAlert.html]
+        def generate_alert(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'generateAlert') 
+          else
+            options.merge!('command' => 'generateAlert', 
+            'description' => args[0], 
+            'name' => args[1], 
+            'type' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/generate_usage_records.rb b/lib/fog/cloudstack/requests/compute/generate_usage_records.rb
index 907c29e..c044db5 100644
--- a/lib/fog/cloudstack/requests/compute/generate_usage_records.rb
+++ b/lib/fog/cloudstack/requests/compute/generate_usage_records.rb
@@ -1,28 +1,26 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists all available networks.
+      class Real
+        # Generates usage records. This will generate records only if there any records to be generated, i.e if the scheduled usage job was not run or failed
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/generateUsageRecords.html]
-        def generate_usage_records(options={})
-          options.merge!(
-            'command' => 'generateUsageRecords'
-          )
-
-          if startdate = options.delete('startdate')
-            options.merge!('startdate' => startdate.strftime('%Y-%m-%d'))
-          end
-
-          if enddate = options.delete('enddate')
-            options.merge!('enddate' => enddate.strftime('%Y-%m-%d'))
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/generateUsageRecords.html]
+        def generate_usage_records(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'generateUsageRecords') 
+          else
+            options.merge!('command' => 'generateUsageRecords', 
+            'enddate' => args[0], 
+            'startdate' => args[1])
           end
-
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/get_api_limit.rb b/lib/fog/cloudstack/requests/compute/get_api_limit.rb
new file mode 100644
index 0000000..d147fe7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/get_api_limit.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Get API limit count for the caller
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/getApiLimit.html]
+        def get_api_limit(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'getApiLimit') 
+          else
+            options.merge!('command' => 'getApiLimit')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/get_cloud_identifier.rb b/lib/fog/cloudstack/requests/compute/get_cloud_identifier.rb
new file mode 100644
index 0000000..ed66d70
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/get_cloud_identifier.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Retrieves a cloud identifier.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/getCloudIdentifier.html]
+        def get_cloud_identifier(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'getCloudIdentifier') 
+          else
+            options.merge!('command' => 'getCloudIdentifier', 
+            'userid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/get_user.rb b/lib/fog/cloudstack/requests/compute/get_user.rb
new file mode 100644
index 0000000..9fd7ee5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/get_user.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Find user account by API key
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/getUser.html]
+        def get_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'getUser') 
+          else
+            options.merge!('command' => 'getUser', 
+            'apikey' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/get_virtual_machine_user_data.rb b/lib/fog/cloudstack/requests/compute/get_virtual_machine_user_data.rb
new file mode 100644
index 0000000..7d70f74
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/get_virtual_machine_user_data.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Returns user data associated with the VM
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/getVirtualMachineUserData.html]
+        def get_virtual_machine_user_data(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'getVirtualMachineUserData') 
+          else
+            options.merge!('command' => 'getVirtualMachineUserData', 
+            'virtualmachineid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/get_vm_password.rb b/lib/fog/cloudstack/requests/compute/get_vm_password.rb
index 1704da2..1d82daa 100644
--- a/lib/fog/cloudstack/requests/compute/get_vm_password.rb
+++ b/lib/fog/cloudstack/requests/compute/get_vm_password.rb
@@ -1,21 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Returns an encrypted password for the VM
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/getVMPassword.html]
-        def get_vm_password(id)
-          options = {
-            'command' => 'getVMPassword',
-            'id' => id
-          }
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/getVMPassword.html]
+        def get_vm_password(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'getVMPassword') 
+          else
+            options.merge!('command' => 'getVMPassword', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/import_ldap_users.rb b/lib/fog/cloudstack/requests/compute/import_ldap_users.rb
new file mode 100644
index 0000000..3190767
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/import_ldap_users.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Import LDAP users
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/importLdapUsers.html]
+        def import_ldap_users(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'importLdapUsers') 
+          else
+            options.merge!('command' => 'importLdapUsers', 
+            'accounttype' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/instantiate_ucs_template_and_assocaciate_to_blade.rb b/lib/fog/cloudstack/requests/compute/instantiate_ucs_template_and_assocaciate_to_blade.rb
new file mode 100644
index 0000000..b737cbe
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/instantiate_ucs_template_and_assocaciate_to_blade.rb
@@ -0,0 +1,23 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # create a profile of template and associate to a blade
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/instantiateUcsTemplateAndAssocaciateToBlade.html]
+        def instantiate_ucs_template_and_assocaciate_to_blade(bladeid, templatedn, ucsmanagerid, options={})
+          options.merge!(
+            'command' => 'instantiateUcsTemplateAndAssocaciateToBlade', 
+            'bladeid' => bladeid, 
+            'templatedn' => templatedn, 
+            'ucsmanagerid' => ucsmanagerid  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/ldap_config.rb b/lib/fog/cloudstack/requests/compute/ldap_config.rb
new file mode 100644
index 0000000..0aece92
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/ldap_config.rb
@@ -0,0 +1,20 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Configure the LDAP context for this site.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/ldapConfig.html]
+        def ldap_config(options={})
+          options.merge!(
+            'command' => 'ldapConfig'  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/ldap_create_account.rb b/lib/fog/cloudstack/requests/compute/ldap_create_account.rb
new file mode 100644
index 0000000..76931d1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/ldap_create_account.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Creates an account from an LDAP user
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/ldapCreateAccount.html]
+        def ldap_create_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'ldapCreateAccount') 
+          else
+            options.merge!('command' => 'ldapCreateAccount', 
+            'username' => args[0], 
+            'accounttype' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/ldap_remove.rb b/lib/fog/cloudstack/requests/compute/ldap_remove.rb
new file mode 100644
index 0000000..1590fab
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/ldap_remove.rb
@@ -0,0 +1,20 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Remove the LDAP context for this site.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/ldapRemove.html]
+        def ldap_remove(options={})
+          options.merge!(
+            'command' => 'ldapRemove'  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_accounts.rb b/lib/fog/cloudstack/requests/compute/list_accounts.rb
index ffdeab8..4d62ee2 100644
--- a/lib/fog/cloudstack/requests/compute/list_accounts.rb
+++ b/lib/fog/cloudstack/requests/compute/list_accounts.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists accounts and provides detailed account information for listed accounts.
+      class Real
+        # Lists accounts and provides detailed account information for listed accounts
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listAccounts.html]
-        def list_accounts(options={})
-          options.merge!(
-            'command' => 'listAccounts'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAccounts.html]
+        def list_accounts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAccounts') 
+          else
+            options.merge!('command' => 'listAccounts')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_affinity_group_types.rb b/lib/fog/cloudstack/requests/compute/list_affinity_group_types.rb
new file mode 100644
index 0000000..bf5eb1d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_affinity_group_types.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists affinity group types available
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAffinityGroupTypes.html]
+        def list_affinity_group_types(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAffinityGroupTypes') 
+          else
+            options.merge!('command' => 'listAffinityGroupTypes')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_affinity_groups.rb b/lib/fog/cloudstack/requests/compute/list_affinity_groups.rb
new file mode 100644
index 0000000..328a849
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_affinity_groups.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists affinity groups
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAffinityGroups.html]
+        def list_affinity_groups(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAffinityGroups') 
+          else
+            options.merge!('command' => 'listAffinityGroups')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_alerts.rb b/lib/fog/cloudstack/requests/compute/list_alerts.rb
index 69f8cf7..b33e83a 100644
--- a/lib/fog/cloudstack/requests/compute/list_alerts.rb
+++ b/lib/fog/cloudstack/requests/compute/list_alerts.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all alerts.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listAlerts.html]
-        def list_alerts(options={})
-          options.merge!(
-            'command' => 'listAlerts'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAlerts.html]
+        def list_alerts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAlerts') 
+          else
+            options.merge!('command' => 'listAlerts')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_apis.rb b/lib/fog/cloudstack/requests/compute/list_apis.rb
new file mode 100644
index 0000000..92eb776
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_apis.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists all available apis on the server, provided by the Api Discovery plugin
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listApis.html]
+        def list_apis(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listApis') 
+          else
+            options.merge!('command' => 'listApis')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_async_jobs.rb b/lib/fog/cloudstack/requests/compute/list_async_jobs.rb
index c22b0df..a4c7cae 100644
--- a/lib/fog/cloudstack/requests/compute/list_async_jobs.rb
+++ b/lib/fog/cloudstack/requests/compute/list_async_jobs.rb
@@ -1,20 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all pending asynchronous jobs for the account.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listAsyncJobs.html]
-        def list_async_jobs(options={})
-          options.merge!(
-            'command' => 'listAsyncJobs'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAsyncJobs.html]
+        def list_async_jobs(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAsyncJobs') 
+          else
+            options.merge!('command' => 'listAsyncJobs')
+          end
           request(options)
         end
-
-      end # Real
+      end
+ 
       class Mock
         def list_async_jobs(options={})
           # FIXME: support paging
@@ -26,7 +29,8 @@ module Fog
             }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_auto_scale_policies.rb b/lib/fog/cloudstack/requests/compute/list_auto_scale_policies.rb
new file mode 100644
index 0000000..0100cad
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_auto_scale_policies.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists autoscale policies.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAutoScalePolicies.html]
+        def list_auto_scale_policies(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAutoScalePolicies') 
+          else
+            options.merge!('command' => 'listAutoScalePolicies')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_groups.rb b/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_groups.rb
new file mode 100644
index 0000000..79b7253
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_groups.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists autoscale vm groups.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAutoScaleVmGroups.html]
+        def list_auto_scale_vm_groups(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAutoScaleVmGroups') 
+          else
+            options.merge!('command' => 'listAutoScaleVmGroups')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_profiles.rb b/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_profiles.rb
new file mode 100644
index 0000000..d97f47e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_auto_scale_vm_profiles.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists autoscale vm profiles.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listAutoScaleVmProfiles.html]
+        def list_auto_scale_vm_profiles(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listAutoScaleVmProfiles') 
+          else
+            options.merge!('command' => 'listAutoScaleVmProfiles')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_baremetal_dhcp.rb b/lib/fog/cloudstack/requests/compute/list_baremetal_dhcp.rb
new file mode 100644
index 0000000..b3da2b4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_baremetal_dhcp.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # list baremetal dhcp servers
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listBaremetalDhcp.html]
+        def list_baremetal_dhcp(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listBaremetalDhcp') 
+          else
+            options.merge!('command' => 'listBaremetalDhcp')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_baremetal_pxe_servers.rb b/lib/fog/cloudstack/requests/compute/list_baremetal_pxe_servers.rb
new file mode 100644
index 0000000..42ad397
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_baremetal_pxe_servers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # list baremetal pxe server
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listBaremetalPxeServers.html]
+        def list_baremetal_pxe_servers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listBaremetalPxeServers') 
+          else
+            options.merge!('command' => 'listBaremetalPxeServers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_big_switch_vns_devices.rb b/lib/fog/cloudstack/requests/compute/list_big_switch_vns_devices.rb
new file mode 100644
index 0000000..2b2f27c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_big_switch_vns_devices.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists BigSwitch Vns devices
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listBigSwitchVnsDevices.html]
+        def list_big_switch_vns_devices(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listBigSwitchVnsDevices') 
+          else
+            options.merge!('command' => 'listBigSwitchVnsDevices')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_capabilities.rb b/lib/fog/cloudstack/requests/compute/list_capabilities.rb
index 047fd77..7344b30 100644
--- a/lib/fog/cloudstack/requests/compute/list_capabilities.rb
+++ b/lib/fog/cloudstack/requests/compute/list_capabilities.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists configurations and provides detailed account information for listed configurations.
+      class Real
+        # Lists capabilities
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listAccounts.html]
-        def list_capabilities(options={})
-          options.merge!(
-            'command' => 'listCapabilities'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listCapabilities.html]
+        def list_capabilities(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listCapabilities') 
+          else
+            options.merge!('command' => 'listCapabilities')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_capacity.rb b/lib/fog/cloudstack/requests/compute/list_capacity.rb
index f2347c2..329a2e8 100644
--- a/lib/fog/cloudstack/requests/compute/list_capacity.rb
+++ b/lib/fog/cloudstack/requests/compute/list_capacity.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists domains and provides detailed information for listed domains.
+      class Real
+        # Lists all the system wide capacities.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listDomains.html]
-        def list_capacity(options={})
-          options.merge!(
-            'command' => 'listCapacity'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listCapacity.html]
+        def list_capacity(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listCapacity') 
+          else
+            options.merge!('command' => 'listCapacity')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_cisco_asa1000v_resources.rb b/lib/fog/cloudstack/requests/compute/list_cisco_asa1000v_resources.rb
new file mode 100644
index 0000000..e99bc62
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_cisco_asa1000v_resources.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists Cisco ASA 1000v appliances
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listCiscoAsa1000vResources.html]
+        def list_cisco_asa1000v_resources(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listCiscoAsa1000vResources') 
+          else
+            options.merge!('command' => 'listCiscoAsa1000vResources')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_cisco_nexus_vsms.rb b/lib/fog/cloudstack/requests/compute/list_cisco_nexus_vsms.rb
new file mode 100644
index 0000000..3c3aaa8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_cisco_nexus_vsms.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Retrieves a Cisco Nexus 1000v Virtual Switch Manager device associated with a Cluster
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listCiscoNexusVSMs.html]
+        def list_cisco_nexus_vsms(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listCiscoNexusVSMs') 
+          else
+            options.merge!('command' => 'listCiscoNexusVSMs')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_cisco_vnmc_resources.rb b/lib/fog/cloudstack/requests/compute/list_cisco_vnmc_resources.rb
new file mode 100644
index 0000000..1d2217c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_cisco_vnmc_resources.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists Cisco VNMC controllers
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listCiscoVnmcResources.html]
+        def list_cisco_vnmc_resources(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listCiscoVnmcResources') 
+          else
+            options.merge!('command' => 'listCiscoVnmcResources')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_clusters.rb b/lib/fog/cloudstack/requests/compute/list_clusters.rb
index cac96d4..438fc6c 100644
--- a/lib/fog/cloudstack/requests/compute/list_clusters.rb
+++ b/lib/fog/cloudstack/requests/compute/list_clusters.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists configurations and provides detailed account information for listed configurations.
+      class Real
+        # Lists clusters.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listAccounts.html]
-        def list_clusters(options={})
-          options.merge!(
-            'command' => 'listClusters'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listClusters.html]
+        def list_clusters(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listClusters') 
+          else
+            options.merge!('command' => 'listClusters')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_conditions.rb b/lib/fog/cloudstack/requests/compute/list_conditions.rb
new file mode 100644
index 0000000..c9cfed1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_conditions.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List Conditions for the specific user
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listConditions.html]
+        def list_conditions(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listConditions') 
+          else
+            options.merge!('command' => 'listConditions')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_configurations.rb b/lib/fog/cloudstack/requests/compute/list_configurations.rb
index 204d0be..ef193f4 100644
--- a/lib/fog/cloudstack/requests/compute/list_configurations.rb
+++ b/lib/fog/cloudstack/requests/compute/list_configurations.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists configurations and provides detailed account information for listed configurations.
+      class Real
+        # Lists all configurations.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listAccounts.html]
-        def list_configurations(options={})
-          options.merge!(
-            'command' => 'listConfigurations'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listConfigurations.html]
+        def list_configurations(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listConfigurations') 
+          else
+            options.merge!('command' => 'listConfigurations')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_counters.rb b/lib/fog/cloudstack/requests/compute/list_counters.rb
new file mode 100644
index 0000000..0c57e08
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_counters.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List the counters
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listCounters.html]
+        def list_counters(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listCounters') 
+          else
+            options.merge!('command' => 'listCounters')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_dedicated_clusters.rb b/lib/fog/cloudstack/requests/compute/list_dedicated_clusters.rb
new file mode 100644
index 0000000..9d728b2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_dedicated_clusters.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists dedicated clusters.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDedicatedClusters.html]
+        def list_dedicated_clusters(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDedicatedClusters') 
+          else
+            options.merge!('command' => 'listDedicatedClusters')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_dedicated_guest_vlan_ranges.rb b/lib/fog/cloudstack/requests/compute/list_dedicated_guest_vlan_ranges.rb
new file mode 100644
index 0000000..2561ee3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_dedicated_guest_vlan_ranges.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists dedicated guest vlan ranges
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDedicatedGuestVlanRanges.html]
+        def list_dedicated_guest_vlan_ranges(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDedicatedGuestVlanRanges') 
+          else
+            options.merge!('command' => 'listDedicatedGuestVlanRanges')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_dedicated_hosts.rb b/lib/fog/cloudstack/requests/compute/list_dedicated_hosts.rb
new file mode 100644
index 0000000..7640579
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_dedicated_hosts.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists dedicated hosts.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDedicatedHosts.html]
+        def list_dedicated_hosts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDedicatedHosts') 
+          else
+            options.merge!('command' => 'listDedicatedHosts')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_dedicated_pods.rb b/lib/fog/cloudstack/requests/compute/list_dedicated_pods.rb
new file mode 100644
index 0000000..1a29237
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_dedicated_pods.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists dedicated pods.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDedicatedPods.html]
+        def list_dedicated_pods(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDedicatedPods') 
+          else
+            options.merge!('command' => 'listDedicatedPods')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_dedicated_zones.rb b/lib/fog/cloudstack/requests/compute/list_dedicated_zones.rb
new file mode 100644
index 0000000..c0bb13f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_dedicated_zones.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List dedicated zones.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDedicatedZones.html]
+        def list_dedicated_zones(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDedicatedZones') 
+          else
+            options.merge!('command' => 'listDedicatedZones')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_deployment_planners.rb b/lib/fog/cloudstack/requests/compute/list_deployment_planners.rb
new file mode 100644
index 0000000..2e16755
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_deployment_planners.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all DeploymentPlanners available.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDeploymentPlanners.html]
+        def list_deployment_planners(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDeploymentPlanners') 
+          else
+            options.merge!('command' => 'listDeploymentPlanners')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb b/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb
index c003079..b53bc7e 100644
--- a/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb
+++ b/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb
@@ -1,21 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all available disk offerings.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listDiskOfferings.html]
-        def list_disk_offerings(options={})
-          options.merge!(
-            'command' => 'listDiskOfferings'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDiskOfferings.html]
+        def list_disk_offerings(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDiskOfferings') 
+          else
+            options.merge!('command' => 'listDiskOfferings')
+          end
           request(options)
         end
-
       end
-
+ 
       class Mock
         # TODO: add id, name filters and paging params
         def list_disk_offerings(options={})
@@ -23,7 +25,8 @@ module Fog
           { "listdiskofferingsresponse" => { "count"=> disk_offerings.count, "diskoffering"=> disk_offerings.values } }
         end
 
-      end
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_domain_children.rb b/lib/fog/cloudstack/requests/compute/list_domain_children.rb
index 2cbe246..c841d2e 100644
--- a/lib/fog/cloudstack/requests/compute/list_domain_children.rb
+++ b/lib/fog/cloudstack/requests/compute/list_domain_children.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists all children domains belonging to a specified domain.
+      class Real
+        # Lists all children domains belonging to a specified domain
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listDomainChildren.html]
-        def list_domain_children(options={})
-          options.merge!(
-            'command' => 'listDomainChildren'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDomainChildren.html]
+        def list_domain_children(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDomainChildren') 
+          else
+            options.merge!('command' => 'listDomainChildren')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_domains.rb b/lib/fog/cloudstack/requests/compute/list_domains.rb
index 683b1ee..7705b3e 100644
--- a/lib/fog/cloudstack/requests/compute/list_domains.rb
+++ b/lib/fog/cloudstack/requests/compute/list_domains.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists domains and provides detailed information for listed domains.
+      class Real
+        # Lists domains and provides detailed information for listed domains
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listDomains.html]
-        def list_domains(options={})
-          options.merge!(
-            'command' => 'listDomains'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listDomains.html]
+        def list_domains(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listDomains') 
+          else
+            options.merge!('command' => 'listDomains')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_egress_firewall_rules.rb b/lib/fog/cloudstack/requests/compute/list_egress_firewall_rules.rb
new file mode 100644
index 0000000..dda1da1
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_egress_firewall_rules.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all egress firewall rules for network id.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listEgressFirewallRules.html]
+        def list_egress_firewall_rules(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listEgressFirewallRules') 
+          else
+            options.merge!('command' => 'listEgressFirewallRules')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_event_types.rb b/lib/fog/cloudstack/requests/compute/list_event_types.rb
new file mode 100644
index 0000000..a27942c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_event_types.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List Event Types
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listEventTypes.html]
+        def list_event_types(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listEventTypes') 
+          else
+            options.merge!('command' => 'listEventTypes')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_events.rb b/lib/fog/cloudstack/requests/compute/list_events.rb
index 7843880..1521e1c 100644
--- a/lib/fog/cloudstack/requests/compute/list_events.rb
+++ b/lib/fog/cloudstack/requests/compute/list_events.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # A command to list events.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listEvents.html]
-        def list_events(options={})
-          options.merge!(
-            'command' => 'listEvents'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listEvents.html]
+        def list_events(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listEvents') 
+          else
+            options.merge!('command' => 'listEvents')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb b/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb
index b188287..5aa68a0 100644
--- a/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb
+++ b/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # List external firewall appliances.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listExternalFirewalls.html]
-        def list_external_firewalls(options={})
-          options.merge!(
-            'command' => 'listExternalFirewalls'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listExternalFirewalls.html]
+        def list_external_firewalls(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listExternalFirewalls') 
+          else
+            options.merge!('command' => 'listExternalFirewalls', 
+            'zoneid' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb b/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb
index 1e2cc12..6346b30 100644
--- a/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb
+++ b/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # List external load balancer appliances.
+      class Real
+        # Lists F5 external load balancer appliances added in a zone.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listExternalLoadBalancers.html]
-        def list_external_load_balancers(options={})
-          options.merge!(
-            'command' => 'listExternalLoadBalancers'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listExternalLoadBalancers.html]
+        def list_external_load_balancers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listExternalLoadBalancers') 
+          else
+            options.merge!('command' => 'listExternalLoadBalancers')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_f5_load_balancer_networks.rb b/lib/fog/cloudstack/requests/compute/list_f5_load_balancer_networks.rb
new file mode 100644
index 0000000..af355c3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_f5_load_balancer_networks.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists network that are using a F5 load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listF5LoadBalancerNetworks.html]
+        def list_f5_load_balancer_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listF5LoadBalancerNetworks') 
+          else
+            options.merge!('command' => 'listF5LoadBalancerNetworks', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_f5_load_balancers.rb b/lib/fog/cloudstack/requests/compute/list_f5_load_balancers.rb
new file mode 100644
index 0000000..bf6c708
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_f5_load_balancers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists F5 load balancer devices
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listF5LoadBalancers.html]
+        def list_f5_load_balancers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listF5LoadBalancers') 
+          else
+            options.merge!('command' => 'listF5LoadBalancers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb b/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb
index c1459b1..56f9324 100644
--- a/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb
+++ b/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb
@@ -1,15 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
+
       class Real
-        def list_firewall_rules(options={})
-          options.merge!(
-            'command' => 'listFirewallRules'
-          )
+        # Lists all firewall rules for an IP address.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listFirewallRules.html]
+        def list_firewall_rules(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listFirewallRules') 
+          else
+            options.merge!('command' => 'listFirewallRules')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_global_load_balancer_rules.rb b/lib/fog/cloudstack/requests/compute/list_global_load_balancer_rules.rb
new file mode 100644
index 0000000..0ec7fdf
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_global_load_balancer_rules.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists load balancer rules.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listGlobalLoadBalancerRules.html]
+        def list_global_load_balancer_rules(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listGlobalLoadBalancerRules') 
+          else
+            options.merge!('command' => 'listGlobalLoadBalancerRules')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_guest_os_mapping.rb b/lib/fog/cloudstack/requests/compute/list_guest_os_mapping.rb
new file mode 100644
index 0000000..c51eecc
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_guest_os_mapping.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all available OS mappings for given hypervisor
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listGuestOsMapping.html]
+        def list_guest_os_mapping(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listGuestOsMapping') 
+          else
+            options.merge!('command' => 'listGuestOsMapping')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_hosts.rb b/lib/fog/cloudstack/requests/compute/list_hosts.rb
index 5948893..6782fa7 100644
--- a/lib/fog/cloudstack/requests/compute/list_hosts.rb
+++ b/lib/fog/cloudstack/requests/compute/list_hosts.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists hosts.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listHosts.html]
-        def list_hosts(options={})
-          options.merge!(
-            'command' => 'listHosts'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listHosts.html]
+        def list_hosts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listHosts') 
+          else
+            options.merge!('command' => 'listHosts')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_hypervisor_capabilities.rb b/lib/fog/cloudstack/requests/compute/list_hypervisor_capabilities.rb
new file mode 100644
index 0000000..b2d1cfd
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_hypervisor_capabilities.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all hypervisor capabilities.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listHypervisorCapabilities.html]
+        def list_hypervisor_capabilities(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listHypervisorCapabilities') 
+          else
+            options.merge!('command' => 'listHypervisorCapabilities')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_hypervisors.rb b/lib/fog/cloudstack/requests/compute/list_hypervisors.rb
index 8244d4d..d4a4c86 100644
--- a/lib/fog/cloudstack/requests/compute/list_hypervisors.rb
+++ b/lib/fog/cloudstack/requests/compute/list_hypervisors.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists hypervisors.
+      class Real
+        # List hypervisors
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listHypervisors.html]
-        def list_hypervisors(options={})
-          options.merge!(
-            'command' => 'listHypervisors'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listHypervisors.html]
+        def list_hypervisors(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listHypervisors') 
+          else
+            options.merge!('command' => 'listHypervisors')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_image_stores.rb b/lib/fog/cloudstack/requests/compute/list_image_stores.rb
new file mode 100644
index 0000000..a096c94
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_image_stores.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists image stores.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listImageStores.html]
+        def list_image_stores(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listImageStores') 
+          else
+            options.merge!('command' => 'listImageStores')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_instance_groups.rb b/lib/fog/cloudstack/requests/compute/list_instance_groups.rb
index 1cc417c..a01cfaf 100644
--- a/lib/fog/cloudstack/requests/compute/list_instance_groups.rb
+++ b/lib/fog/cloudstack/requests/compute/list_instance_groups.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists VM groups.
+      class Real
+        # Lists vm groups
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listInstanceGroups.html]
-        def list_instance_groups(options={})
-          options.merge!(
-            'command' => 'listInstanceGroups'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listInstanceGroups.html]
+        def list_instance_groups(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listInstanceGroups') 
+          else
+            options.merge!('command' => 'listInstanceGroups')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_elements.rb b/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_elements.rb
new file mode 100644
index 0000000..4f811f7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_elements.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all available Internal Load Balancer elements.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listInternalLoadBalancerElements.html]
+        def list_internal_load_balancer_elements(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listInternalLoadBalancerElements') 
+          else
+            options.merge!('command' => 'listInternalLoadBalancerElements')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_vms.rb b/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_vms.rb
new file mode 100644
index 0000000..38ab038
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_internal_load_balancer_vms.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List internal LB VMs.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listInternalLoadBalancerVMs.html]
+        def list_internal_load_balancer_vms(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listInternalLoadBalancerVMs') 
+          else
+            options.merge!('command' => 'listInternalLoadBalancerVMs')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ip_forwarding_rules.rb b/lib/fog/cloudstack/requests/compute/list_ip_forwarding_rules.rb
new file mode 100644
index 0000000..7c5d5f0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ip_forwarding_rules.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List the ip forwarding rules
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listIpForwardingRules.html]
+        def list_ip_forwarding_rules(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listIpForwardingRules') 
+          else
+            options.merge!('command' => 'listIpForwardingRules')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_iso_permissions.rb b/lib/fog/cloudstack/requests/compute/list_iso_permissions.rb
new file mode 100644
index 0000000..6c9f737
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_iso_permissions.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List iso visibility and all accounts that have permissions to view this iso.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listIsoPermissions.html]
+        def list_iso_permissions(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listIsoPermissions') 
+          else
+            options.merge!('command' => 'listIsoPermissions', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_isos.rb b/lib/fog/cloudstack/requests/compute/list_isos.rb
index 839f71c..8239146 100644
--- a/lib/fog/cloudstack/requests/compute/list_isos.rb
+++ b/lib/fog/cloudstack/requests/compute/list_isos.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all available ISO files.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listIsos.html]
-        def list_isos(options={})
-          options.merge!(
-            'command' => 'listIsos'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listIsos.html]
+        def list_isos(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listIsos') 
+          else
+            options.merge!('command' => 'listIsos')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_lb_health_check_policies.rb b/lib/fog/cloudstack/requests/compute/list_lb_health_check_policies.rb
new file mode 100644
index 0000000..af9db8e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_lb_health_check_policies.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists load balancer HealthCheck policies.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLBHealthCheckPolicies.html]
+        def list_lb_health_check_policies(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLBHealthCheckPolicies') 
+          else
+            options.merge!('command' => 'listLBHealthCheckPolicies')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_lb_stickiness_policies.rb b/lib/fog/cloudstack/requests/compute/list_lb_stickiness_policies.rb
new file mode 100644
index 0000000..7e1ab76
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_lb_stickiness_policies.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists LBStickiness policies.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLBStickinessPolicies.html]
+        def list_lb_stickiness_policies(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLBStickinessPolicies') 
+          else
+            options.merge!('command' => 'listLBStickinessPolicies')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ldap_configurations.rb b/lib/fog/cloudstack/requests/compute/list_ldap_configurations.rb
new file mode 100644
index 0000000..8263bf3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ldap_configurations.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all LDAP configurations
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLdapConfigurations.html]
+        def list_ldap_configurations(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLdapConfigurations') 
+          else
+            options.merge!('command' => 'listLdapConfigurations')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ldap_users.rb b/lib/fog/cloudstack/requests/compute/list_ldap_users.rb
new file mode 100644
index 0000000..d4faaa4
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ldap_users.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all LDAP Users
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLdapUsers.html]
+        def list_ldap_users(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLdapUsers') 
+          else
+            options.merge!('command' => 'listLdapUsers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb b/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb
index 9cc2124..17ca2f9 100644
--- a/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb
+++ b/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb
@@ -1,23 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists resource limits.
+      class Real
+        # List all virtual machine instances that are assigned to a load balancer rule.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/listLoadBalancerRuleInstances.html]
-        def list_load_balancer_rule_instances(load_balancer_rule_id,options={})
-          options.merge!(
-            'command' => 'listLoadBalancerRuleInstances',
-            'id' => load_balancer_rule_id
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLoadBalancerRuleInstances.html]
+        def list_load_balancer_rule_instances(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLoadBalancerRuleInstances') 
+          else
+            options.merge!('command' => 'listLoadBalancerRuleInstances', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb b/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb
index a8b8b4d..c9c3d56 100644
--- a/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb
+++ b/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb
@@ -1,22 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists resource limits.
+      class Real
+        # Lists load balancer rules.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listLoadBalancerRules.html]
-        def list_load_balancer_rules(options={})
-          options.merge!(
-            'command' => 'listLoadBalancerRules'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLoadBalancerRules.html]
+        def list_load_balancer_rules(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLoadBalancerRules') 
+          else
+            options.merge!('command' => 'listLoadBalancerRules')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/list_load_balancers.rb b/lib/fog/cloudstack/requests/compute/list_load_balancers.rb
new file mode 100644
index 0000000..070ca78
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_load_balancers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists Load Balancers
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listLoadBalancers.html]
+        def list_load_balancers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listLoadBalancers') 
+          else
+            options.merge!('command' => 'listLoadBalancers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_luns_on_filer.rb b/lib/fog/cloudstack/requests/compute/list_luns_on_filer.rb
new file mode 100644
index 0000000..d139b7e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_luns_on_filer.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List LUN
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/listLunsOnFiler.html]
+        def list_luns_on_filer(poolname, options={})
+          options.merge!(
+            'command' => 'listLunsOnFiler', 
+            'poolname' => poolname  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancer_networks.rb b/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancer_networks.rb
new file mode 100644
index 0000000..ab35a85
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancer_networks.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists network that are using a netscaler load balancer device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetscalerLoadBalancerNetworks.html]
+        def list_netscaler_load_balancer_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetscalerLoadBalancerNetworks') 
+          else
+            options.merge!('command' => 'listNetscalerLoadBalancerNetworks', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancers.rb b/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancers.rb
new file mode 100644
index 0000000..e8c297c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_netscaler_load_balancers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists netscaler load balancer devices
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetscalerLoadBalancers.html]
+        def list_netscaler_load_balancers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetscalerLoadBalancers') 
+          else
+            options.merge!('command' => 'listNetscalerLoadBalancers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_network_acl_lists.rb b/lib/fog/cloudstack/requests/compute/list_network_acl_lists.rb
new file mode 100644
index 0000000..73a7ca9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_network_acl_lists.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all network ACLs
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworkACLLists.html]
+        def list_network_acl_lists(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworkACLLists') 
+          else
+            options.merge!('command' => 'listNetworkACLLists')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_network_acls.rb b/lib/fog/cloudstack/requests/compute/list_network_acls.rb
new file mode 100644
index 0000000..1df91a7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_network_acls.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all network ACL items
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworkACLs.html]
+        def list_network_acls(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworkACLs') 
+          else
+            options.merge!('command' => 'listNetworkACLs')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_network_device.rb b/lib/fog/cloudstack/requests/compute/list_network_device.rb
new file mode 100644
index 0000000..50ba77b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_network_device.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List network devices
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworkDevice.html]
+        def list_network_device(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworkDevice') 
+          else
+            options.merge!('command' => 'listNetworkDevice')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_network_isolation_methods.rb b/lib/fog/cloudstack/requests/compute/list_network_isolation_methods.rb
new file mode 100644
index 0000000..1e91be0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_network_isolation_methods.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists supported methods of network isolation
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworkIsolationMethods.html]
+        def list_network_isolation_methods(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworkIsolationMethods') 
+          else
+            options.merge!('command' => 'listNetworkIsolationMethods')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_network_offerings.rb b/lib/fog/cloudstack/requests/compute/list_network_offerings.rb
index 5e86dfb..9a6101e 100644
--- a/lib/fog/cloudstack/requests/compute/list_network_offerings.rb
+++ b/lib/fog/cloudstack/requests/compute/list_network_offerings.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all available network offerings.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listNetworkOfferings.html]
-        def list_network_offerings(options={})
-          options.merge!(
-            'command' => 'listNetworkOfferings'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworkOfferings.html]
+        def list_network_offerings(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworkOfferings') 
+          else
+            options.merge!('command' => 'listNetworkOfferings')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_network_service_providers.rb b/lib/fog/cloudstack/requests/compute/list_network_service_providers.rb
new file mode 100644
index 0000000..d6bf4ff
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_network_service_providers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists network serviceproviders for a given physical network.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworkServiceProviders.html]
+        def list_network_service_providers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworkServiceProviders') 
+          else
+            options.merge!('command' => 'listNetworkServiceProviders')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_networks.rb b/lib/fog/cloudstack/requests/compute/list_networks.rb
index bfb6b7c..930644d 100644
--- a/lib/fog/cloudstack/requests/compute/list_networks.rb
+++ b/lib/fog/cloudstack/requests/compute/list_networks.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all available networks.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listNetworks.html]
-        def list_networks(options={})
-          options.merge!(
-            'command' => 'listNetworks'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNetworks.html]
+        def list_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNetworks') 
+          else
+            options.merge!('command' => 'listNetworks')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_nicira_nvp_device_networks.rb b/lib/fog/cloudstack/requests/compute/list_nicira_nvp_device_networks.rb
new file mode 100644
index 0000000..d7b27a3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_nicira_nvp_device_networks.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists network that are using a nicira nvp device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNiciraNvpDeviceNetworks.html]
+        def list_nicira_nvp_device_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNiciraNvpDeviceNetworks') 
+          else
+            options.merge!('command' => 'listNiciraNvpDeviceNetworks', 
+            'nvpdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_nicira_nvp_devices.rb b/lib/fog/cloudstack/requests/compute/list_nicira_nvp_devices.rb
new file mode 100644
index 0000000..b1d6347
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_nicira_nvp_devices.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists Nicira NVP devices
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNiciraNvpDevices.html]
+        def list_nicira_nvp_devices(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNiciraNvpDevices') 
+          else
+            options.merge!('command' => 'listNiciraNvpDevices')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_nics.rb b/lib/fog/cloudstack/requests/compute/list_nics.rb
new file mode 100644
index 0000000..d942365
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_nics.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # list the vm nics  IP to NIC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listNics.html]
+        def list_nics(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listNics') 
+          else
+            options.merge!('command' => 'listNics', 
+            'virtualmachineid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_open_daylight_controllers.rb b/lib/fog/cloudstack/requests/compute/list_open_daylight_controllers.rb
new file mode 100644
index 0000000..794b073
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_open_daylight_controllers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists OpenDyalight controllers
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listOpenDaylightControllers.html]
+        def list_open_daylight_controllers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listOpenDaylightControllers') 
+          else
+            options.merge!('command' => 'listOpenDaylightControllers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_os_categories.rb b/lib/fog/cloudstack/requests/compute/list_os_categories.rb
index 4f2be38..582e7b6 100644
--- a/lib/fog/cloudstack/requests/compute/list_os_categories.rb
+++ b/lib/fog/cloudstack/requests/compute/list_os_categories.rb
@@ -1,22 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all supported OS categories for this cloud.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listOsCategories.html]
-        def list_os_categories(options={})
-          options.merge!(
-            'command' => 'listOsCategories'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listOsCategories.html]
+        def list_os_categories(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listOsCategories') 
+          else
+            options.merge!('command' => 'listOsCategories')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/list_os_types.rb b/lib/fog/cloudstack/requests/compute/list_os_types.rb
index 4abcaa7..d918d89 100644
--- a/lib/fog/cloudstack/requests/compute/list_os_types.rb
+++ b/lib/fog/cloudstack/requests/compute/list_os_types.rb
@@ -1,21 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all supported OS types for this cloud.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listOsTypes.html]
-        def list_os_types(options={})
-          options.merge!(
-            'command' => 'listOsTypes'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listOsTypes.html]
+        def list_os_types(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listOsTypes') 
+          else
+            options.merge!('command' => 'listOsTypes')
+          end
           request(options)
         end
-
       end
-
+ 
       class Mock
         # TODO: add id, category_id filters and paging params
         def list_os_types(options={})
@@ -23,9 +25,8 @@ module Fog
           { "listostypesresponse" => { "count"=> os_types.count, "ostype"=> os_types.values } }
         end
 
-      end
+      end 
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/list_ovs_elements.rb b/lib/fog/cloudstack/requests/compute/list_ovs_elements.rb
new file mode 100644
index 0000000..b75eb2a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ovs_elements.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all available ovs elements.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listOvsElements.html]
+        def list_ovs_elements(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listOvsElements') 
+          else
+            options.merge!('command' => 'listOvsElements')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_palo_alto_firewall_networks.rb b/lib/fog/cloudstack/requests/compute/list_palo_alto_firewall_networks.rb
new file mode 100644
index 0000000..6399758
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_palo_alto_firewall_networks.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists network that are using Palo Alto firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPaloAltoFirewallNetworks.html]
+        def list_palo_alto_firewall_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPaloAltoFirewallNetworks') 
+          else
+            options.merge!('command' => 'listPaloAltoFirewallNetworks', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_palo_alto_firewalls.rb b/lib/fog/cloudstack/requests/compute/list_palo_alto_firewalls.rb
new file mode 100644
index 0000000..74c4648
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_palo_alto_firewalls.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists Palo Alto firewall devices in a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPaloAltoFirewalls.html]
+        def list_palo_alto_firewalls(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPaloAltoFirewalls') 
+          else
+            options.merge!('command' => 'listPaloAltoFirewalls')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_physical_networks.rb b/lib/fog/cloudstack/requests/compute/list_physical_networks.rb
new file mode 100644
index 0000000..c1ac9a7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_physical_networks.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists physical networks
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPhysicalNetworks.html]
+        def list_physical_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPhysicalNetworks') 
+          else
+            options.merge!('command' => 'listPhysicalNetworks')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_pods.rb b/lib/fog/cloudstack/requests/compute/list_pods.rb
index 102e7d7..cb6f6ea 100644
--- a/lib/fog/cloudstack/requests/compute/list_pods.rb
+++ b/lib/fog/cloudstack/requests/compute/list_pods.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all Pods.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listPods.html]
-        def list_pods(options={})
-          options.merge!(
-            'command' => 'listPods'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPods.html]
+        def list_pods(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPods') 
+          else
+            options.merge!('command' => 'listPods')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_pools.rb b/lib/fog/cloudstack/requests/compute/list_pools.rb
new file mode 100644
index 0000000..e75dd53
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_pools.rb
@@ -0,0 +1,20 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List Pool
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/listPools.html]
+        def list_pools(options={})
+          options.merge!(
+            'command' => 'listPools'  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb b/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb
index 5bdde17..c83604d 100644
--- a/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb
+++ b/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb
@@ -1,22 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists resource limits.
+      class Real
+        # Lists all port forwarding rules for an IP address.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listPortForwardingRules.html]
-        def list_port_forwarding_rules(options={})
-          options.merge!(
-            'command' => 'listPortForwardingRules'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPortForwardingRules.html]
+        def list_port_forwarding_rules(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPortForwardingRules') 
+          else
+            options.merge!('command' => 'listPortForwardingRules')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/list_portable_ip_ranges.rb b/lib/fog/cloudstack/requests/compute/list_portable_ip_ranges.rb
new file mode 100644
index 0000000..79bda50
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_portable_ip_ranges.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # list portable IP ranges
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPortableIpRanges.html]
+        def list_portable_ip_ranges(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPortableIpRanges') 
+          else
+            options.merge!('command' => 'listPortableIpRanges')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_private_gateways.rb b/lib/fog/cloudstack/requests/compute/list_private_gateways.rb
new file mode 100644
index 0000000..8a94d61
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_private_gateways.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List private gateways
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPrivateGateways.html]
+        def list_private_gateways(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPrivateGateways') 
+          else
+            options.merge!('command' => 'listPrivateGateways')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_project_accounts.rb b/lib/fog/cloudstack/requests/compute/list_project_accounts.rb
new file mode 100644
index 0000000..3be2e67
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_project_accounts.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists project's accounts
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listProjectAccounts.html]
+        def list_project_accounts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listProjectAccounts') 
+          else
+            options.merge!('command' => 'listProjectAccounts', 
+            'projectid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_project_invitations.rb b/lib/fog/cloudstack/requests/compute/list_project_invitations.rb
new file mode 100644
index 0000000..11a7e37
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_project_invitations.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists projects and provides detailed information for listed projects
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listProjectInvitations.html]
+        def list_project_invitations(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listProjectInvitations') 
+          else
+            options.merge!('command' => 'listProjectInvitations')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_projects.rb b/lib/fog/cloudstack/requests/compute/list_projects.rb
new file mode 100644
index 0000000..8cb1f5f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_projects.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists projects and provides detailed information for listed projects
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listProjects.html]
+        def list_projects(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listProjects') 
+          else
+            options.merge!('command' => 'listProjects')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb b/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb
index 18ebe99..4fc0f4b 100644
--- a/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb
+++ b/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb
@@ -1,22 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists resource limits.
+      class Real
+        # Lists all public ip addresses
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listPublicIpAddresses.html]
-        def list_public_ip_addresses(options={})
-          options.merge!(
-            'command' => 'listPublicIpAddresses'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listPublicIpAddresses.html]
+        def list_public_ip_addresses(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listPublicIpAddresses') 
+          else
+            options.merge!('command' => 'listPublicIpAddresses')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
 
-
diff --git a/lib/fog/cloudstack/requests/compute/list_regions.rb b/lib/fog/cloudstack/requests/compute/list_regions.rb
new file mode 100644
index 0000000..fae5379
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_regions.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists Regions
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listRegions.html]
+        def list_regions(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listRegions') 
+          else
+            options.merge!('command' => 'listRegions')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_remote_access_vpns.rb b/lib/fog/cloudstack/requests/compute/list_remote_access_vpns.rb
new file mode 100644
index 0000000..5b8770c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_remote_access_vpns.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists remote access vpns
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listRemoteAccessVpns.html]
+        def list_remote_access_vpns(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listRemoteAccessVpns') 
+          else
+            options.merge!('command' => 'listRemoteAccessVpns')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_resource_details.rb b/lib/fog/cloudstack/requests/compute/list_resource_details.rb
new file mode 100644
index 0000000..7c0176f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_resource_details.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List resource detail(s)
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listResourceDetails.html]
+        def list_resource_details(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listResourceDetails') 
+          else
+            options.merge!('command' => 'listResourceDetails', 
+            'resourcetype' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_resource_limits.rb b/lib/fog/cloudstack/requests/compute/list_resource_limits.rb
index 94c873d..9d82404 100644
--- a/lib/fog/cloudstack/requests/compute/list_resource_limits.rb
+++ b/lib/fog/cloudstack/requests/compute/list_resource_limits.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists resource limits.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listResourceLimits.html]
-        def list_resource_limits(options={})
-          options.merge!(
-            'command' => 'listResourceLimits'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listResourceLimits.html]
+        def list_resource_limits(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listResourceLimits') 
+          else
+            options.merge!('command' => 'listResourceLimits')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_routers.rb b/lib/fog/cloudstack/requests/compute/list_routers.rb
new file mode 100644
index 0000000..1bf3ad6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_routers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List routers.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listRouters.html]
+        def list_routers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listRouters') 
+          else
+            options.merge!('command' => 'listRouters')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_s3s.rb b/lib/fog/cloudstack/requests/compute/list_s3s.rb
new file mode 100644
index 0000000..9f73511
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_s3s.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists S3s
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listS3s.html]
+        def list_s3s(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listS3s') 
+          else
+            options.merge!('command' => 'listS3s')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_secondary_staging_stores.rb b/lib/fog/cloudstack/requests/compute/list_secondary_staging_stores.rb
new file mode 100644
index 0000000..daeda57
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_secondary_staging_stores.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists secondary staging stores.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSecondaryStagingStores.html]
+        def list_secondary_staging_stores(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSecondaryStagingStores') 
+          else
+            options.merge!('command' => 'listSecondaryStagingStores')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_security_groups.rb b/lib/fog/cloudstack/requests/compute/list_security_groups.rb
index 5a14110..8a8951c 100644
--- a/lib/fog/cloudstack/requests/compute/list_security_groups.rb
+++ b/lib/fog/cloudstack/requests/compute/list_security_groups.rb
@@ -1,18 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-
-        def list_security_groups(options={})
-          options.merge!(
-            'command' => 'listSecurityGroups'
-          )
 
+      class Real
+        # Lists security groups
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSecurityGroups.html]
+        def list_security_groups(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSecurityGroups') 
+          else
+            options.merge!('command' => 'listSecurityGroups')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def list_security_groups(options={})
           security_groups = []
@@ -32,7 +37,8 @@ module Fog
             }
           }
         end
-      end
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_service_offerings.rb b/lib/fog/cloudstack/requests/compute/list_service_offerings.rb
index e138aca..03d45f5 100644
--- a/lib/fog/cloudstack/requests/compute/list_service_offerings.rb
+++ b/lib/fog/cloudstack/requests/compute/list_service_offerings.rb
@@ -1,21 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all available service offerings.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listServiceOfferings.html]
-        def list_service_offerings(options={})
-          options.merge!(
-            'command' => 'listServiceOfferings'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listServiceOfferings.html]
+        def list_service_offerings(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listServiceOfferings') 
+          else
+            options.merge!('command' => 'listServiceOfferings')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
 
         def list_service_offerings(options={})
@@ -36,7 +38,8 @@ module Fog
             }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb b/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb
index d9ef1bf..5f7741e 100644
--- a/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb
+++ b/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists domains and provides detailed information for listed domains.
+      class Real
+        # Lists snapshot policies.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listDomains.html]
-        def list_snapshot_policies(options={})
-          options.merge!(
-            'command' => 'listSnapshotPolicies'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSnapshotPolicies.html]
+        def list_snapshot_policies(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSnapshotPolicies') 
+          else
+            options.merge!('command' => 'listSnapshotPolicies', 
+            'volumeid' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_snapshots.rb b/lib/fog/cloudstack/requests/compute/list_snapshots.rb
index df46513..7410de6 100644
--- a/lib/fog/cloudstack/requests/compute/list_snapshots.rb
+++ b/lib/fog/cloudstack/requests/compute/list_snapshots.rb
@@ -1,23 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all available snapshots for the account.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listSnapshots.html]
-        def list_snapshots(options={})
-          options.merge!(
-            'command' => 'listSnapshots'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSnapshots.html]
+        def list_snapshots(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSnapshots') 
+          else
+            options.merge!('command' => 'listSnapshots')
+          end
           request(options)
         end
-
       end
-
+ 
       class Mock
-
         def list_snapshots(options={})
           snapshot_id = options.delete('id')
           if snapshot_id
@@ -33,9 +34,8 @@ module Fog
             }
           }
         end
-
-      end
-
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_srx_firewall_networks.rb b/lib/fog/cloudstack/requests/compute/list_srx_firewall_networks.rb
new file mode 100644
index 0000000..70d3c96
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_srx_firewall_networks.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists network that are using SRX firewall device
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSrxFirewallNetworks.html]
+        def list_srx_firewall_networks(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSrxFirewallNetworks') 
+          else
+            options.merge!('command' => 'listSrxFirewallNetworks', 
+            'lbdeviceid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_srx_firewalls.rb b/lib/fog/cloudstack/requests/compute/list_srx_firewalls.rb
new file mode 100644
index 0000000..0a4fdfc
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_srx_firewalls.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # lists SRX firewall devices in a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSrxFirewalls.html]
+        def list_srx_firewalls(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSrxFirewalls') 
+          else
+            options.merge!('command' => 'listSrxFirewalls')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb b/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb
index 9b4eb20..6573af3 100644
--- a/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb
+++ b/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # List registered keypairs.
+      class Real
+        # List registered keypairs
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listSSHKeyPairs.html]
-        def list_ssh_key_pairs(options={})
-          options.merge!(
-            'command' => 'listSSHKeyPairs'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSSHKeyPairs.html]
+        def list_ssh_key_pairs(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSSHKeyPairs') 
+          else
+            options.merge!('command' => 'listSSHKeyPairs')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ssl_certs.rb b/lib/fog/cloudstack/requests/compute/list_ssl_certs.rb
new file mode 100644
index 0000000..c231a11
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ssl_certs.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists SSL certificates
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSslCerts.html]
+        def list_ssl_certs(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSslCerts') 
+          else
+            options.merge!('command' => 'listSslCerts')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_static_routes.rb b/lib/fog/cloudstack/requests/compute/list_static_routes.rb
new file mode 100644
index 0000000..f85b467
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_static_routes.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all static routes
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listStaticRoutes.html]
+        def list_static_routes(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listStaticRoutes') 
+          else
+            options.merge!('command' => 'listStaticRoutes')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_storage_network_ip_range.rb b/lib/fog/cloudstack/requests/compute/list_storage_network_ip_range.rb
new file mode 100644
index 0000000..194994a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_storage_network_ip_range.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List a storage network IP range.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listStorageNetworkIpRange.html]
+        def list_storage_network_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listStorageNetworkIpRange') 
+          else
+            options.merge!('command' => 'listStorageNetworkIpRange')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_storage_pools.rb b/lib/fog/cloudstack/requests/compute/list_storage_pools.rb
index e41b5fe..48b00e8 100644
--- a/lib/fog/cloudstack/requests/compute/list_storage_pools.rb
+++ b/lib/fog/cloudstack/requests/compute/list_storage_pools.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists storage pools.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listStoragePools.html]
-        def list_storage_pools(options={})
-          options.merge!(
-            'command' => 'listStoragePools'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listStoragePools.html]
+        def list_storage_pools(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listStoragePools') 
+          else
+            options.merge!('command' => 'listStoragePools')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_storage_providers.rb b/lib/fog/cloudstack/requests/compute/list_storage_providers.rb
new file mode 100644
index 0000000..9403bd9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_storage_providers.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists storage providers.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listStorageProviders.html]
+        def list_storage_providers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listStorageProviders') 
+          else
+            options.merge!('command' => 'listStorageProviders', 
+            'type' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_supported_network_services.rb b/lib/fog/cloudstack/requests/compute/list_supported_network_services.rb
new file mode 100644
index 0000000..3b5d14e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_supported_network_services.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all network services provided by CloudStack or for the given Provider.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSupportedNetworkServices.html]
+        def list_supported_network_services(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSupportedNetworkServices') 
+          else
+            options.merge!('command' => 'listSupportedNetworkServices')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_swifts.rb b/lib/fog/cloudstack/requests/compute/list_swifts.rb
new file mode 100644
index 0000000..de8c72b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_swifts.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List Swift.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSwifts.html]
+        def list_swifts(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSwifts') 
+          else
+            options.merge!('command' => 'listSwifts')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_system_vms.rb b/lib/fog/cloudstack/requests/compute/list_system_vms.rb
new file mode 100644
index 0000000..40e2119
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_system_vms.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List system virtual machines.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listSystemVms.html]
+        def list_system_vms(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listSystemVms') 
+          else
+            options.merge!('command' => 'listSystemVms')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_tags.rb b/lib/fog/cloudstack/requests/compute/list_tags.rb
new file mode 100644
index 0000000..5cc22d3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_tags.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List resource tag(s)
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listTags.html]
+        def list_tags(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listTags') 
+          else
+            options.merge!('command' => 'listTags')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_template_permissions.rb b/lib/fog/cloudstack/requests/compute/list_template_permissions.rb
new file mode 100644
index 0000000..81aea59
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_template_permissions.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List template visibility and all accounts that have permissions to view this template.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listTemplatePermissions.html]
+        def list_template_permissions(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listTemplatePermissions') 
+          else
+            options.merge!('command' => 'listTemplatePermissions', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_templates.rb b/lib/fog/cloudstack/requests/compute/list_templates.rb
index 09020f5..9e3d8a7 100644
--- a/lib/fog/cloudstack/requests/compute/list_templates.rb
+++ b/lib/fog/cloudstack/requests/compute/list_templates.rb
@@ -1,23 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # List all public, private, and privileged templates.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listTemplates.html]
-        def list_templates(options={})
-          options.merge!(
-            'command' => 'listTemplates'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listTemplates.html]
+        def list_templates(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listTemplates') 
+          else
+            options.merge!('command' => 'listTemplates', 
+            'templatefilter' => args[0])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
-
         def list_templates(options={})
           templates = self.data[:images].values
 
@@ -29,7 +31,8 @@ module Fog
               }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_traffic_monitors.rb b/lib/fog/cloudstack/requests/compute/list_traffic_monitors.rb
new file mode 100644
index 0000000..a178659
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_traffic_monitors.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List traffic monitor Hosts.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listTrafficMonitors.html]
+        def list_traffic_monitors(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listTrafficMonitors') 
+          else
+            options.merge!('command' => 'listTrafficMonitors', 
+            'zoneid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_traffic_type_implementors.rb b/lib/fog/cloudstack/requests/compute/list_traffic_type_implementors.rb
new file mode 100644
index 0000000..2784650
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_traffic_type_implementors.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists implementors of implementor of a network traffic type or implementors of all network traffic types
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listTrafficTypeImplementors.html]
+        def list_traffic_type_implementors(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listTrafficTypeImplementors') 
+          else
+            options.merge!('command' => 'listTrafficTypeImplementors')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_traffic_types.rb b/lib/fog/cloudstack/requests/compute/list_traffic_types.rb
new file mode 100644
index 0000000..2e1ed65
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_traffic_types.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists traffic types of a given physical network.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listTrafficTypes.html]
+        def list_traffic_types(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listTrafficTypes') 
+          else
+            options.merge!('command' => 'listTrafficTypes', 
+            'physicalnetworkid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ucs_blades.rb b/lib/fog/cloudstack/requests/compute/list_ucs_blades.rb
new file mode 100644
index 0000000..0d93b67
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ucs_blades.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List ucs blades
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listUcsBlades.html]
+        def list_ucs_blades(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listUcsBlades') 
+          else
+            options.merge!('command' => 'listUcsBlades', 
+            'ucsmanagerid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ucs_managers.rb b/lib/fog/cloudstack/requests/compute/list_ucs_managers.rb
new file mode 100644
index 0000000..6bc1bdf
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ucs_managers.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List ucs manager
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listUcsManagers.html]
+        def list_ucs_managers(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listUcsManagers') 
+          else
+            options.merge!('command' => 'listUcsManagers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ucs_profiles.rb b/lib/fog/cloudstack/requests/compute/list_ucs_profiles.rb
new file mode 100644
index 0000000..39e6925
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ucs_profiles.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List profile in ucs manager
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listUcsProfiles.html]
+        def list_ucs_profiles(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listUcsProfiles') 
+          else
+            options.merge!('command' => 'listUcsProfiles', 
+            'ucsmanagerid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_ucs_templates.rb b/lib/fog/cloudstack/requests/compute/list_ucs_templates.rb
new file mode 100644
index 0000000..108efa8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_ucs_templates.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List templates in ucs manager
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/listUcsTemplates.html]
+        def list_ucs_templates(ucsmanagerid, options={})
+          options.merge!(
+            'command' => 'listUcsTemplates', 
+            'ucsmanagerid' => ucsmanagerid  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_usage_records.rb b/lib/fog/cloudstack/requests/compute/list_usage_records.rb
index 0d169c9..ef98517 100644
--- a/lib/fog/cloudstack/requests/compute/list_usage_records.rb
+++ b/lib/fog/cloudstack/requests/compute/list_usage_records.rb
@@ -1,28 +1,26 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists usage records for accounts.
+      class Real
+        # Lists usage records for accounts
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listUsageRecords.html]
-        def list_usage_records(options={})
-          options.merge!(
-            'command' => 'listUsageRecords'
-          )
-
-          if startdate = options.delete('startdate')
-            options.merge!('startdate' => startdate.strftime('%Y-%m-%d'))
-          end
-
-          if enddate = options.delete('enddate')
-            options.merge!('enddate' => enddate.strftime('%Y-%m-%d'))
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listUsageRecords.html]
+        def list_usage_records(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listUsageRecords') 
+          else
+            options.merge!('command' => 'listUsageRecords', 
+            'enddate' => args[0], 
+            'startdate' => args[1])
           end
-
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_usage_types.rb b/lib/fog/cloudstack/requests/compute/list_usage_types.rb
new file mode 100644
index 0000000..111f654
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_usage_types.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List Usage Types
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listUsageTypes.html]
+        def list_usage_types(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listUsageTypes') 
+          else
+            options.merge!('command' => 'listUsageTypes')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_users.rb b/lib/fog/cloudstack/requests/compute/list_users.rb
index 09c9058..9fd8b29 100644
--- a/lib/fog/cloudstack/requests/compute/list_users.rb
+++ b/lib/fog/cloudstack/requests/compute/list_users.rb
@@ -1,20 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists user accounts.
+      class Real
+        # Lists user accounts
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listUsers.html]
-        def list_users(options={})
-          options.merge!(
-            'command' => 'listUsers'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listUsers.html]
+        def list_users(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listUsers') 
+          else
+            options.merge!('command' => 'listUsers')
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb b/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb
index 7371a94..36d5c4a 100644
--- a/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb
+++ b/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb
@@ -1,26 +1,30 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # List the virtual machines owned by the account.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listVirtualMachines.html]
-        def list_virtual_machines(options={})
-          options.merge!(
-            'command' => 'listVirtualMachines'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVirtualMachines.html]
+        def list_virtual_machines(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVirtualMachines') 
+          else
+            options.merge!('command' => 'listVirtualMachines')
+          end
           request(options)
         end
-      end # Real
-
+      end
+ 
       class Mock
         def list_virtual_machines(options={})
           {"listvirtualmachinesresponse" =>
             {"count" => self.data[:servers].values.size, "virtualmachine" => self.data[:servers].values}}
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_virtual_router_elements.rb b/lib/fog/cloudstack/requests/compute/list_virtual_router_elements.rb
new file mode 100644
index 0000000..951c0ca
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_virtual_router_elements.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all available virtual router elements.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVirtualRouterElements.html]
+        def list_virtual_router_elements(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVirtualRouterElements') 
+          else
+            options.merge!('command' => 'listVirtualRouterElements')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vlan_ip_ranges.rb b/lib/fog/cloudstack/requests/compute/list_vlan_ip_ranges.rb
new file mode 100644
index 0000000..fd4b38f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vlan_ip_ranges.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists all VLAN IP ranges.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVlanIpRanges.html]
+        def list_vlan_ip_ranges(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVlanIpRanges') 
+          else
+            options.merge!('command' => 'listVlanIpRanges')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vm_snapshot.rb b/lib/fog/cloudstack/requests/compute/list_vm_snapshot.rb
new file mode 100644
index 0000000..3d89fdf
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vm_snapshot.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List virtual machine snapshot by conditions
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVMSnapshot.html]
+        def list_vm_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVMSnapshot') 
+          else
+            options.merge!('command' => 'listVMSnapshot')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vmware_dcs.rb b/lib/fog/cloudstack/requests/compute/list_vmware_dcs.rb
new file mode 100644
index 0000000..7b5b8f6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vmware_dcs.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Retrieves VMware DC(s) associated with a zone.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVmwareDcs.html]
+        def list_vmware_dcs(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVmwareDcs') 
+          else
+            options.merge!('command' => 'listVmwareDcs', 
+            'zoneid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_volumes.rb b/lib/fog/cloudstack/requests/compute/list_volumes.rb
index d63bf13..b8fb4d2 100644
--- a/lib/fog/cloudstack/requests/compute/list_volumes.rb
+++ b/lib/fog/cloudstack/requests/compute/list_volumes.rb
@@ -1,21 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Lists all volumes.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listVolumes.html]
-        def list_volumes(options={})
-          options.merge!(
-            'command' => 'listVolumes'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVolumes.html]
+        def list_volumes(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVolumes') 
+          else
+            options.merge!('command' => 'listVolumes')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def list_volumes(options={})
           volume_id = options.delete('id')
@@ -32,7 +34,8 @@ module Fog
             }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end #Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_volumes_on_filer.rb b/lib/fog/cloudstack/requests/compute/list_volumes_on_filer.rb
new file mode 100644
index 0000000..c770e8b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_volumes_on_filer.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # List Volumes
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/listVolumesOnFiler.html]
+        def list_volumes_on_filer(poolname, options={})
+          options.merge!(
+            'command' => 'listVolumesOnFiler', 
+            'poolname' => poolname  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vpc_offerings.rb b/lib/fog/cloudstack/requests/compute/list_vpc_offerings.rb
new file mode 100644
index 0000000..adc691e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vpc_offerings.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists VPC offerings
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVPCOfferings.html]
+        def list_vpc_offerings(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVPCOfferings') 
+          else
+            options.merge!('command' => 'listVPCOfferings')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vpcs.rb b/lib/fog/cloudstack/requests/compute/list_vpcs.rb
new file mode 100644
index 0000000..fa160a2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vpcs.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists VPCs
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVPCs.html]
+        def list_vpcs(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVPCs') 
+          else
+            options.merge!('command' => 'listVPCs')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vpn_connections.rb b/lib/fog/cloudstack/requests/compute/list_vpn_connections.rb
new file mode 100644
index 0000000..1e6c4d2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vpn_connections.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists site to site vpn connection gateways
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVpnConnections.html]
+        def list_vpn_connections(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVpnConnections') 
+          else
+            options.merge!('command' => 'listVpnConnections')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vpn_customer_gateways.rb b/lib/fog/cloudstack/requests/compute/list_vpn_customer_gateways.rb
new file mode 100644
index 0000000..1939aca
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vpn_customer_gateways.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists site to site vpn customer gateways
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVpnCustomerGateways.html]
+        def list_vpn_customer_gateways(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVpnCustomerGateways') 
+          else
+            options.merge!('command' => 'listVpnCustomerGateways')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vpn_gateways.rb b/lib/fog/cloudstack/requests/compute/list_vpn_gateways.rb
new file mode 100644
index 0000000..0633c1e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vpn_gateways.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists site 2 site vpn gateways
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVpnGateways.html]
+        def list_vpn_gateways(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVpnGateways') 
+          else
+            options.merge!('command' => 'listVpnGateways')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_vpn_users.rb b/lib/fog/cloudstack/requests/compute/list_vpn_users.rb
new file mode 100644
index 0000000..54dd79a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/list_vpn_users.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Lists vpn users
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listVpnUsers.html]
+        def list_vpn_users(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listVpnUsers') 
+          else
+            options.merge!('command' => 'listVpnUsers')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/list_zones.rb b/lib/fog/cloudstack/requests/compute/list_zones.rb
index e1b140c..2a4af90 100644
--- a/lib/fog/cloudstack/requests/compute/list_zones.rb
+++ b/lib/fog/cloudstack/requests/compute/list_zones.rb
@@ -1,21 +1,23 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Lists zones.
+      class Real
+        # Lists zones
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/listZones.html]
-        def list_zones(options={})
-          options.merge!(
-            'command' => 'listZones'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/listZones.html]
+        def list_zones(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'listZones') 
+          else
+            options.merge!('command' => 'listZones')
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def list_zones(options={})
           zones = self.data[:zones].values
@@ -28,7 +30,8 @@ module Fog
             }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end # Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/lock_account.rb b/lib/fog/cloudstack/requests/compute/lock_account.rb
new file mode 100644
index 0000000..4e25757
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/lock_account.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Locks an account
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/lockAccount.html]
+        def lock_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'lockAccount') 
+          else
+            options.merge!('command' => 'lockAccount', 
+            'account' => args[0], 
+            'domainid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/lock_user.rb b/lib/fog/cloudstack/requests/compute/lock_user.rb
new file mode 100644
index 0000000..2e39325
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/lock_user.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Locks a user account
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/lockUser.html]
+        def lock_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'lockUser') 
+          else
+            options.merge!('command' => 'lockUser', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/mark_default_zone_for_account.rb b/lib/fog/cloudstack/requests/compute/mark_default_zone_for_account.rb
new file mode 100644
index 0000000..057dfc8
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/mark_default_zone_for_account.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Marks a default zone for this account
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/markDefaultZoneForAccount.html]
+        def mark_default_zone_for_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'markDefaultZoneForAccount') 
+          else
+            options.merge!('command' => 'markDefaultZoneForAccount', 
+            'zoneid' => args[0], 
+            'account' => args[1], 
+            'domainid' => args[2])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/migrate_system_vm.rb b/lib/fog/cloudstack/requests/compute/migrate_system_vm.rb
new file mode 100644
index 0000000..d870b8e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/migrate_system_vm.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Attempts Migration of a system virtual machine to the host specified.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/migrateSystemVm.html]
+        def migrate_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'migrateSystemVm') 
+          else
+            options.merge!('command' => 'migrateSystemVm', 
+            'virtualmachineid' => args[0], 
+            'hostid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb
index c888ff1..2f3ff86 100644
--- a/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Attempts Migration of a virtual machine to the host specified
+      class Real
+        # Attempts Migration of a VM to a different host or Root volume of the vm to a different storage pool
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/migrateVirtualMachine.html]
-        def migrate_virtual_machine(options={})
-          options.merge!(
-            'command' => 'migrateVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/migrateVirtualMachine.html]
+        def migrate_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'migrateVirtualMachine') 
+          else
+            options.merge!('command' => 'migrateVirtualMachine', 
+            'virtualmachineid' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/migrate_virtual_machine_with_volume.rb b/lib/fog/cloudstack/requests/compute/migrate_virtual_machine_with_volume.rb
new file mode 100644
index 0000000..2498259
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/migrate_virtual_machine_with_volume.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Attempts Migration of a VM with its volumes to a different host
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/migrateVirtualMachineWithVolume.html]
+        def migrate_virtual_machine_with_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'migrateVirtualMachineWithVolume') 
+          else
+            options.merge!('command' => 'migrateVirtualMachineWithVolume', 
+            'hostid' => args[0], 
+            'virtualmachineid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/migrate_volume.rb b/lib/fog/cloudstack/requests/compute/migrate_volume.rb
new file mode 100644
index 0000000..256ef71
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/migrate_volume.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Migrate volume
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/migrateVolume.html]
+        def migrate_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'migrateVolume') 
+          else
+            options.merge!('command' => 'migrateVolume', 
+            'storageid' => args[0], 
+            'volumeid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/modify_pool.rb b/lib/fog/cloudstack/requests/compute/modify_pool.rb
new file mode 100644
index 0000000..2c59e8d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/modify_pool.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Modify pool
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/modifyPool.html]
+        def modify_pool(algorithm, poolname, options={})
+          options.merge!(
+            'command' => 'modifyPool', 
+            'algorithm' => algorithm, 
+            'poolname' => poolname  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/prepare_host_for_maintenance.rb b/lib/fog/cloudstack/requests/compute/prepare_host_for_maintenance.rb
new file mode 100644
index 0000000..e8f2713
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/prepare_host_for_maintenance.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Prepares a host for maintenance.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/prepareHostForMaintenance.html]
+        def prepare_host_for_maintenance(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'prepareHostForMaintenance') 
+          else
+            options.merge!('command' => 'prepareHostForMaintenance', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/prepare_template.rb b/lib/fog/cloudstack/requests/compute/prepare_template.rb
new file mode 100644
index 0000000..ed76c95
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/prepare_template.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # load template into primary storage
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/prepareTemplate.html]
+        def prepare_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'prepareTemplate') 
+          else
+            options.merge!('command' => 'prepareTemplate', 
+            'templateid' => args[0], 
+            'zoneid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/query_async_job_result.rb b/lib/fog/cloudstack/requests/compute/query_async_job_result.rb
index b83ac56..4417383 100644
--- a/lib/fog/cloudstack/requests/compute/query_async_job_result.rb
+++ b/lib/fog/cloudstack/requests/compute/query_async_job_result.rb
@@ -1,18 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-
-        def query_async_job_result(options={})
-          options.merge!(
-            'command' => 'queryAsyncJobResult'
-          )
 
+      class Real
+        # Retrieves the current status of asynchronous job.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/queryAsyncJobResult.html]
+        def query_async_job_result(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'queryAsyncJobResult') 
+          else
+            options.merge!('command' => 'queryAsyncJobResult', 
+            'jobid' => args[0])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def query_async_job_result(options={})
           unless job_id = options['jobid']
@@ -25,8 +31,8 @@ module Fog
 
           {'queryasyncjobresultresponse' => job }
         end
-      end
-
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/reboot_router.rb b/lib/fog/cloudstack/requests/compute/reboot_router.rb
new file mode 100644
index 0000000..09e9eda
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/reboot_router.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Starts a router.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/rebootRouter.html]
+        def reboot_router(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'rebootRouter') 
+          else
+            options.merge!('command' => 'rebootRouter', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/reboot_system_vm.rb b/lib/fog/cloudstack/requests/compute/reboot_system_vm.rb
new file mode 100644
index 0000000..f44f509
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/reboot_system_vm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Reboots a system VM.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/rebootSystemVm.html]
+        def reboot_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'rebootSystemVm') 
+          else
+            options.merge!('command' => 'rebootSystemVm', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb
index c4f3dcd..7fb9a52 100644
--- a/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb
@@ -1,21 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates account information for the authenticated user.
+      class Real
+        # Reboots a virtual machine.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/rebootVirtualMachine.html]
-        def reboot_virtual_machine(options={})
-          options.merge!(
-            'command' => 'rebootVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/rebootVirtualMachine.html]
+        def reboot_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'rebootVirtualMachine') 
+          else
+            options.merge!('command' => 'rebootVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
-
+ 
       class Mock
         def reboot_virtual_machine(options={})
           job_id = Fog::Cloudstack.uuid
@@ -25,7 +28,8 @@ module Fog
             }
           }
         end
-      end
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/reconnect_host.rb b/lib/fog/cloudstack/requests/compute/reconnect_host.rb
new file mode 100644
index 0000000..0b54590
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/reconnect_host.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Reconnects a host.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/reconnectHost.html]
+        def reconnect_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'reconnectHost') 
+          else
+            options.merge!('command' => 'reconnectHost', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb
index c4f6046..7475339 100644
--- a/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Recovers a virtual machine.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/recoverVirtualMachine.html]
-        def recover_virtual_machine(options={})
-          options.merge!(
-            'command' => 'recoverVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/recoverVirtualMachine.html]
+        def recover_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'recoverVirtualMachine') 
+          else
+            options.merge!('command' => 'recoverVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/refresh_ucs_blades.rb b/lib/fog/cloudstack/requests/compute/refresh_ucs_blades.rb
new file mode 100644
index 0000000..a1e1d18
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/refresh_ucs_blades.rb
@@ -0,0 +1,21 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # refresh ucs blades to sync with UCS manager
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/refreshUcsBlades.html]
+        def refresh_ucs_blades(ucsmanagerid, options={})
+          options.merge!(
+            'command' => 'refreshUcsBlades', 
+            'ucsmanagerid' => ucsmanagerid  
+          )
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/register_iso.rb b/lib/fog/cloudstack/requests/compute/register_iso.rb
new file mode 100644
index 0000000..06e3492
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/register_iso.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Registers an existing ISO into the CloudStack Cloud.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/registerIso.html]
+        def register_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'registerIso') 
+          else
+            options.merge!('command' => 'registerIso', 
+            'name' => args[0], 
+            'displaytext' => args[1], 
+            'url' => args[2], 
+            'zoneid' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb b/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb
index a8b9eba..d289dd2 100644
--- a/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb
+++ b/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb
@@ -1,19 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Registers an SSH key pair..
+      class Real
+        # Register a public key in a keypair under a certain name
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/registerSSHKeyPair.html]
-        def register_ssh_key_pair(options={})
-          options.merge!(
-            'command' => 'registerSSHKeyPair'
-          )
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/registerSSHKeyPair.html]
+        def register_ssh_key_pair(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'registerSSHKeyPair') 
+          else
+            options.merge!('command' => 'registerSSHKeyPair', 
+            'name' => args[0], 
+            'publickey' => args[1])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
diff --git a/lib/fog/cloudstack/requests/compute/register_template.rb b/lib/fog/cloudstack/requests/compute/register_template.rb
index f67201a..a17f611 100644
--- a/lib/fog/cloudstack/requests/compute/register_template.rb
+++ b/lib/fog/cloudstack/requests/compute/register_template.rb
@@ -1,21 +1,30 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Registers an existing template into the cloud.
+      class Real
+        # Registers an existing template into the CloudStack cloud. 
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/3.0.0/api_3.0.0/user/registerTemplate.html]
-        def register_template(options={})
-          options.merge!(
-              'command' => 'registerTemplate'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/registerTemplate.html]
+        def register_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'registerTemplate') 
+          else
+            options.merge!('command' => 'registerTemplate', 
+            'zoneid' => args[0], 
+            'format' => args[1], 
+            'hypervisor' => args[2], 
+            'url' => args[3], 
+            'name' => args[4], 
+            'ostypeid' => args[5], 
+            'displaytext' => args[6])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def register_template(options={})
           mock_template_id = self.data[:images].keys.first
@@ -29,7 +38,8 @@ module Fog
               }
           }
         end
-      end # Mock
-    end # Cloudstack
-  end # Compute
-end #Fog
+      end 
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/register_user_keys.rb b/lib/fog/cloudstack/requests/compute/register_user_keys.rb
index f1443f4..ea0730b 100644
--- a/lib/fog/cloudstack/requests/compute/register_user_keys.rb
+++ b/lib/fog/cloudstack/requests/compute/register_user_keys.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Enables a user account.
+      class Real
+        # This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/registerUserKeys.html]
-        def register_user_keys(options={})
-          options.merge!(
-            'command' => 'registerUserKeys'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/registerUserKeys.html]
+        def register_user_keys(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'registerUserKeys') 
+          else
+            options.merge!('command' => 'registerUserKeys', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_dedicated_cluster.rb b/lib/fog/cloudstack/requests/compute/release_dedicated_cluster.rb
new file mode 100644
index 0000000..5f7c4a9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_dedicated_cluster.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Release the dedication for cluster
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releaseDedicatedCluster.html]
+        def release_dedicated_cluster(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releaseDedicatedCluster') 
+          else
+            options.merge!('command' => 'releaseDedicatedCluster', 
+            'clusterid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_dedicated_guest_vlan_range.rb b/lib/fog/cloudstack/requests/compute/release_dedicated_guest_vlan_range.rb
new file mode 100644
index 0000000..2cbeff0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_dedicated_guest_vlan_range.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Releases a dedicated guest vlan range to the system
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releaseDedicatedGuestVlanRange.html]
+        def release_dedicated_guest_vlan_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releaseDedicatedGuestVlanRange') 
+          else
+            options.merge!('command' => 'releaseDedicatedGuestVlanRange', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_dedicated_host.rb b/lib/fog/cloudstack/requests/compute/release_dedicated_host.rb
new file mode 100644
index 0000000..d631c35
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_dedicated_host.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Release the dedication for host
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releaseDedicatedHost.html]
+        def release_dedicated_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releaseDedicatedHost') 
+          else
+            options.merge!('command' => 'releaseDedicatedHost', 
+            'hostid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_dedicated_pod.rb b/lib/fog/cloudstack/requests/compute/release_dedicated_pod.rb
new file mode 100644
index 0000000..ccac292
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_dedicated_pod.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Release the dedication for the pod
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releaseDedicatedPod.html]
+        def release_dedicated_pod(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releaseDedicatedPod') 
+          else
+            options.merge!('command' => 'releaseDedicatedPod', 
+            'podid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_dedicated_zone.rb b/lib/fog/cloudstack/requests/compute/release_dedicated_zone.rb
new file mode 100644
index 0000000..86ca40c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_dedicated_zone.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Release dedication of zone
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releaseDedicatedZone.html]
+        def release_dedicated_zone(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releaseDedicatedZone') 
+          else
+            options.merge!('command' => 'releaseDedicatedZone', 
+            'zoneid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_host_reservation.rb b/lib/fog/cloudstack/requests/compute/release_host_reservation.rb
new file mode 100644
index 0000000..7363803
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_host_reservation.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Releases host reservation.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releaseHostReservation.html]
+        def release_host_reservation(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releaseHostReservation') 
+          else
+            options.merge!('command' => 'releaseHostReservation', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/release_public_ip_range.rb b/lib/fog/cloudstack/requests/compute/release_public_ip_range.rb
new file mode 100644
index 0000000..2bbfdfb
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/release_public_ip_range.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Releases a Public IP range back to the system pool
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/releasePublicIpRange.html]
+        def release_public_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'releasePublicIpRange') 
+          else
+            options.merge!('command' => 'releasePublicIpRange', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_cert_from_load_balancer.rb b/lib/fog/cloudstack/requests/compute/remove_cert_from_load_balancer.rb
new file mode 100644
index 0000000..76762da
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_cert_from_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes a certificate from a Load Balancer Rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeCertFromLoadBalancer.html]
+        def remove_cert_from_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeCertFromLoadBalancer') 
+          else
+            options.merge!('command' => 'removeCertFromLoadBalancer', 
+            'lbruleid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_from_global_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/remove_from_global_load_balancer_rule.rb
new file mode 100644
index 0000000..89c403c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_from_global_load_balancer_rule.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes a load balancer rule association with global load balancer rule
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeFromGlobalLoadBalancerRule.html]
+        def remove_from_global_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeFromGlobalLoadBalancerRule') 
+          else
+            options.merge!('command' => 'removeFromGlobalLoadBalancerRule', 
+            'id' => args[0], 
+            'loadbalancerrulelist' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb
index bc09ac9..d3db1b5 100644
--- a/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb
+++ b/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb
@@ -1,24 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
+      class Real
         # Removes a virtual machine or a list of virtual machines from a load balancer rule.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/removeFromLoadBalancerRule.html]
-        def remove_from_load_balancer_rule(id,virtualmachineids=[])
-          virtualmachineids = [*virtualmachineids]
-
-          options = {
-            'command' => 'removeFromLoadBalancerRule',
-            'id' => id,
-            'virtualmachineids' => virtualmachineids.join(',')
-          }
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeFromLoadBalancerRule.html]
+        def remove_from_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeFromLoadBalancerRule') 
+          else
+            options.merge!('command' => 'removeFromLoadBalancerRule', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
diff --git a/lib/fog/cloudstack/requests/compute/remove_guest_os.rb b/lib/fog/cloudstack/requests/compute/remove_guest_os.rb
new file mode 100644
index 0000000..ae3c7ce
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_guest_os.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes a Guest OS from listing.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeGuestOs.html]
+        def remove_guest_os(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeGuestOs') 
+          else
+            options.merge!('command' => 'removeGuestOs', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_guest_os_mapping.rb b/lib/fog/cloudstack/requests/compute/remove_guest_os_mapping.rb
new file mode 100644
index 0000000..4dfc591
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_guest_os_mapping.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes a Guest OS Mapping.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeGuestOsMapping.html]
+        def remove_guest_os_mapping(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeGuestOsMapping') 
+          else
+            options.merge!('command' => 'removeGuestOsMapping', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_ip_from_nic.rb b/lib/fog/cloudstack/requests/compute/remove_ip_from_nic.rb
new file mode 100644
index 0000000..6b8ca3c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_ip_from_nic.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes secondary IP from the NIC.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeIpFromNic.html]
+        def remove_ip_from_nic(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeIpFromNic') 
+          else
+            options.merge!('command' => 'removeIpFromNic', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_nic_from_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/remove_nic_from_virtual_machine.rb
new file mode 100644
index 0000000..ab4254c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_nic_from_virtual_machine.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes VM from specified network by deleting a NIC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeNicFromVirtualMachine.html]
+        def remove_nic_from_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeNicFromVirtualMachine') 
+          else
+            options.merge!('command' => 'removeNicFromVirtualMachine', 
+            'virtualmachineid' => args[0], 
+            'nicid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_region.rb b/lib/fog/cloudstack/requests/compute/remove_region.rb
new file mode 100644
index 0000000..110bd84
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_region.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes specified region
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeRegion.html]
+        def remove_region(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeRegion') 
+          else
+            options.merge!('command' => 'removeRegion', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_resource_detail.rb b/lib/fog/cloudstack/requests/compute/remove_resource_detail.rb
new file mode 100644
index 0000000..c94deb9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_resource_detail.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes detail for the Resource.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeResourceDetail.html]
+        def remove_resource_detail(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeResourceDetail') 
+          else
+            options.merge!('command' => 'removeResourceDetail', 
+            'resourcetype' => args[0], 
+            'resourceid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_vmware_dc.rb b/lib/fog/cloudstack/requests/compute/remove_vmware_dc.rb
new file mode 100644
index 0000000..0d9d07e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_vmware_dc.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Remove a VMware datacenter from a zone.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeVmwareDc.html]
+        def remove_vmware_dc(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeVmwareDc') 
+          else
+            options.merge!('command' => 'removeVmwareDc', 
+            'zoneid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/remove_vpn_user.rb b/lib/fog/cloudstack/requests/compute/remove_vpn_user.rb
new file mode 100644
index 0000000..9d0b724
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/remove_vpn_user.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Removes vpn user
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/removeVpnUser.html]
+        def remove_vpn_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'removeVpnUser') 
+          else
+            options.merge!('command' => 'removeVpnUser', 
+            'username' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/replace_network_acl_list.rb b/lib/fog/cloudstack/requests/compute/replace_network_acl_list.rb
new file mode 100644
index 0000000..2d8e05c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/replace_network_acl_list.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Replaces ACL associated with a Network or private gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/replaceNetworkACLList.html]
+        def replace_network_acl_list(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'replaceNetworkACLList') 
+          else
+            options.merge!('command' => 'replaceNetworkACLList', 
+            'aclid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/reset_api_limit.rb b/lib/fog/cloudstack/requests/compute/reset_api_limit.rb
new file mode 100644
index 0000000..fb3bfcd
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/reset_api_limit.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Reset api count
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/resetApiLimit.html]
+        def reset_api_limit(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'resetApiLimit') 
+          else
+            options.merge!('command' => 'resetApiLimit')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb
index 00671aa..f364df9 100644
--- a/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb
@@ -1,21 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Returns an encrypted password for the VM
+      class Real
+        # Resets the password for virtual machine. The virtual machine must be in a "Stopped" state and the template must already support this feature for this command to take effect. [async]
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/resetPasswordForVirtualMachine.html]
-        def reset_password_for_virtual_machine(id)
-          options = {
-            'command' => 'resetPasswordForVirtualMachine',
-            'id' => id
-          }
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/resetPasswordForVirtualMachine.html]
+        def reset_password_for_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'resetPasswordForVirtualMachine') 
+          else
+            options.merge!('command' => 'resetPasswordForVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/reset_ssh_key_for_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/reset_ssh_key_for_virtual_machine.rb
new file mode 100644
index 0000000..f261d96
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/reset_ssh_key_for_virtual_machine.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Resets the SSH Key for virtual machine. The virtual machine must be in a "Stopped" state. [async]
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/resetSSHKeyForVirtualMachine.html]
+        def reset_ssh_key_for_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'resetSSHKeyForVirtualMachine') 
+          else
+            options.merge!('command' => 'resetSSHKeyForVirtualMachine', 
+            'id' => args[0], 
+            'keypair' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/reset_vpn_connection.rb b/lib/fog/cloudstack/requests/compute/reset_vpn_connection.rb
new file mode 100644
index 0000000..a197341
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/reset_vpn_connection.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Reset site to site vpn connection
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/resetVpnConnection.html]
+        def reset_vpn_connection(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'resetVpnConnection') 
+          else
+            options.merge!('command' => 'resetVpnConnection', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/resize_volume.rb b/lib/fog/cloudstack/requests/compute/resize_volume.rb
new file mode 100644
index 0000000..c23e2b6
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/resize_volume.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Resizes a volume
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/resizeVolume.html]
+        def resize_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'resizeVolume') 
+          else
+            options.merge!('command' => 'resizeVolume', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/restart_network.rb b/lib/fog/cloudstack/requests/compute/restart_network.rb
new file mode 100644
index 0000000..e63e65a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/restart_network.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Restarts the network; includes 1) restarting network elements - virtual routers, dhcp servers 2) reapplying all public ips 3) reapplying loadBalancing/portForwarding rules
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/restartNetwork.html]
+        def restart_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'restartNetwork') 
+          else
+            options.merge!('command' => 'restartNetwork', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/restart_vpc.rb b/lib/fog/cloudstack/requests/compute/restart_vpc.rb
new file mode 100644
index 0000000..009a83f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/restart_vpc.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Restarts a VPC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/restartVPC.html]
+        def restart_vpc(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'restartVPC') 
+          else
+            options.merge!('command' => 'restartVPC', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/restore_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/restore_virtual_machine.rb
new file mode 100644
index 0000000..0621523
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/restore_virtual_machine.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Restore a VM to original template/ISO or new template/ISO
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/restoreVirtualMachine.html]
+        def restore_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'restoreVirtualMachine') 
+          else
+            options.merge!('command' => 'restoreVirtualMachine', 
+            'virtualmachineid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/revert_snapshot.rb b/lib/fog/cloudstack/requests/compute/revert_snapshot.rb
new file mode 100644
index 0000000..396a23e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/revert_snapshot.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # revert a volume snapshot.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/revertSnapshot.html]
+        def revert_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'revertSnapshot') 
+          else
+            options.merge!('command' => 'revertSnapshot', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/revert_to_vm_snapshot.rb b/lib/fog/cloudstack/requests/compute/revert_to_vm_snapshot.rb
new file mode 100644
index 0000000..1096a02
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/revert_to_vm_snapshot.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Revert VM from a vmsnapshot.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/revertToVMSnapshot.html]
+        def revert_to_vm_snapshot(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'revertToVMSnapshot') 
+          else
+            options.merge!('command' => 'revertToVMSnapshot', 
+            'vmsnapshotid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb b/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb
index f80c2ff..1aea84f 100644
--- a/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb
+++ b/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb
@@ -1,15 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-        def revoke_security_group_egress(options={})
-          options.merge!(
-            'command' => 'revokeSecurityGroupEgress'
-          )
 
+      class Real
+        # Deletes a particular egress rule from this security group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/revokeSecurityGroupEgress.html]
+        def revoke_security_group_egress(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'revokeSecurityGroupEgress') 
+          else
+            options.merge!('command' => 'revokeSecurityGroupEgress', 
+            'id' => args[0])
+          end
           request(options)
         end
-      end # Real
+      end
+ 
       class Mock
         def revoke_security_group_egress(options={})
           unless security_group_rule_id = options['id']
@@ -36,7 +45,8 @@ module Fog
 
           {"revokesecuritygroupegress" => { "jobid" => job_id }}
         end
-      end # Mock
+      end 
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb b/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb
index b5fcd82..142084f 100644
--- a/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb
+++ b/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb
@@ -1,18 +1,24 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
-
-        def revoke_security_group_ingress(options={})
-          options.merge!(
-            'command' => 'revokeSecurityGroupIngress'
-          )
 
+      class Real
+        # Deletes a particular ingress rule from this security group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/revokeSecurityGroupIngress.html]
+        def revoke_security_group_ingress(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'revokeSecurityGroupIngress') 
+          else
+            options.merge!('command' => 'revokeSecurityGroupIngress', 
+            'id' => args[0])
+          end
           request(options)
         end
-
-      end # Real
-
+      end
+ 
       class Mock
         def revoke_security_group_ingress(options={})
           unless security_group_rule_id = options['id']
@@ -39,8 +45,7 @@ module Fog
 
           {"revokesecuritygroupingress" => { "jobid" => job_id }}
         end
-
-      end
+      end 
     end
   end
 end
diff --git a/lib/fog/cloudstack/requests/compute/scale_system_vm.rb b/lib/fog/cloudstack/requests/compute/scale_system_vm.rb
new file mode 100644
index 0000000..34c92f5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/scale_system_vm.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Scale the service offering for a system vm (console proxy or secondary storage). The system vm must be in a "Stopped" state for this command to take effect.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/scaleSystemVm.html]
+        def scale_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'scaleSystemVm') 
+          else
+            options.merge!('command' => 'scaleSystemVm', 
+            'serviceofferingid' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/scale_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/scale_virtual_machine.rb
new file mode 100644
index 0000000..84a5728
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/scale_virtual_machine.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Scales the virtual machine to a new service offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/scaleVirtualMachine.html]
+        def scale_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'scaleVirtualMachine') 
+          else
+            options.merge!('command' => 'scaleVirtualMachine', 
+            'serviceofferingid' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/start_internal_load_balancer_vm.rb b/lib/fog/cloudstack/requests/compute/start_internal_load_balancer_vm.rb
new file mode 100644
index 0000000..af34bd5
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/start_internal_load_balancer_vm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Starts an existing internal lb vm.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/startInternalLoadBalancerVM.html]
+        def start_internal_load_balancer_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'startInternalLoadBalancerVM') 
+          else
+            options.merge!('command' => 'startInternalLoadBalancerVM', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/start_router.rb b/lib/fog/cloudstack/requests/compute/start_router.rb
new file mode 100644
index 0000000..9712fbb
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/start_router.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Starts a router.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/startRouter.html]
+        def start_router(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'startRouter') 
+          else
+            options.merge!('command' => 'startRouter', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/start_system_vm.rb b/lib/fog/cloudstack/requests/compute/start_system_vm.rb
new file mode 100644
index 0000000..bb9781a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/start_system_vm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Starts a system virtual machine.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/startSystemVm.html]
+        def start_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'startSystemVm') 
+          else
+            options.merge!('command' => 'startSystemVm', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb
index b53363e..d3d500d 100644
--- a/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates account information for the authenticated user.
+      class Real
+        # Starts a virtual machine.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/startVirtualMachine.html]
-        def start_virtual_machine(options={})
-          options.merge!(
-            'command' => 'startVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/startVirtualMachine.html]
+        def start_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'startVirtualMachine') 
+          else
+            options.merge!('command' => 'startVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/stop_internal_load_balancer_vm.rb b/lib/fog/cloudstack/requests/compute/stop_internal_load_balancer_vm.rb
new file mode 100644
index 0000000..300eb80
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/stop_internal_load_balancer_vm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Stops an Internal LB vm.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/stopInternalLoadBalancerVM.html]
+        def stop_internal_load_balancer_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'stopInternalLoadBalancerVM') 
+          else
+            options.merge!('command' => 'stopInternalLoadBalancerVM', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/stop_router.rb b/lib/fog/cloudstack/requests/compute/stop_router.rb
new file mode 100644
index 0000000..d15b47c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/stop_router.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Stops a router.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/stopRouter.html]
+        def stop_router(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'stopRouter') 
+          else
+            options.merge!('command' => 'stopRouter', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/stop_system_vm.rb b/lib/fog/cloudstack/requests/compute/stop_system_vm.rb
new file mode 100644
index 0000000..2e8f4ab
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/stop_system_vm.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Stops a system VM.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/stopSystemVm.html]
+        def stop_system_vm(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'stopSystemVm') 
+          else
+            options.merge!('command' => 'stopSystemVm', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb
index 94e9c5a..884ea5b 100644
--- a/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates account information for the authenticated user.
+      class Real
+        # Stops a virtual machine.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/stopVirtualMachine.html]
-        def stop_virtual_machine(options={})
-          options.merge!(
-            'command' => 'stopVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/stopVirtualMachine.html]
+        def stop_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'stopVirtualMachine') 
+          else
+            options.merge!('command' => 'stopVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/suspend_project.rb b/lib/fog/cloudstack/requests/compute/suspend_project.rb
new file mode 100644
index 0000000..8b72b22
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/suspend_project.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Suspends a project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/suspendProject.html]
+        def suspend_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'suspendProject') 
+          else
+            options.merge!('command' => 'suspendProject', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_account.rb b/lib/fog/cloudstack/requests/compute/update_account.rb
index 2e8a238..aaebf72 100644
--- a/lib/fog/cloudstack/requests/compute/update_account.rb
+++ b/lib/fog/cloudstack/requests/compute/update_account.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates account information for the authenticated user.
+      class Real
+        # Updates account information for the authenticated user
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/updateAccount.html]
-        def update_account(options={})
-          options.merge!(
-            'command' => 'updateAccount'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateAccount.html]
+        def update_account(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateAccount') 
+          else
+            options.merge!('command' => 'updateAccount', 
+            'newname' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_auto_scale_policy.rb b/lib/fog/cloudstack/requests/compute/update_auto_scale_policy.rb
new file mode 100644
index 0000000..6702612
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_auto_scale_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates an existing autoscale policy.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateAutoScalePolicy.html]
+        def update_auto_scale_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateAutoScalePolicy') 
+          else
+            options.merge!('command' => 'updateAutoScalePolicy', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_group.rb b/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_group.rb
new file mode 100644
index 0000000..bb9f55d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates an existing autoscale vm group.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateAutoScaleVmGroup.html]
+        def update_auto_scale_vm_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateAutoScaleVmGroup') 
+          else
+            options.merge!('command' => 'updateAutoScaleVmGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_profile.rb b/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_profile.rb
new file mode 100644
index 0000000..6fe0426
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_auto_scale_vm_profile.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates an existing autoscale vm profile.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateAutoScaleVmProfile.html]
+        def update_auto_scale_vm_profile(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateAutoScaleVmProfile') 
+          else
+            options.merge!('command' => 'updateAutoScaleVmProfile', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_cloud_to_use_object_store.rb b/lib/fog/cloudstack/requests/compute/update_cloud_to_use_object_store.rb
new file mode 100644
index 0000000..8a5dcaa
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_cloud_to_use_object_store.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Migrate current NFS secondary storages to use object store.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateCloudToUseObjectStore.html]
+        def update_cloud_to_use_object_store(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateCloudToUseObjectStore') 
+          else
+            options.merge!('command' => 'updateCloudToUseObjectStore', 
+            'provider' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_cluster.rb b/lib/fog/cloudstack/requests/compute/update_cluster.rb
new file mode 100644
index 0000000..3390508
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_cluster.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates an existing cluster
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateCluster.html]
+        def update_cluster(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateCluster') 
+          else
+            options.merge!('command' => 'updateCluster', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_configuration.rb b/lib/fog/cloudstack/requests/compute/update_configuration.rb
new file mode 100644
index 0000000..64697de
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_configuration.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a configuration.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateConfiguration.html]
+        def update_configuration(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateConfiguration') 
+          else
+            options.merge!('command' => 'updateConfiguration', 
+            'name' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_default_nic_for_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/update_default_nic_for_virtual_machine.rb
new file mode 100644
index 0000000..f224094
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_default_nic_for_virtual_machine.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Changes the default NIC on a VM
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateDefaultNicForVirtualMachine.html]
+        def update_default_nic_for_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateDefaultNicForVirtualMachine') 
+          else
+            options.merge!('command' => 'updateDefaultNicForVirtualMachine', 
+            'nicid' => args[0], 
+            'virtualmachineid' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_disk_offering.rb b/lib/fog/cloudstack/requests/compute/update_disk_offering.rb
new file mode 100644
index 0000000..6a0bcf9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_disk_offering.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a disk offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateDiskOffering.html]
+        def update_disk_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateDiskOffering') 
+          else
+            options.merge!('command' => 'updateDiskOffering', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_domain.rb b/lib/fog/cloudstack/requests/compute/update_domain.rb
index d19039e..fce55f0 100644
--- a/lib/fog/cloudstack/requests/compute/update_domain.rb
+++ b/lib/fog/cloudstack/requests/compute/update_domain.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates a domain with a new name.
+      class Real
+        # Updates a domain with a new name
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/updateDomain.html]
-        def update_domain(options={})
-          options.merge!(
-            'command' => 'updateDomain'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateDomain.html]
+        def update_domain(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateDomain') 
+          else
+            options.merge!('command' => 'updateDomain', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_egress_firewall_rule.rb b/lib/fog/cloudstack/requests/compute/update_egress_firewall_rule.rb
new file mode 100644
index 0000000..011c2bd
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_egress_firewall_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates egress firewall rule 
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateEgressFirewallRule.html]
+        def update_egress_firewall_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateEgressFirewallRule') 
+          else
+            options.merge!('command' => 'updateEgressFirewallRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_firewall_rule.rb b/lib/fog/cloudstack/requests/compute/update_firewall_rule.rb
new file mode 100644
index 0000000..19880ae
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_firewall_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates firewall rule 
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateFirewallRule.html]
+        def update_firewall_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateFirewallRule') 
+          else
+            options.merge!('command' => 'updateFirewallRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_global_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/update_global_load_balancer_rule.rb
new file mode 100644
index 0000000..4bf98d0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_global_load_balancer_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # update global load balancer rules.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateGlobalLoadBalancerRule.html]
+        def update_global_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateGlobalLoadBalancerRule') 
+          else
+            options.merge!('command' => 'updateGlobalLoadBalancerRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_guest_os.rb b/lib/fog/cloudstack/requests/compute/update_guest_os.rb
new file mode 100644
index 0000000..440aac2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_guest_os.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates the information about Guest OS
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateGuestOs.html]
+        def update_guest_os(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateGuestOs') 
+          else
+            options.merge!('command' => 'updateGuestOs', 
+            'id' => args[0], 
+            'osdisplayname' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_guest_os_mapping.rb b/lib/fog/cloudstack/requests/compute/update_guest_os_mapping.rb
new file mode 100644
index 0000000..5c5ee57
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_guest_os_mapping.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates the information about Guest OS to Hypervisor specific name mapping
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateGuestOsMapping.html]
+        def update_guest_os_mapping(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateGuestOsMapping') 
+          else
+            options.merge!('command' => 'updateGuestOsMapping', 
+            'osnameforhypervisor' => args[0], 
+            'id' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_host.rb b/lib/fog/cloudstack/requests/compute/update_host.rb
new file mode 100644
index 0000000..c535386
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_host.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a host.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateHost.html]
+        def update_host(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateHost') 
+          else
+            options.merge!('command' => 'updateHost', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_host_password.rb b/lib/fog/cloudstack/requests/compute/update_host_password.rb
new file mode 100644
index 0000000..ad3aea0
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_host_password.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Update password of a host/pool on management server.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateHostPassword.html]
+        def update_host_password(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateHostPassword') 
+          else
+            options.merge!('command' => 'updateHostPassword', 
+            'username' => args[0], 
+            'password' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_hypervisor_capabilities.rb b/lib/fog/cloudstack/requests/compute/update_hypervisor_capabilities.rb
new file mode 100644
index 0000000..1273ed9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_hypervisor_capabilities.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a hypervisor capabilities.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateHypervisorCapabilities.html]
+        def update_hypervisor_capabilities(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateHypervisorCapabilities') 
+          else
+            options.merge!('command' => 'updateHypervisorCapabilities')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_instance_group.rb b/lib/fog/cloudstack/requests/compute/update_instance_group.rb
new file mode 100644
index 0000000..7a94463
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_instance_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a vm group
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateInstanceGroup.html]
+        def update_instance_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateInstanceGroup') 
+          else
+            options.merge!('command' => 'updateInstanceGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_ip_address.rb b/lib/fog/cloudstack/requests/compute/update_ip_address.rb
new file mode 100644
index 0000000..ab0611e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_ip_address.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates an ip address
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateIpAddress.html]
+        def update_ip_address(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateIpAddress') 
+          else
+            options.merge!('command' => 'updateIpAddress', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_iso.rb b/lib/fog/cloudstack/requests/compute/update_iso.rb
new file mode 100644
index 0000000..cc9dbbe
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_iso.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates an ISO file.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateIso.html]
+        def update_iso(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateIso') 
+          else
+            options.merge!('command' => 'updateIso', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_iso_permissions.rb b/lib/fog/cloudstack/requests/compute/update_iso_permissions.rb
new file mode 100644
index 0000000..11594fc
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_iso_permissions.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates iso permissions
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateIsoPermissions.html]
+        def update_iso_permissions(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateIsoPermissions') 
+          else
+            options.merge!('command' => 'updateIsoPermissions', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_lb_health_check_policy.rb b/lib/fog/cloudstack/requests/compute/update_lb_health_check_policy.rb
new file mode 100644
index 0000000..4efd1f2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_lb_health_check_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates LB HealthCheck policy
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateLBHealthCheckPolicy.html]
+        def update_lb_health_check_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateLBHealthCheckPolicy') 
+          else
+            options.merge!('command' => 'updateLBHealthCheckPolicy', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_lb_stickiness_policy.rb b/lib/fog/cloudstack/requests/compute/update_lb_stickiness_policy.rb
new file mode 100644
index 0000000..160b98d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_lb_stickiness_policy.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates LB Stickiness policy
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateLBStickinessPolicy.html]
+        def update_lb_stickiness_policy(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateLBStickinessPolicy') 
+          else
+            options.merge!('command' => 'updateLBStickinessPolicy', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_load_balancer.rb b/lib/fog/cloudstack/requests/compute/update_load_balancer.rb
new file mode 100644
index 0000000..1ee5059
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_load_balancer.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a Load Balancer
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateLoadBalancer.html]
+        def update_load_balancer(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateLoadBalancer') 
+          else
+            options.merge!('command' => 'updateLoadBalancer', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_load_balancer_rule.rb b/lib/fog/cloudstack/requests/compute/update_load_balancer_rule.rb
new file mode 100644
index 0000000..8bccc5c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_load_balancer_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates load balancer
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateLoadBalancerRule.html]
+        def update_load_balancer_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateLoadBalancerRule') 
+          else
+            options.merge!('command' => 'updateLoadBalancerRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_network.rb b/lib/fog/cloudstack/requests/compute/update_network.rb
new file mode 100644
index 0000000..0ae7ac7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_network.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateNetwork.html]
+        def update_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateNetwork') 
+          else
+            options.merge!('command' => 'updateNetwork', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_network_acl_item.rb b/lib/fog/cloudstack/requests/compute/update_network_acl_item.rb
new file mode 100644
index 0000000..5cd7553
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_network_acl_item.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates ACL Item with specified Id
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateNetworkACLItem.html]
+        def update_network_acl_item(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateNetworkACLItem') 
+          else
+            options.merge!('command' => 'updateNetworkACLItem', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_network_acl_list.rb b/lib/fog/cloudstack/requests/compute/update_network_acl_list.rb
new file mode 100644
index 0000000..c250781
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_network_acl_list.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates Network ACL list
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateNetworkACLList.html]
+        def update_network_acl_list(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateNetworkACLList') 
+          else
+            options.merge!('command' => 'updateNetworkACLList', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_network_offering.rb b/lib/fog/cloudstack/requests/compute/update_network_offering.rb
new file mode 100644
index 0000000..3792e1c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_network_offering.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a network offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateNetworkOffering.html]
+        def update_network_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateNetworkOffering') 
+          else
+            options.merge!('command' => 'updateNetworkOffering')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_network_service_provider.rb b/lib/fog/cloudstack/requests/compute/update_network_service_provider.rb
new file mode 100644
index 0000000..4ee136e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_network_service_provider.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a network serviceProvider of a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateNetworkServiceProvider.html]
+        def update_network_service_provider(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateNetworkServiceProvider') 
+          else
+            options.merge!('command' => 'updateNetworkServiceProvider', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_physical_network.rb b/lib/fog/cloudstack/requests/compute/update_physical_network.rb
new file mode 100644
index 0000000..d0c38d7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_physical_network.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updatePhysicalNetwork.html]
+        def update_physical_network(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updatePhysicalNetwork') 
+          else
+            options.merge!('command' => 'updatePhysicalNetwork', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_pod.rb b/lib/fog/cloudstack/requests/compute/update_pod.rb
new file mode 100644
index 0000000..c8aeaba
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_pod.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a Pod.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updatePod.html]
+        def update_pod(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updatePod') 
+          else
+            options.merge!('command' => 'updatePod', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_port_forwarding_rule.rb b/lib/fog/cloudstack/requests/compute/update_port_forwarding_rule.rb
new file mode 100644
index 0000000..5f692c7
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_port_forwarding_rule.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a port forwarding rule.  Only the private port and the virtual machine can be updated.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updatePortForwardingRule.html]
+        def update_port_forwarding_rule(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updatePortForwardingRule') 
+          else
+            options.merge!('command' => 'updatePortForwardingRule', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_project.rb b/lib/fog/cloudstack/requests/compute/update_project.rb
new file mode 100644
index 0000000..37b5533
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_project.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a project
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateProject.html]
+        def update_project(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateProject') 
+          else
+            options.merge!('command' => 'updateProject', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_project_invitation.rb b/lib/fog/cloudstack/requests/compute/update_project_invitation.rb
new file mode 100644
index 0000000..0715f3a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_project_invitation.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Accepts or declines project invitation
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateProjectInvitation.html]
+        def update_project_invitation(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateProjectInvitation') 
+          else
+            options.merge!('command' => 'updateProjectInvitation', 
+            'projectid' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_region.rb b/lib/fog/cloudstack/requests/compute/update_region.rb
new file mode 100644
index 0000000..00b551d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_region.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a region
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateRegion.html]
+        def update_region(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateRegion') 
+          else
+            options.merge!('command' => 'updateRegion', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_remote_access_vpn.rb b/lib/fog/cloudstack/requests/compute/update_remote_access_vpn.rb
new file mode 100644
index 0000000..3e47f29
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_remote_access_vpn.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates remote access vpn
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateRemoteAccessVpn.html]
+        def update_remote_access_vpn(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateRemoteAccessVpn') 
+          else
+            options.merge!('command' => 'updateRemoteAccessVpn', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_resource_count.rb b/lib/fog/cloudstack/requests/compute/update_resource_count.rb
index a7c4133..344db74 100644
--- a/lib/fog/cloudstack/requests/compute/update_resource_count.rb
+++ b/lib/fog/cloudstack/requests/compute/update_resource_count.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates a user account.
+      class Real
+        # Recalculate and update resource count for an account or domain.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/updateResourceCount.html]
-        def update_resource_count(options={})
-          options.merge!(
-            'command' => 'updateResourceCount'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateResourceCount.html]
+        def update_resource_count(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateResourceCount') 
+          else
+            options.merge!('command' => 'updateResourceCount', 
+            'domainid' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_resource_limit.rb b/lib/fog/cloudstack/requests/compute/update_resource_limit.rb
new file mode 100644
index 0000000..129a84c
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_resource_limit.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates resource limits for an account or domain.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateResourceLimit.html]
+        def update_resource_limit(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateResourceLimit') 
+          else
+            options.merge!('command' => 'updateResourceLimit', 
+            'resourcetype' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_service_offering.rb b/lib/fog/cloudstack/requests/compute/update_service_offering.rb
new file mode 100644
index 0000000..478c39f
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_service_offering.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a service offering.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateServiceOffering.html]
+        def update_service_offering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateServiceOffering') 
+          else
+            options.merge!('command' => 'updateServiceOffering', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_storage_network_ip_range.rb b/lib/fog/cloudstack/requests/compute/update_storage_network_ip_range.rb
new file mode 100644
index 0000000..2e74b4d
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_storage_network_ip_range.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Update a Storage network IP range, only allowed when no IPs in this range have been allocated.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateStorageNetworkIpRange.html]
+        def update_storage_network_ip_range(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateStorageNetworkIpRange') 
+          else
+            options.merge!('command' => 'updateStorageNetworkIpRange', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_storage_pool.rb b/lib/fog/cloudstack/requests/compute/update_storage_pool.rb
new file mode 100644
index 0000000..b878eca
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_storage_pool.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a storage pool.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateStoragePool.html]
+        def update_storage_pool(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateStoragePool') 
+          else
+            options.merge!('command' => 'updateStoragePool', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_template.rb b/lib/fog/cloudstack/requests/compute/update_template.rb
new file mode 100644
index 0000000..3aa6b8e
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_template.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates attributes of a template.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateTemplate.html]
+        def update_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateTemplate') 
+          else
+            options.merge!('command' => 'updateTemplate', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_template_permissions.rb b/lib/fog/cloudstack/requests/compute/update_template_permissions.rb
new file mode 100644
index 0000000..7009099
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_template_permissions.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a template visibility permissions. A public template is visible to all accounts within the same domain. A private template is visible only to the owner of the template. A priviledged template is a private template with account permissions added. Only accounts specified under the template permissions are visible to them.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateTemplatePermissions.html]
+        def update_template_permissions(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateTemplatePermissions') 
+          else
+            options.merge!('command' => 'updateTemplatePermissions', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_traffic_type.rb b/lib/fog/cloudstack/requests/compute/update_traffic_type.rb
new file mode 100644
index 0000000..edc984a
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_traffic_type.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates traffic type of a physical network
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateTrafficType.html]
+        def update_traffic_type(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateTrafficType') 
+          else
+            options.merge!('command' => 'updateTrafficType', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_user.rb b/lib/fog/cloudstack/requests/compute/update_user.rb
index 87b755f..ea56106 100644
--- a/lib/fog/cloudstack/requests/compute/update_user.rb
+++ b/lib/fog/cloudstack/requests/compute/update_user.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates a user account.
+      class Real
+        # Updates a user account
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/updateUser.html]
-        def update_user(options={})
-          options.merge!(
-            'command' => 'updateUser'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateUser.html]
+        def update_user(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateUser') 
+          else
+            options.merge!('command' => 'updateUser', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb b/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb
index 0e85f82..458e1cb 100644
--- a/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb
+++ b/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb
@@ -1,20 +1,25 @@
 module Fog
   module Compute
     class Cloudstack
-      class Real
 
-        # Updates account information for the authenticated user.
+      class Real
+        # Updates properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call.
         #
-        # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/updateAccount.html]
-        def update_virtual_machine(options={})
-          options.merge!(
-            'command' => 'updateVirtualMachine'
-          )
-
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVirtualMachine.html]
+        def update_virtual_machine(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVirtualMachine') 
+          else
+            options.merge!('command' => 'updateVirtualMachine', 
+            'id' => args[0])
+          end
           request(options)
         end
-
       end
+
     end
   end
 end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_vm_affinity_group.rb b/lib/fog/cloudstack/requests/compute/update_vm_affinity_group.rb
new file mode 100644
index 0000000..67b29a3
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_vm_affinity_group.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVMAffinityGroup.html]
+        def update_vm_affinity_group(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVMAffinityGroup') 
+          else
+            options.merge!('command' => 'updateVMAffinityGroup', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_volume.rb b/lib/fog/cloudstack/requests/compute/update_volume.rb
new file mode 100644
index 0000000..33814a2
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_volume.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates the volume.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVolume.html]
+        def update_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVolume') 
+          else
+            options.merge!('command' => 'updateVolume')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_vpc.rb b/lib/fog/cloudstack/requests/compute/update_vpc.rb
new file mode 100644
index 0000000..6b3429b
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_vpc.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a VPC
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVPC.html]
+        def update_vpc(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVPC') 
+          else
+            options.merge!('command' => 'updateVPC', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_vpcoffering.rb b/lib/fog/cloudstack/requests/compute/update_vpcoffering.rb
new file mode 100644
index 0000000..7f7c754
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_vpcoffering.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates VPC offering
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVPCOffering.html]
+        def update_vpcoffering(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVPCOffering') 
+          else
+            options.merge!('command' => 'updateVPCOffering', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_vpn_connection.rb b/lib/fog/cloudstack/requests/compute/update_vpn_connection.rb
new file mode 100644
index 0000000..1de2235
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_vpn_connection.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates site to site vpn connection
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVpnConnection.html]
+        def update_vpn_connection(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVpnConnection') 
+          else
+            options.merge!('command' => 'updateVpnConnection', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_vpn_customer_gateway.rb b/lib/fog/cloudstack/requests/compute/update_vpn_customer_gateway.rb
new file mode 100644
index 0000000..48e0587
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_vpn_customer_gateway.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Update site to site vpn customer gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVpnCustomerGateway.html]
+        def update_vpn_customer_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVpnCustomerGateway') 
+          else
+            options.merge!('command' => 'updateVpnCustomerGateway', 
+            'id' => args[0], 
+            'gateway' => args[1], 
+            'cidrlist' => args[2], 
+            'ipsecpsk' => args[3], 
+            'esppolicy' => args[4], 
+            'ikepolicy' => args[5])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_vpn_gateway.rb b/lib/fog/cloudstack/requests/compute/update_vpn_gateway.rb
new file mode 100644
index 0000000..9841e97
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_vpn_gateway.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates site to site vpn local gateway
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateVpnGateway.html]
+        def update_vpn_gateway(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateVpnGateway') 
+          else
+            options.merge!('command' => 'updateVpnGateway', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/update_zone.rb b/lib/fog/cloudstack/requests/compute/update_zone.rb
new file mode 100644
index 0000000..27e7dcf
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/update_zone.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Updates a Zone.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/updateZone.html]
+        def update_zone(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'updateZone') 
+          else
+            options.merge!('command' => 'updateZone', 
+            'id' => args[0])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/upgrade_router_template.rb b/lib/fog/cloudstack/requests/compute/upgrade_router_template.rb
new file mode 100644
index 0000000..08b0352
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/upgrade_router_template.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Upgrades router to use newer template
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/upgradeRouterTemplate.html]
+        def upgrade_router_template(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'upgradeRouterTemplate') 
+          else
+            options.merge!('command' => 'upgradeRouterTemplate')
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/upload_custom_certificate.rb b/lib/fog/cloudstack/requests/compute/upload_custom_certificate.rb
new file mode 100644
index 0000000..dfcf585
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/upload_custom_certificate.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Uploads a custom certificate for the console proxy VMs to use for SSL. Can be used to upload a single certificate signed by a known CA. Can also be used, through multiple calls, to upload a chain of certificates from CA to the custom certificate itself.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/uploadCustomCertificate.html]
+        def upload_custom_certificate(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'uploadCustomCertificate') 
+          else
+            options.merge!('command' => 'uploadCustomCertificate', 
+            'domainsuffix' => args[0], 
+            'certificate' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/upload_ssl_cert.rb b/lib/fog/cloudstack/requests/compute/upload_ssl_cert.rb
new file mode 100644
index 0000000..e0e9c80
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/upload_ssl_cert.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Upload a certificate to cloudstack
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/uploadSslCert.html]
+        def upload_ssl_cert(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'uploadSslCert') 
+          else
+            options.merge!('command' => 'uploadSslCert', 
+            'certificate' => args[0], 
+            'privatekey' => args[1])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/cloudstack/requests/compute/upload_volume.rb b/lib/fog/cloudstack/requests/compute/upload_volume.rb
new file mode 100644
index 0000000..50f55b9
--- /dev/null
+++ b/lib/fog/cloudstack/requests/compute/upload_volume.rb
@@ -0,0 +1,28 @@
+module Fog
+  module Compute
+    class Cloudstack
+
+      class Real
+        # Uploads a data disk.
+        #
+        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.4/root_admin/uploadVolume.html]
+        def upload_volume(*args)
+          options = {}
+          if args[0].is_a? Hash
+            options = args[0]
+            options.merge!('command' => 'uploadVolume') 
+          else
+            options.merge!('command' => 'uploadVolume', 
+            'url' => args[0], 
+            'format' => args[1], 
+            'zoneid' => args[2], 
+            'name' => args[3])
+          end
+          request(options)
+        end
+      end
+
+    end
+  end
+end
+
diff --git a/lib/fog/core/deprecated/connection.rb b/lib/fog/core/deprecated/connection.rb
index 00246e2..46400f2 100644
--- a/lib/fog/core/deprecated/connection.rb
+++ b/lib/fog/core/deprecated/connection.rb
@@ -1,7 +1,6 @@
 require "fog/xml"
 
 module Fog
-
   # @deprecated Use {Fog::Core::Connection} or {XML::SAXParserConnection} if you
   #   require the response body to be parsed.
   #
diff --git a/lib/fog/core/deprecated_connection_accessors.rb b/lib/fog/core/deprecated_connection_accessors.rb
deleted file mode 100644
index 4698b71..0000000
--- a/lib/fog/core/deprecated_connection_accessors.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-module Fog
-  module Core
-    # This module covers the shared code used by models and collections
-    # that deprecates the confusing usage of 'connection' which was
-    # actually intended to be an instance of Fog::Service
-    module DeprecatedConnectionAccessors
-      # Sets the Service but using the wrong name!
-      #
-      # @deprecated The connection name was wrong and confusing since it refered to the service
-      # @param [Fog::Service] service An instance of a Fog service this collection is for
-      #
-      def connection=(service)
-        Fog::Logger.deprecation("#connection= is deprecated, pass :service in at creation [light_black](#{caller.first})[/]")
-        @service = service
-      end
-
-      # Returns the Service the collection is part of
-      #
-      # @deprecated #connection is deprecated due to confusing name, use #service instead
-      # @return [Fog::Service]
-      #
-      def connection
-        Fog::Logger.deprecation("#connection is deprecated, use #service instead [light_black](#{caller.first})[/]")
-        @service
-      end
-
-      # Prepares the value of the service based on the passed attributes
-      #
-      # @note Intended for use where the service is required before the normal
-      #   initializer runs. The logic is run there with deprecation warnings.
-      #
-      # @param [Hash] attributes
-      # @return [Fog::Service]
-      #
-      def prepare_service_value(attributes)
-        @service = attributes[:service] || attributes[:connection]
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/core/parser.rb b/lib/fog/core/parser.rb
index e3fa57d..daf0440 100644
--- a/lib/fog/core/parser.rb
+++ b/lib/fog/core/parser.rb
@@ -3,7 +3,6 @@ require "nokogiri"
 module Fog
   module Parsers
     class Base < Nokogiri::XML::SAX::Document
-
       attr_reader :response
 
       def initialize
@@ -11,7 +10,7 @@ module Fog
       end
 
       def attr_value(name, attrs)
-        (entry = attrs.detect {|a, v| a == name }) && entry.last
+        (entry = attrs.find {|a, v| a == name }) && entry.last
       end
 
       def reset
@@ -43,14 +42,12 @@ module Fog
       def value
         @value && @value.dup
       end
-
     end
   end
 end
 
 module Fog
   class ToHashDocument < Nokogiri::XML::SAX::Document
-
     def initialize
       @stack = []
     end
@@ -111,6 +108,5 @@ module Fog
         @stack.push(data)
       end
     end
-
   end
 end
diff --git a/lib/fog/digitalocean/compute.rb b/lib/fog/digitalocean/compute.rb
index a74ee69..5f19acc 100644
--- a/lib/fog/digitalocean/compute.rb
+++ b/lib/fog/digitalocean/compute.rb
@@ -3,7 +3,6 @@ require 'fog/digitalocean/core'
 module Fog
   module Compute
     class DigitalOcean < Fog::Service
-
       requires     :digitalocean_api_key
       requires     :digitalocean_client_id
 
@@ -42,7 +41,6 @@ module Fog
       # request :digitalocean_resize
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -67,11 +65,9 @@ module Fog
         def reset_data
           self.class.data.delete(@digitalocean_api_key)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @digitalocean_api_key   = options[:digitalocean_api_key]
           @digitalocean_client_id = options[:digitalocean_client_id]
@@ -114,7 +110,7 @@ module Fog
 
         def retry_event_lock
           count   = 0
-          reponse = nil
+          response = nil
           while count < 5
             response = yield
 
@@ -128,7 +124,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/core.rb b/lib/fog/digitalocean/core.rb
index 082f73e..ae91538 100644
--- a/lib/fog/digitalocean/core.rb
+++ b/lib/fog/digitalocean/core.rb
@@ -7,4 +7,3 @@ module Fog
     service(:compute, 'Compute')
   end
 end
-
diff --git a/lib/fog/digitalocean/models/compute/flavor.rb b/lib/fog/digitalocean/models/compute/flavor.rb
index 70a6e57..b2b4735 100644
--- a/lib/fog/digitalocean/models/compute/flavor.rb
+++ b/lib/fog/digitalocean/models/compute/flavor.rb
@@ -4,10 +4,8 @@ module Fog
   module Compute
     class DigitalOcean
       class Flavor < Fog::Model
-
         identity  :id
         attribute :name
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/models/compute/flavors.rb b/lib/fog/digitalocean/models/compute/flavors.rb
index 3332215..c902c0a 100644
--- a/lib/fog/digitalocean/models/compute/flavors.rb
+++ b/lib/fog/digitalocean/models/compute/flavors.rb
@@ -4,7 +4,6 @@ require 'fog/digitalocean/models/compute/flavor'
 module Fog
   module Compute
     class DigitalOcean
-
       class Flavors < Fog::Collection
         model Fog::Compute::DigitalOcean::Flavor
 
@@ -17,9 +16,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/digitalocean/models/compute/image.rb b/lib/fog/digitalocean/models/compute/image.rb
index a6f9fd6..c643281 100644
--- a/lib/fog/digitalocean/models/compute/image.rb
+++ b/lib/fog/digitalocean/models/compute/image.rb
@@ -4,11 +4,9 @@ module Fog
   module Compute
     class DigitalOcean
       class Image < Fog::Model
-
         identity  :id
         attribute :name
         attribute :distribution
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/models/compute/images.rb b/lib/fog/digitalocean/models/compute/images.rb
index 1e08da3..8c81b55 100644
--- a/lib/fog/digitalocean/models/compute/images.rb
+++ b/lib/fog/digitalocean/models/compute/images.rb
@@ -4,7 +4,6 @@ require 'fog/digitalocean/models/compute/image'
 module Fog
   module Compute
     class DigitalOcean
-
       class Images < Fog::Collection
         model Fog::Compute::DigitalOcean::Image
 
@@ -17,9 +16,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/digitalocean/models/compute/region.rb b/lib/fog/digitalocean/models/compute/region.rb
index b5af26b..0a4da24 100644
--- a/lib/fog/digitalocean/models/compute/region.rb
+++ b/lib/fog/digitalocean/models/compute/region.rb
@@ -4,10 +4,8 @@ module Fog
   module Compute
     class DigitalOcean
       class Region < Fog::Model
-
         identity  :id
         attribute :name
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/models/compute/regions.rb b/lib/fog/digitalocean/models/compute/regions.rb
index d5348ac..6c5a195 100644
--- a/lib/fog/digitalocean/models/compute/regions.rb
+++ b/lib/fog/digitalocean/models/compute/regions.rb
@@ -4,7 +4,6 @@ require 'fog/digitalocean/models/compute/region'
 module Fog
   module Compute
     class DigitalOcean
-
       class Regions < Fog::Collection
         model Fog::Compute::DigitalOcean::Region
 
@@ -17,9 +16,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/digitalocean/models/compute/server.rb b/lib/fog/digitalocean/models/compute/server.rb
index 226337f..abe4e1a 100644
--- a/lib/fog/digitalocean/models/compute/server.rb
+++ b/lib/fog/digitalocean/models/compute/server.rb
@@ -3,11 +3,9 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class DigitalOcean
-
       # A DigitalOcean Droplet
       #
       class Server < Fog::Compute::Server
-
         identity  :id
         attribute :name
         attribute :state, :aliases => 'status'
@@ -176,9 +174,7 @@ module Fog
           msg = 'DigitalOcean servers do not support updates'
           raise NotImplementedError.new(msg)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/digitalocean/models/compute/servers.rb b/lib/fog/digitalocean/models/compute/servers.rb
index e308159..1ddc220 100644
--- a/lib/fog/digitalocean/models/compute/servers.rb
+++ b/lib/fog/digitalocean/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/digitalocean/models/compute/server'
 module Fog
   module Compute
     class DigitalOcean
-
       class Servers < Fog::Collection
-
         model Fog::Compute::DigitalOcean::Server
 
         def all(filters = {})
@@ -21,7 +19,7 @@ module Fog
 
           credential = Fog.respond_to?(:credential) && Fog.credential || :default
           name       = "fog_#{credential}"
-          ssh_key    = service.ssh_keys.detect { |key| key.name == name }
+          ssh_key    = service.ssh_keys.find { |key| key.name == name }
           if ssh_key.nil?
             ssh_key = service.ssh_keys.create(
               :name        => name,
@@ -61,9 +59,7 @@ module Fog
             raise ArgumentError, "either #{name}_key or #{name}_key_path is required to configure the server"
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/digitalocean/models/compute/ssh_key.rb b/lib/fog/digitalocean/models/compute/ssh_key.rb
index a698bb7..4ee1cef 100644
--- a/lib/fog/digitalocean/models/compute/ssh_key.rb
+++ b/lib/fog/digitalocean/models/compute/ssh_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class SshKey < Fog::Model
-
         identity :id
 
         attribute :name
@@ -21,7 +20,6 @@ module Fog
           service.destroy_ssh_key id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/models/compute/ssh_keys.rb b/lib/fog/digitalocean/models/compute/ssh_keys.rb
index 8b2c0ca..0411a78 100644
--- a/lib/fog/digitalocean/models/compute/ssh_keys.rb
+++ b/lib/fog/digitalocean/models/compute/ssh_keys.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class DigitalOcean
       class SshKeys < Fog::Collection
-
         identity :href
 
         model Fog::Compute::DigitalOcean::SshKey
diff --git a/lib/fog/digitalocean/requests/compute/create_server.rb b/lib/fog/digitalocean/requests/compute/create_server.rb
index dca2312..1fca442 100644
--- a/lib/fog/digitalocean/requests/compute/create_server.rb
+++ b/lib/fog/digitalocean/requests/compute/create_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         #
         # FIXME: missing ssh keys support
         #
@@ -33,11 +32,9 @@ module Fog
             :query    => query_hash
           )
         end
-
       end
 
       class Mock
-
         def create_server( name,
                            size_id,
                            image_id,
@@ -46,6 +43,11 @@ module Fog
           response = Excon::Response.new
           response.status = 200
 
+          # New York 2 (region id 4) is currently the only region that supports
+          # private networking.  The Digital Ocean IP will return a null
+          # private_ip_address for any other region
+          has_private_ip = !!options[:private_networking] && (region_id == 4)
+
           mock_data = {
             "id" => Fog::Mock.random_numbers(1).to_i,
             "event_id" => Fog::Mock.random_numbers(2).to_i,
@@ -54,6 +56,7 @@ module Fog
             "image_id" => image_id,
             "region_id" => region_id,
             "ip_address" => "127.0.0.1",
+            "private_ip_address" => has_private_ip ? "10.0.0.1" : nil,
             "status" => 'active',
             "created_at" => Time.now.strftime("%FT%TZ")
           }
@@ -66,7 +69,6 @@ module Fog
           self.data[:servers] << mock_data
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/create_ssh_key.rb b/lib/fog/digitalocean/requests/compute/create_ssh_key.rb
index b64b5e7..328d5f9 100644
--- a/lib/fog/digitalocean/requests/compute/create_ssh_key.rb
+++ b/lib/fog/digitalocean/requests/compute/create_ssh_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def create_ssh_key( name, pub_key )
           request(
             :expects  => [200],
@@ -11,11 +10,9 @@ module Fog
             :query    => { 'name' => name, 'ssh_pub_key' => pub_key }
           )
         end
-
       end
 
       class Mock
-
         def create_ssh_key( name, pub_key )
           response = Excon::Response.new
           response.status = 200
@@ -31,7 +28,6 @@ module Fog
           self.data[:ssh_keys] << mock_data
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/destroy_server.rb b/lib/fog/digitalocean/requests/compute/destroy_server.rb
index c86af68..c1a9b75 100644
--- a/lib/fog/digitalocean/requests/compute/destroy_server.rb
+++ b/lib/fog/digitalocean/requests/compute/destroy_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         #
         # FIXME: missing ssh keys support
         #
@@ -15,11 +14,9 @@ module Fog
             :query    => {:scrub_data => '1' }
           )
         end
-
       end
 
       class Mock
-
         def destroy_server( id )
           response = Excon::Response.new
           response.status = 200
@@ -32,7 +29,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/destroy_ssh_key.rb b/lib/fog/digitalocean/requests/compute/destroy_ssh_key.rb
index 1819f70..936c041 100644
--- a/lib/fog/digitalocean/requests/compute/destroy_ssh_key.rb
+++ b/lib/fog/digitalocean/requests/compute/destroy_ssh_key.rb
@@ -2,11 +2,10 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         #
         # Delete a SSH public key from your account
         #
-        # @see https://www.digitalocean.com/api#ssh_keys
+        # @see https://developers.digitalocean.com/ssh-keys
         #
         def destroy_ssh_key(id)
           request(
@@ -15,11 +14,9 @@ module Fog
             :path     => "ssh_keys/#{id}/destroy"
           )
         end
-
       end
 
       class Mock
-
         def destroy_ssh_key(id)
           response = Excon::Response.new
           response.status = 200
@@ -30,7 +27,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/get_server_details.rb b/lib/fog/digitalocean/requests/compute/get_server_details.rb
index baad87a..062fde7 100644
--- a/lib/fog/digitalocean/requests/compute/get_server_details.rb
+++ b/lib/fog/digitalocean/requests/compute/get_server_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def get_server_details(server_id)
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => "droplets/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_server_details(server_id)
           response = Excon::Response.new
           response.status = 200
@@ -28,7 +25,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/get_ssh_key.rb b/lib/fog/digitalocean/requests/compute/get_ssh_key.rb
index e88b211..e61c5ba 100644
--- a/lib/fog/digitalocean/requests/compute/get_ssh_key.rb
+++ b/lib/fog/digitalocean/requests/compute/get_ssh_key.rb
@@ -2,12 +2,11 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         #
         # This method shows a specific public SSH key in your account
         # that can be added to a droplet.
         #
-        # @see https://www.digitalocean.com/api#ssh_keys
+        # @see https://developers.digitalocean.com/ssh-keys
         #
         def get_ssh_key(id)
           request(
@@ -16,23 +15,20 @@ module Fog
             :path     => "ssh_keys/#{id}"
           )
         end
-
       end
 
       class Mock
-
         def get_ssh_key(id)
           response = Excon::Response.new
           response.status = 200
           response.body = {
             "status" => "OK",
             # key listing does not return ssh_pub_key
-            # https://www.digitalocean.com/api#ssh_keys
+            # https://developers.digitalocean.com/ssh-keys
             "ssh_key"  => self.data[:ssh_keys].find { |k| k['id'] == id }
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/list_flavors.rb b/lib/fog/digitalocean/requests/compute/list_flavors.rb
index 4ccc9ff..0a73d3a 100644
--- a/lib/fog/digitalocean/requests/compute/list_flavors.rb
+++ b/lib/fog/digitalocean/requests/compute/list_flavors.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def list_flavors(options = {})
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'sizes'
           )
         end
-
       end
 
       class Mock
-
         def list_flavors
           response = Excon::Response.new
           response.status = 200
@@ -31,7 +28,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/list_images.rb b/lib/fog/digitalocean/requests/compute/list_images.rb
index 771e886..01a2553 100644
--- a/lib/fog/digitalocean/requests/compute/list_images.rb
+++ b/lib/fog/digitalocean/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def list_images(options = {})
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'images'
           )
         end
-
       end
 
       class Mock
-
         def list_images
           response = Excon::Response.new
           response.status = 200
@@ -42,7 +39,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/list_regions.rb b/lib/fog/digitalocean/requests/compute/list_regions.rb
index cc13faf..d7631f4 100644
--- a/lib/fog/digitalocean/requests/compute/list_regions.rb
+++ b/lib/fog/digitalocean/requests/compute/list_regions.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def list_regions(options = {})
           request(
             :expects  => [200],
@@ -10,24 +9,25 @@ module Fog
             :path     => 'regions'
           )
         end
-
       end
 
       class Mock
-
         def list_regions
           response = Excon::Response.new
           response.status = 200
           response.body = {
             "status" => "OK",
             "regions"  => [
-              {"id" => 1,"name" => "New York 1"},
-              {"id" => 2,"name" => "Amsterdam 1"}
+              { "id" => 1, "name" => "New York 1" },
+              { "id" => 2, "name" => "Amsterdam 1" },
+              { "id" => 3, "name" => "San Francisco 1" },
+              { "id" => 4, "name" => "New York 2" },
+              { "id" => 5, "name" => "Amsterdam 2" },
+              { "id" => 6, "name" => "Singapore 1" }
             ]
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/list_servers.rb b/lib/fog/digitalocean/requests/compute/list_servers.rb
index 6062b6f..07f3c9b 100644
--- a/lib/fog/digitalocean/requests/compute/list_servers.rb
+++ b/lib/fog/digitalocean/requests/compute/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def list_servers(options = {})
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'droplets'
           )
         end
-
       end
 
       class Mock
-
         def list_servers
           response = Excon::Response.new
           response.status = 200
@@ -24,7 +21,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/list_ssh_keys.rb b/lib/fog/digitalocean/requests/compute/list_ssh_keys.rb
index 2887643..446b9bd 100644
--- a/lib/fog/digitalocean/requests/compute/list_ssh_keys.rb
+++ b/lib/fog/digitalocean/requests/compute/list_ssh_keys.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def list_ssh_keys(options = {})
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'ssh_keys'
           )
         end
-
       end
 
       class Mock
-
         def list_ssh_keys
           response = Excon::Response.new
           response.status = 200
@@ -24,7 +21,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/power_cycle_server.rb b/lib/fog/digitalocean/requests/compute/power_cycle_server.rb
index 62d9fc9..720118e 100644
--- a/lib/fog/digitalocean/requests/compute/power_cycle_server.rb
+++ b/lib/fog/digitalocean/requests/compute/power_cycle_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def power_cycle_server( id )
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => "droplets/#{id}/power_cycle"
           )
         end
-
       end
 
       class Mock
-
         def power_cycle_server( id )
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +23,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/power_off_server.rb b/lib/fog/digitalocean/requests/compute/power_off_server.rb
index ac096eb..b48dd7c 100644
--- a/lib/fog/digitalocean/requests/compute/power_off_server.rb
+++ b/lib/fog/digitalocean/requests/compute/power_off_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def power_off_server( id )
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => "droplets/#{id}/power_off"
           )
         end
-
       end
 
       class Mock
-
         def power_off_server( id )
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +23,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/power_on_server.rb b/lib/fog/digitalocean/requests/compute/power_on_server.rb
index 03b1457..cd4f0a7 100644
--- a/lib/fog/digitalocean/requests/compute/power_on_server.rb
+++ b/lib/fog/digitalocean/requests/compute/power_on_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def power_on_server( id )
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => "droplets/#{id}/power_on"
           )
         end
-
       end
 
       class Mock
-
         def power_on_server( id )
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +23,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/reboot_server.rb b/lib/fog/digitalocean/requests/compute/reboot_server.rb
index 0e61f98..e56ed28 100644
--- a/lib/fog/digitalocean/requests/compute/reboot_server.rb
+++ b/lib/fog/digitalocean/requests/compute/reboot_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def reboot_server( id )
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => "droplets/#{id}/reboot"
           )
         end
-
       end
 
       class Mock
-
         def reboot_server( id )
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +23,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/digitalocean/requests/compute/shutdown_server.rb b/lib/fog/digitalocean/requests/compute/shutdown_server.rb
index d108f2d..d3bd076 100644
--- a/lib/fog/digitalocean/requests/compute/shutdown_server.rb
+++ b/lib/fog/digitalocean/requests/compute/shutdown_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class DigitalOcean
       class Real
-
         def shutdown_server( id )
           request(
             :expects  => [200],
@@ -10,11 +9,9 @@ module Fog
             :path     => "droplets/#{id}/shutdown"
           )
         end
-
       end
 
       class Mock
-
         def shutdown_server( id )
           response = Excon::Response.new
           response.status = 200
@@ -29,7 +26,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsimple/core.rb b/lib/fog/dnsimple/core.rb
index 148cda5..6f9d067 100644
--- a/lib/fog/dnsimple/core.rb
+++ b/lib/fog/dnsimple/core.rb
@@ -3,10 +3,8 @@ require 'fog/json'
 
 module Fog
   module DNSimple
-
     extend Fog::Provider
 
     service(:dns, 'DNS')
-
   end
 end
diff --git a/lib/fog/dnsimple/dns.rb b/lib/fog/dnsimple/dns.rb
index cd53c7b..81120f0 100644
--- a/lib/fog/dnsimple/dns.rb
+++ b/lib/fog/dnsimple/dns.rb
@@ -3,7 +3,6 @@ require 'fog/dnsimple/core'
 module Fog
   module DNS
     class DNSimple < Fog::Service
-
       recognizes :dnsimple_email, :dnsimple_password, :dnsimple_token, :dnsimple_domain, :dnsimple_url, :host, :path, :port, :scheme, :persistent
 
       model_path 'fog/dnsimple/models/dns'
@@ -24,7 +23,6 @@ module Fog
       request :get_record
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -52,11 +50,9 @@ module Fog
         def reset_data
           self.class.data.delete(@dnsimple_email)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @dnsimple_email = options[:dnsimple_email]
           @dnsimple_password  = options[:dnsimple_password]
diff --git a/lib/fog/dnsimple/models/dns/record.rb b/lib/fog/dnsimple/models/dns/record.rb
index 65d7b61..779e68d 100644
--- a/lib/fog/dnsimple/models/dns/record.rb
+++ b/lib/fog/dnsimple/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class DNSimple
-
       class Record < Fog::Model
         extend Fog::Deprecation
         deprecate :ip, :value
@@ -58,9 +57,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/models/dns/records.rb b/lib/fog/dnsimple/models/dns/records.rb
index b49c258..496c7c5 100644
--- a/lib/fog/dnsimple/models/dns/records.rb
+++ b/lib/fog/dnsimple/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/dnsimple/models/dns/record'
 module Fog
   module DNS
     class DNSimple
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::DNSimple::Record
@@ -30,9 +28,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/models/dns/zone.rb b/lib/fog/dnsimple/models/dns/zone.rb
index 32dd187..101dc96 100644
--- a/lib/fog/dnsimple/models/dns/zone.rb
+++ b/lib/fog/dnsimple/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/dnsimple/models/dns/records'
 module Fog
   module DNS
     class DNSimple
-
       class Zone < Fog::Model
-
         identity :id
 
         attribute :domain,     :aliases => 'name'
@@ -42,9 +40,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/models/dns/zones.rb b/lib/fog/dnsimple/models/dns/zones.rb
index 1a48866..c3b4937 100644
--- a/lib/fog/dnsimple/models/dns/zones.rb
+++ b/lib/fog/dnsimple/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/dnsimple/models/dns/zone'
 module Fog
   module DNS
     class DNSimple
-
       class Zones < Fog::Collection
-
         model Fog::DNS::DNSimple::Zone
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/requests/dns/create_domain.rb b/lib/fog/dnsimple/requests/dns/create_domain.rb
index 558e2f6..4311e6a 100644
--- a/lib/fog/dnsimple/requests/dns/create_domain.rb
+++ b/lib/fog/dnsimple/requests/dns/create_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Create a single domain in DNSimple in your account.
         #
         # ==== Parameters
@@ -26,11 +25,9 @@ module Fog
             :path     => "/domains"
           )
         end
-
       end
 
       class Mock
-
         def create_domain(name)
           body = {
             "domain" =>  {
@@ -59,9 +56,7 @@ module Fog
           response.body = body
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/requests/dns/create_record.rb b/lib/fog/dnsimple/requests/dns/create_record.rb
index 1947c11..ea0e18c 100644
--- a/lib/fog/dnsimple/requests/dns/create_record.rb
+++ b/lib/fog/dnsimple/requests/dns/create_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Create a new host in the specified zone
         #
         # ==== Parameters
@@ -36,11 +35,9 @@ module Fog
             :path     => "/domains/#{domain}/records"
           )
         end
-
       end
 
       class Mock
-
         def create_record(domain, name, type, content, options = {})
           body = {
             "record" => {
@@ -64,9 +61,7 @@ module Fog
           response.body = body
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/requests/dns/delete_domain.rb b/lib/fog/dnsimple/requests/dns/delete_domain.rb
index 1bb2869..ab0fce6 100644
--- a/lib/fog/dnsimple/requests/dns/delete_domain.rb
+++ b/lib/fog/dnsimple/requests/dns/delete_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Delete the given domain from your account. You may use
         # either the domain ID or the domain name.
         #
@@ -19,11 +18,9 @@ module Fog
             :path     => "/domains/#{domain}"
           )
         end
-
       end
 
       class Mock
-
         def delete_domain(name)
           self.data[:records].delete name
           self.data[:domains].reject! { |domain| domain["domain"]["name"] == name }
@@ -32,7 +29,6 @@ module Fog
           response.status = 200
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsimple/requests/dns/delete_record.rb b/lib/fog/dnsimple/requests/dns/delete_record.rb
index 68f1c66..10ad196 100644
--- a/lib/fog/dnsimple/requests/dns/delete_record.rb
+++ b/lib/fog/dnsimple/requests/dns/delete_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Delete the record with the given ID for the given domain.
         #
         # ==== Parameters
@@ -15,11 +14,9 @@ module Fog
             :path     => "/domains/#{domain}/records/#{record_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_record(domain, record_id)
           self.data[:records][domain].reject! { |record| record["record"]["id"] == record_id }
 
@@ -27,9 +24,7 @@ module Fog
           response.status = 200
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/requests/dns/get_domain.rb b/lib/fog/dnsimple/requests/dns/get_domain.rb
index e922e8b..6b2bf61 100644
--- a/lib/fog/dnsimple/requests/dns/get_domain.rb
+++ b/lib/fog/dnsimple/requests/dns/get_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Get the details for a specific domain in your account. You
         # may pass either the domain numeric ID or the domain name
         # itself.
@@ -21,13 +20,11 @@ module Fog
             :path     => "/domains/#{domain}"
           )
         end
-
       end
 
       class Mock
-
         def get_domain(id)
-          domain = self.data[:domains].detect do |domain|
+          domain = self.data[:domains].find do |domain|
             domain["domain"]["id"] == id || domain["domain"]["name"] == id
           end
 
@@ -36,7 +33,6 @@ module Fog
           response.body = domain
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsimple/requests/dns/get_record.rb b/lib/fog/dnsimple/requests/dns/get_record.rb
index 83ca5a3..24b9e59 100644
--- a/lib/fog/dnsimple/requests/dns/get_record.rb
+++ b/lib/fog/dnsimple/requests/dns/get_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Gets record from given domain.
         #
         # ==== Parameters
@@ -20,17 +19,15 @@ module Fog
             :path     => "/domains/#{domain}/records/#{record_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_record(domain, record_id)
           response = Excon::Response.new
 
-          if self.data[:records].has_key?(domain)
+          if self.data[:records].key?(domain)
             response.status = 200
-            response.body = self.data[:records][domain].detect { |record| record["record"]["id"] == record_id }
+            response.body = self.data[:records][domain].find { |record| record["record"]["id"] == record_id }
 
             if response.body.nil?
               response.status = 404
diff --git a/lib/fog/dnsimple/requests/dns/list_domains.rb b/lib/fog/dnsimple/requests/dns/list_domains.rb
index dda7186..04dcf2c 100644
--- a/lib/fog/dnsimple/requests/dns/list_domains.rb
+++ b/lib/fog/dnsimple/requests/dns/list_domains.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Get the details for a specific domain in your account. You
         # may pass either the domain numeric ID or the domain name itself.
         #
@@ -20,20 +19,16 @@ module Fog
             :path     => '/domains'
           )
         end
-
       end
 
       class Mock
-
         def list_domains
           response = Excon::Response.new
           response.status = 200
           response.body = self.data[:domains]
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/requests/dns/list_records.rb b/lib/fog/dnsimple/requests/dns/list_records.rb
index b64f53a..7036df4 100644
--- a/lib/fog/dnsimple/requests/dns/list_records.rb
+++ b/lib/fog/dnsimple/requests/dns/list_records.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Get the list of records for the specific domain.
         #
         # ==== Parameters
@@ -20,20 +19,16 @@ module Fog
             :path     => "/domains/#{domain}/records"
           )
         end
-
       end
 
       class Mock
-
         def list_records(domain)
           response = Excon::Response.new
           response.status = 200
           response.body = self.data[:records][domain] || []
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsimple/requests/dns/update_record.rb b/lib/fog/dnsimple/requests/dns/update_record.rb
index c1cddb8..3ec518b 100644
--- a/lib/fog/dnsimple/requests/dns/update_record.rb
+++ b/lib/fog/dnsimple/requests/dns/update_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSimple
       class Real
-
         # Update the given record for the given domain.
         #
         # ==== Parameters
@@ -30,13 +29,11 @@ module Fog
             :path     => "/domains/#{domain}/records/#{record_id}"
           )
         end
-
       end
 
       class Mock
-
         def update_record(domain, record_id, options)
-          record = self.data[:records][domain].detect { |record| record["record"]["id"] == record_id }
+          record = self.data[:records][domain].find { |record| record["record"]["id"] == record_id }
           response = Excon::Response.new
 
           if record.nil?
@@ -50,7 +47,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/core.rb b/lib/fog/dnsmadeeasy/core.rb
index 3efa1a1..edcceaa 100644
--- a/lib/fog/dnsmadeeasy/core.rb
+++ b/lib/fog/dnsmadeeasy/core.rb
@@ -3,10 +3,8 @@ require 'fog/json'
 
 module Fog
   module DNSMadeEasy
-
     extend Fog::Provider
 
     service(:dns, 'DNS')
-
   end
 end
diff --git a/lib/fog/dnsmadeeasy/dns.rb b/lib/fog/dnsmadeeasy/dns.rb
index 9c5dc8c..199e188 100644
--- a/lib/fog/dnsmadeeasy/dns.rb
+++ b/lib/fog/dnsmadeeasy/dns.rb
@@ -3,7 +3,6 @@ require 'fog/dnsmadeeasy/core'
 module Fog
   module DNS
     class DNSMadeEasy < Fog::Service
-
       requires :dnsmadeeasy_api_key, :dnsmadeeasy_secret_key
       recognizes :host, :path, :port, :scheme, :persistent
 
@@ -59,7 +58,6 @@ module Fog
       end
 
       class Real
-
         # Initialize connection to DNS Made Easy
         #
         # ==== Notes
@@ -121,7 +119,6 @@ module Fog
           end
 
           response
-
         end
 
         def signature(params)
diff --git a/lib/fog/dnsmadeeasy/models/dns/record.rb b/lib/fog/dnsmadeeasy/models/dns/record.rb
index 0cf1510..c99e371 100644
--- a/lib/fog/dnsmadeeasy/models/dns/record.rb
+++ b/lib/fog/dnsmadeeasy/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class DNSMadeEasy
-
       class Record < Fog::Model
         extend Fog::Deprecation
         deprecate :ip, :value
@@ -72,9 +71,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsmadeeasy/models/dns/records.rb b/lib/fog/dnsmadeeasy/models/dns/records.rb
index 92ba0f9..8650120 100644
--- a/lib/fog/dnsmadeeasy/models/dns/records.rb
+++ b/lib/fog/dnsmadeeasy/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/dnsmadeeasy/models/dns/record'
 module Fog
   module DNS
     class DNSMadeEasy
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::DNSMadeEasy::Record
@@ -28,9 +26,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsmadeeasy/models/dns/zone.rb b/lib/fog/dnsmadeeasy/models/dns/zone.rb
index e9a44e9..2cdb968 100644
--- a/lib/fog/dnsmadeeasy/models/dns/zone.rb
+++ b/lib/fog/dnsmadeeasy/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/dnsmadeeasy/models/dns/records'
 module Fog
   module DNS
     class DNSMadeEasy
-
       class Zone < Fog::Model
-
         identity  :id
         attribute :domain,      :aliases => 'name'
         attribute :gtd_enabled, :aliases => 'gtdEnabled'
@@ -34,9 +32,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsmadeeasy/models/dns/zones.rb b/lib/fog/dnsmadeeasy/models/dns/zones.rb
index 6377c94..7d1a7e2 100644
--- a/lib/fog/dnsmadeeasy/models/dns/zones.rb
+++ b/lib/fog/dnsmadeeasy/models/dns/zones.rb
@@ -4,14 +4,12 @@ require 'fog/dnsmadeeasy/models/dns/zone'
 module Fog
   module DNS
     class DNSMadeEasy
-
       class Zones < Fog::Collection
-
         model Fog::DNS::DNSMadeEasy::Zone
 
         def all
           clear
-          data = service.list_domains.body['list'].collect{|domain| {:id => domain}}
+          data = service.list_domains.body['list'].map{|domain| {:id => domain}}
           load(data)
         end
 
@@ -22,9 +20,7 @@ module Fog
         rescue Fog::Service::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/create_domain.rb b/lib/fog/dnsmadeeasy/requests/dns/create_domain.rb
index c0277cd..696174d 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/create_domain.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/create_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Creates a domain entry with the specified name. Returns errors if name is not valid or conflicts with another domain.
         #
         # ==== Parameters
@@ -22,7 +21,6 @@ module Fog
             :path     => "/V1.2/domains/#{domain}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/create_record.rb b/lib/fog/dnsmadeeasy/requests/dns/create_record.rb
index 69027e1..f263e7a 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/create_record.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/create_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Creates a record with the representation specified in the request content. Returns errors if record is not valid.
         # Note that a record ID will be generated by the system with this request and any ID that is sent will be ignored. Records are not modifiable for domains that are locked to a template.
         #
@@ -38,7 +37,6 @@ module Fog
         #     * hardLink<~Boolean>
         #   * 'status'<~Integer> - 201 - record successfully created, 400 - record not valid, see errors in response content, 404 - domain not found
         def create_record(domain, name, type, data, options = {})
-
           body = {
             "name" => name,
             "type" => type,
@@ -55,7 +53,6 @@ module Fog
             :body     => Fog::JSON.encode(body)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/create_secondary.rb b/lib/fog/dnsmadeeasy/requests/dns/create_secondary.rb
index b66cc2f..9d2684a 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/create_secondary.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/create_secondary.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Creates a secondary entry with the specified name. Returns errors if name is not valid or conflicts with another domain.
         #
         # ==== Parameters
@@ -17,7 +16,6 @@ module Fog
         #     * gtdLocation<~String> Global Traffic Director location. Values: DEFAULT, US_EAST, US_WEST, EUROPE
         #   * status<~Integer> - 201 - secondary entry successfully created or modified, 400 - secondary entry name or IP addresses not valid, see errors in response content
         def create_secondary(secondary_name, ip_addresses)
-
           body = {
             "ip" => [*ip_addresses]
           }
@@ -29,7 +27,6 @@ module Fog
             :body     => Fog::JSON.encode(body)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/delete_all_domains.rb b/lib/fog/dnsmadeeasy/requests/dns/delete_all_domains.rb
index c8737ae..c8d42fc 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/delete_all_domains.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/delete_all_domains.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Deletes all domains for your account.
         #
         # ==== Returns
@@ -16,7 +15,6 @@ module Fog
             :path     => '/V1.2/domains'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/delete_all_secondary.rb b/lib/fog/dnsmadeeasy/requests/dns/delete_all_secondary.rb
index 063fb4e..cd7cfb5 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/delete_all_secondary.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/delete_all_secondary.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Deletes all secondary entries for your account.
         #
         # ==== Returns
@@ -15,7 +14,6 @@ module Fog
             :path     => '/V1.2/secondary'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/delete_domain.rb b/lib/fog/dnsmadeeasy/requests/dns/delete_domain.rb
index 82746eb..3f23940 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/delete_domain.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/delete_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Delete the given domain from your account.
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :path     => "/V1.2/domains/#{domain}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/delete_record.rb b/lib/fog/dnsmadeeasy/requests/dns/delete_record.rb
index 2116f74..6260833 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/delete_record.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/delete_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Deletes the record with the specified id. Note that records are not modifiable for domains that are locked to a template.
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :path     => "/V1.2/domains/#{domain}/records/#{record_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/delete_secondary.rb b/lib/fog/dnsmadeeasy/requests/dns/delete_secondary.rb
index 239cdef..a0136e8 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/delete_secondary.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/delete_secondary.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Deletes the specified secondary entry.
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :path     => "/V1.2/secondary/#{secondary_name}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/get_domain.rb b/lib/fog/dnsmadeeasy/requests/dns/get_domain.rb
index 481a9d6..c830438 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/get_domain.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/get_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Get the details for a specific domain in your account.
         #
         # ==== Parameters
@@ -22,7 +21,6 @@ module Fog
             :path     => "/V1.2/domains/#{domain}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/get_record.rb b/lib/fog/dnsmadeeasy/requests/dns/get_record.rb
index b5117a0..96602ed 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/get_record.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/get_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Returns a record object representing the record with the specified id.
         #
         # ==== Parameters
@@ -31,7 +30,6 @@ module Fog
             :path     => "/V1.2/domains/#{domain}/records/#{record_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/get_secondary.rb b/lib/fog/dnsmadeeasy/requests/dns/get_secondary.rb
index 830e4b7..9590345 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/get_secondary.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/get_secondary.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Returns the secondary entry object representation of the specified secondary entry.
         #
         # ==== Parameters
@@ -22,7 +21,6 @@ module Fog
             :path     => "/V1.2/secondary/#{secondary_name}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/list_domains.rb b/lib/fog/dnsmadeeasy/requests/dns/list_domains.rb
index 5409fba..663e8e5 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/list_domains.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/list_domains.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Returns a list of all domain names for your account.
         #
         # ==== Returns
@@ -17,7 +16,6 @@ module Fog
             :path     => '/V1.2/domains'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/list_records.rb b/lib/fog/dnsmadeeasy/requests/dns/list_records.rb
index b5b31eb..7d80237 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/list_records.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/list_records.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Returns a list of record objects containing all records for the specified domain
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
             :query    => options
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/list_secondary.rb b/lib/fog/dnsmadeeasy/requests/dns/list_secondary.rb
index 177cc43..a518350 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/list_secondary.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/list_secondary.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Returns a list of all secondary entry names for your account.
         #
         # ==== Returns
@@ -17,7 +16,6 @@ module Fog
             :path     => '/V1.2/secondary'
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/update_record.rb b/lib/fog/dnsmadeeasy/requests/dns/update_record.rb
index dd585ec..e5375fc 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/update_record.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/update_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Updates a record with the representation specified in the request content. Returns errors if record is not valid.
         # Note that a record ID will be generated by the system with this request and any ID that is sent will be ignored. Records are not modifiable for domains that are locked to a template.
         #
@@ -49,7 +48,6 @@ module Fog
             :body     => Fog::JSON.encode(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dnsmadeeasy/requests/dns/update_secondary.rb b/lib/fog/dnsmadeeasy/requests/dns/update_secondary.rb
index 8f95df1..0fbc3e5 100644
--- a/lib/fog/dnsmadeeasy/requests/dns/update_secondary.rb
+++ b/lib/fog/dnsmadeeasy/requests/dns/update_secondary.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class DNSMadeEasy
       class Real
-
         # Modifies a secondary entry with the specified name. Returns errors if name is not valid or conflicts with another domain.
         #
         # ==== Parameters
@@ -17,7 +16,6 @@ module Fog
         #     * gtdLocation<~String> Global Traffic Director location. Values: DEFAULT, US_EAST, US_WEST, EUROPE
         #   * status<~Integer> - 201 - secondary entry successfully created or modified, 400 - secondary entry name or IP addresses not valid, see errors in response content
         def update_secondary(secondary_name, ip_addresses)
-
           body = {
             "ip" => [*ip_addresses]
           }
@@ -29,7 +27,6 @@ module Fog
             :body     => Fog::JSON.encode(body)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/dreamhost/core.rb b/lib/fog/dreamhost/core.rb
index 8d1d4c0..034c245 100644
--- a/lib/fog/dreamhost/core.rb
+++ b/lib/fog/dreamhost/core.rb
@@ -3,10 +3,8 @@ require 'fog/json'
 
 module Fog
   module Dreamhost
-
     extend Fog::Provider
 
     service(:dns, 'DNS')
-
   end
 end
diff --git a/lib/fog/dreamhost/dns.rb b/lib/fog/dreamhost/dns.rb
index 3f6e5ec..498572c 100644
--- a/lib/fog/dreamhost/dns.rb
+++ b/lib/fog/dreamhost/dns.rb
@@ -3,7 +3,6 @@ require 'fog/dreamhost/core'
 module Fog
   module DNS
     class Dreamhost < Fog::Service
-
       requires :dreamhost_api_key
 
       model_path 'fog/dreamhost/models/dns'
@@ -18,7 +17,6 @@ module Fog
       request :delete_record
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -40,11 +38,9 @@ module Fog
         def reset_data
           self.class.data.delete
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @dreamhost_api_key  = options[:dreamhost_api_key]
           if options[:dreamhost_url]
diff --git a/lib/fog/dreamhost/models/dns/record.rb b/lib/fog/dreamhost/models/dns/record.rb
index 2aea5c0..25518e5 100644
--- a/lib/fog/dreamhost/models/dns/record.rb
+++ b/lib/fog/dreamhost/models/dns/record.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module DNS
     class Dreamhost
-
       class Record < Fog::Model
-
         identity  :name, :aliases => 'record'
 
         attribute :value
@@ -27,9 +25,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dreamhost/models/dns/records.rb b/lib/fog/dreamhost/models/dns/records.rb
index 5f374bf..e8397c0 100644
--- a/lib/fog/dreamhost/models/dns/records.rb
+++ b/lib/fog/dreamhost/models/dns/records.rb
@@ -4,15 +4,13 @@ require 'fog/dreamhost/models/dns/record'
 module Fog
   module DNS
     class Dreamhost
-
       class Records < Fog::Collection
-
         model Fog::DNS::Dreamhost::Record
 
         def all(filter = {})
           clear
           if filter[:zone]
-            data = service.list_records.body['data'].find_all { |r| r['zone'] == filter[:zone] }
+            data = service.list_records.body['data'].select { |r| r['zone'] == filter[:zone] }
           else
             data = service.list_records.body['data']
           end
@@ -25,14 +23,12 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
 
       def new(attributes = {})
         requires :zone
         super({ :zone => zone }.merge!(attributes))
       end
-
     end
   end
 end
diff --git a/lib/fog/dreamhost/models/dns/zone.rb b/lib/fog/dreamhost/models/dns/zone.rb
index 1f46f32..bbeac96 100644
--- a/lib/fog/dreamhost/models/dns/zone.rb
+++ b/lib/fog/dreamhost/models/dns/zone.rb
@@ -4,7 +4,6 @@ require 'fog/dreamhost/models/dns/records'
 module Fog
   module DNS
     class Dreamhost
-
       #
       # Dreamhost API has no concept of 'Zone', but we
       # can emulate it.
@@ -12,7 +11,6 @@ module Fog
       # http://wiki.dreamhost.com/API/Dns_commands
       #
       class Zone < Fog::Model
-
         identity :id
         attribute :domain,     :aliases => 'name'
 
@@ -51,9 +49,7 @@ module Fog
         def save
           raise NotImplementedError.new
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dreamhost/models/dns/zones.rb b/lib/fog/dreamhost/models/dns/zones.rb
index 8255966..e2958b2 100644
--- a/lib/fog/dreamhost/models/dns/zones.rb
+++ b/lib/fog/dreamhost/models/dns/zones.rb
@@ -4,7 +4,6 @@ require 'fog/dreamhost/models/dns/zone'
 module Fog
   module DNS
     class Dreamhost
-
       #
       # Dreamhost API has no concept of 'Zone', but we
       # can emulate it.
@@ -12,7 +11,6 @@ module Fog
       # http://wiki.dreamhost.com/API/Dns_commands
       #
       class Zones < Fog::Collection
-
         model Fog::DNS::Dreamhost::Zone
 
         def all
@@ -33,9 +31,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dreamhost/requests/dns/create_record.rb b/lib/fog/dreamhost/requests/dns/create_record.rb
index aeb919e..38d982b 100644
--- a/lib/fog/dreamhost/requests/dns/create_record.rb
+++ b/lib/fog/dreamhost/requests/dns/create_record.rb
@@ -1,17 +1,13 @@
 module Fog
   module DNS
     class Dreamhost
-
       class Mock
-
         def create_record(record, type, value, comment = "")
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def create_record(record, type, value, comment = "")
           request( :expects  => 200,
                    :method   => 'GET',
@@ -25,7 +21,6 @@ module Fog
                    }
                  )
         end
-
       end
     end
   end
diff --git a/lib/fog/dreamhost/requests/dns/delete_record.rb b/lib/fog/dreamhost/requests/dns/delete_record.rb
index bba688a..e413ac9 100644
--- a/lib/fog/dreamhost/requests/dns/delete_record.rb
+++ b/lib/fog/dreamhost/requests/dns/delete_record.rb
@@ -1,17 +1,13 @@
 module Fog
   module DNS
     class Dreamhost
-
       class Mock
-
         def delete_record(name, type, value)
           raise Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def delete_record(name, type, value)
           request( :expects  => 200,
                    :method   => "GET",
@@ -24,7 +20,6 @@ module Fog
                    }
                  )
         end
-
       end
     end
   end
diff --git a/lib/fog/dreamhost/requests/dns/list_records.rb b/lib/fog/dreamhost/requests/dns/list_records.rb
index d736eb8..e5963be 100644
--- a/lib/fog/dreamhost/requests/dns/list_records.rb
+++ b/lib/fog/dreamhost/requests/dns/list_records.rb
@@ -1,24 +1,19 @@
 module Fog
   module DNS
     class Dreamhost
-
       class Mock
-
         def request(*args)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def list_records
           request( :expects  => 200,
                    :method   => "GET",
                    :path     => "/",
                    :query    => { :cmd => 'dns-list_records' } )
         end
-
       end
     end
   end
diff --git a/lib/fog/dynect/dns.rb b/lib/fog/dynect/dns.rb
index 9772c1e..7971561 100644
--- a/lib/fog/dynect/dns.rb
+++ b/lib/fog/dynect/dns.rb
@@ -3,7 +3,6 @@ require 'fog/dynect/core'
 module Fog
   module DNS
     class Dynect < Fog::Service
-
       requires :dynect_customer, :dynect_username, :dynect_password
       recognizes :timeout, :persistent
       recognizes :provider # remove post deprecation
@@ -66,12 +65,13 @@ module Fog
           @dynect_password = options[:dynect_password]
 
           @connection_options = options[:connection_options] || {}
-          @host       = 'api-v4.dynect.net'
-          @port       = options[:port]        || 443
-          @path       = options[:path]        || '/REST'
-          @persistent = options[:persistent]  || false
-          @scheme     = options[:scheme]      || 'https'
-          @version    = options[:version]     || '3.5.2'
+          @host               = 'api-v4.dynect.net'
+          @port               = options[:port]             || 443
+          @path               = options[:path]             || '/REST'
+          @persistent         = options[:persistent]       || false
+          @scheme             = options[:scheme]           || 'https'
+          @version            = options[:version]          || '3.5.2'
+          @job_poll_timeout   = options[:job_poll_timeout] || 10
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
         end
 
@@ -103,7 +103,7 @@ module Fog
             end
 
             if response.status == 307 && params[:path] !~ %r{^/REST/Job/}
-              response = poll_job(response, params[:expects])
+              response = poll_job(response, params[:expects], @job_poll_timeout)
             end
 
             response
@@ -119,22 +119,31 @@ module Fog
           response
         end
 
-        def poll_job(response, original_expects, time_to_wait = 10)
+        def poll_job(response, original_expects, time_to_wait)
           job_location = response.headers['Location']
 
-          Fog.wait_for(time_to_wait) do
-            response = request(:expects => original_expects, :method => :get, :path => job_location)
-            response.body['status'] != 'incomplete'
-          end
+          begin
+            Fog.wait_for(time_to_wait) do
+             response = request(
+               :expects => original_expects,
+               :idempotent => true,
+               :method => :get,
+               :path => job_location
+             )
+             response.body['status'] != 'incomplete'
+            end
 
-          if response.body['status'] == 'incomplete'
-            raise JobIncomplete.new("Job #{response.body['job_id']} is still incomplete")
+          rescue Errors::TimeoutError => error
+            if response.body['status'] == 'incomplete'
+              raise JobIncomplete.new("Job #{response.body['job_id']} is still incomplete")
+            else
+              raise error
+            end
           end
 
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/dynect/models/dns/record.rb b/lib/fog/dynect/models/dns/record.rb
index 7c3d420..95eb59b 100644
--- a/lib/fog/dynect/models/dns/record.rb
+++ b/lib/fog/dynect/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class Dynect
-
       class Record < Fog::Model
         extend Fog::Deprecation
 
@@ -20,7 +19,7 @@ module Fog
           true
         end
 
-        def save
+        def save(replace=false)
           requires :name, :type, :rdata, :zone
 
           options = {
@@ -28,7 +27,11 @@ module Fog
           }
           options.delete_if {|key, value| value.nil?}
 
-          data = service.post_record(type, zone.identity, name, rdata, options).body['data']
+          if replace
+            data = service.put_record(type, zone.identity, name, rdata, options).body['data']
+          else
+            data = service.post_record(type, zone.identity, name, rdata, options).body['data']
+          end
           # avoid overwriting zone object with zone string
           data = data.reject {|key, value| key == 'zone'}
           merge_attributes(data)
@@ -43,7 +46,7 @@ module Fog
               :type     => tokens[2][0...-6] # everything before 'Record'
             }
           end
-          record = records.detect {|record| record[:type] == type}
+          record = records.find {|record| record[:type] == type}
           merge_attributes(record)
 
           true
@@ -58,9 +61,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dynect/models/dns/records.rb b/lib/fog/dynect/models/dns/records.rb
index 2a202ea..7ddd673 100644
--- a/lib/fog/dynect/models/dns/records.rb
+++ b/lib/fog/dynect/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/dynect/models/dns/record'
 module Fog
   module DNS
     class Dynect
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::Dynect::Record
@@ -14,22 +12,17 @@ module Fog
         def all(options = {})
           requires :zone
           data = []
-          service.get_all_records(zone.domain, options).body['data'].each do |url|
-            (_, _, t, _, fqdn, id) = url.split('/')
-            type = t.gsub(/Record$/, '')
-
-            # leave out the default, read only records
-            # by putting this here we don't make the secondary request for these records
-            next if ['NS', 'SOA'].include?(type)
-
-            record = service.get_record(type, zone.domain, fqdn, 'record_id' => id).body['data']
-
-            data << {
-              :identity => record['record_id'],
-              :fqdn => record['fqdn'],
-              :type => record['record_type'],
-              :rdata => record['rdata']
-            }
+          service.get_all_records(zone.domain, options).body['data'].each do |records|
+            (type, list) = records
+            next if %w{soa_records ns_records}.include?(type)
+            list.each do |record|
+              data << {
+                :identity => record['record_id'],
+                :fqdn => record['fqdn'],
+                :type => record['record_type'],
+                :rdata => record['rdata']
+              }
+            end
           end
 
           load(data)
@@ -38,28 +31,19 @@ module Fog
         def get(record_id)
           requires :zone
 
-          list = service.get_all_records(zone.domain, {}).body['data']
-          url = list.detect { |e| e =~ /\/#{record_id}$/ }
-          return unless url
-          (_, _, t, _, fqdn, id) = url.split('/')
-          type = t.gsub(/Record$/, '')
-          record = service.get_record(type, zone.domain, fqdn, 'record_id' => id).body['data']
+          # there isn't a way to look up by just id
+          # must have type and domain for 'get_record' request
+          # so we pick it from the list returned by 'all'
 
-          new({
-            :identity => record['record_id'],
-            :fqdn => record['fqdn'],
-            :type => record['record_type'],
-            :rdata => record['rdata']
-          })
+          list = all
+          list.detect {|e| e.id == record_id}
         end
 
         def new(attributes = {})
           requires :zone
           super({:zone => zone}.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dynect/models/dns/zone.rb b/lib/fog/dynect/models/dns/zone.rb
index f22c654..e14f622 100644
--- a/lib/fog/dynect/models/dns/zone.rb
+++ b/lib/fog/dynect/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/dynect/models/dns/records'
 module Fog
   module DNS
     class Dynect
-
       class Zone < Fog::Model
-
         identity  :domain
 
         attribute :domain,        :aliases => 'zone'
@@ -52,9 +50,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dynect/models/dns/zones.rb b/lib/fog/dynect/models/dns/zones.rb
index d3c3355..b0ef2c7 100644
--- a/lib/fog/dynect/models/dns/zones.rb
+++ b/lib/fog/dynect/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/dynect/models/dns/zone'
 module Fog
   module DNS
     class Dynect
-
       class Zones < Fog::Collection
-
         model Fog::DNS::Dynect::Zone
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/dynect/requests/dns/delete_record.rb b/lib/fog/dynect/requests/dns/delete_record.rb
index 75d12b2..9cbc6f6 100644
--- a/lib/fog/dynect/requests/dns/delete_record.rb
+++ b/lib/fog/dynect/requests/dns/delete_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Delete a record
         #
         # ==== Parameters
diff --git a/lib/fog/dynect/requests/dns/delete_zone.rb b/lib/fog/dynect/requests/dns/delete_zone.rb
index 6f1f237..1e54acc 100644
--- a/lib/fog/dynect/requests/dns/delete_zone.rb
+++ b/lib/fog/dynect/requests/dns/delete_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Delete a zone
         #
         # ==== Parameters
diff --git a/lib/fog/dynect/requests/dns/get_all_records.rb b/lib/fog/dynect/requests/dns/get_all_records.rb
index 38dd45c..13e8d78 100644
--- a/lib/fog/dynect/requests/dns/get_all_records.rb
+++ b/lib/fog/dynect/requests/dns/get_all_records.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Get one or more node lists
         #
         # ==== Parameters
@@ -16,7 +15,8 @@ module Fog
             :expects  => 200,
             :idempotent => true,
             :method   => :get,
-            :path     => ['AllRecord', zone, requested_fqdn].compact.join('/')
+            :path     => ['AllRecord', zone, requested_fqdn].compact.join('/'),
+            :query    => {'detail' => 'Y'} # return full records, instead of just resource URLs
           )
         end
       end
@@ -31,9 +31,9 @@ module Fog
           data = [zone[:zone]]
 
           if fqdn = options[:fqdn]
-            data = data | zone[:records].collect { |type, records| records.select { |record| record[:fqdn] == fqdn } }.flatten.compact
+            data = data | zone[:records].map { |type, records| records.select { |record| record[:fqdn] == fqdn } }.flatten.compact
           else
-            data = data | zone[:records].collect { |type, records| records.collect { |record| record[:fqdn] } }.flatten
+            data = data | zone[:records].map { |type, records| records.map { |record| record[:fqdn] } }.flatten
           end
 
           response.body = {
diff --git a/lib/fog/dynect/requests/dns/get_node_list.rb b/lib/fog/dynect/requests/dns/get_node_list.rb
index 3418c21..d692c2d 100644
--- a/lib/fog/dynect/requests/dns/get_node_list.rb
+++ b/lib/fog/dynect/requests/dns/get_node_list.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Get one or more node lists
         #
         # ==== Parameters
@@ -31,9 +30,9 @@ module Fog
           data = [zone[:zone]]
 
           if fqdn = options[:fqdn]
-            data = data | zone[:records].collect { |type, records| records.select { |record| record[:fqdn] == fqdn } }.flatten.compact
+            data = data | zone[:records].map { |type, records| records.select { |record| record[:fqdn] == fqdn } }.flatten.compact
           else
-            data = data | zone[:records].collect { |type, records| records.collect { |record| record[:fqdn] } }.flatten
+            data = data | zone[:records].map { |type, records| records.map { |record| record[:fqdn] } }.flatten
           end
 
           response.body = {
diff --git a/lib/fog/dynect/requests/dns/get_record.rb b/lib/fog/dynect/requests/dns/get_record.rb
index 1892306..e58c036 100644
--- a/lib/fog/dynect/requests/dns/get_record.rb
+++ b/lib/fog/dynect/requests/dns/get_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # List records of a given type
         #
         # ==== Parameters
@@ -65,7 +64,7 @@ module Fog
                       end
             response.body = {
               "status" => "success",
-              "data" => records.collect { |record| "/REST/#{record[:type]}Record/#{record[:zone][:zone]}/#{record[:fqdn]}/#{record[:record_id]}" },
+              "data" => records.map { |record| "/REST/#{record[:type]}Record/#{record[:zone][:zone]}/#{record[:fqdn]}/#{record[:record_id]}" },
               "job_id" => Fog::Dynect::Mock.job_id,
               "msgs" => [{
                 "INFO" => "detail: Found #{records.size} record",
diff --git a/lib/fog/dynect/requests/dns/get_zone.rb b/lib/fog/dynect/requests/dns/get_zone.rb
index 14fefaf..9ccc5dc 100644
--- a/lib/fog/dynect/requests/dns/get_zone.rb
+++ b/lib/fog/dynect/requests/dns/get_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Get one or more zones
         #
         # ==== Parameters
@@ -31,7 +30,7 @@ module Fog
             }
             info = "get: Your zone, #{zone[:zone]}"
           else
-            data = self.data[:zones].collect { |zone, data| "/REST/Zone/#{zone}/" }
+            data = self.data[:zones].map { |zone, data| "/REST/Zone/#{zone}/" }
             info = "get: Your #{data.size} zones"
           end
 
diff --git a/lib/fog/dynect/requests/dns/post_record.rb b/lib/fog/dynect/requests/dns/post_record.rb
index fbcbaaa..126bec0 100644
--- a/lib/fog/dynect/requests/dns/post_record.rb
+++ b/lib/fog/dynect/requests/dns/post_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Create a record
         #
         # ==== Parameters
diff --git a/lib/fog/dynect/requests/dns/post_session.rb b/lib/fog/dynect/requests/dns/post_session.rb
index 4d2cf19..3aa3d82 100644
--- a/lib/fog/dynect/requests/dns/post_session.rb
+++ b/lib/fog/dynect/requests/dns/post_session.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         def post_session
           request(
             :expects  => 200,
diff --git a/lib/fog/dynect/requests/dns/post_zone.rb b/lib/fog/dynect/requests/dns/post_zone.rb
index 501b1f2..579b642 100644
--- a/lib/fog/dynect/requests/dns/post_zone.rb
+++ b/lib/fog/dynect/requests/dns/post_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Create a zone
         #
         # ==== Parameters
diff --git a/lib/fog/dynect/requests/dns/put_record.rb b/lib/fog/dynect/requests/dns/put_record.rb
index 7d8c9fd..5f5f6a3 100644
--- a/lib/fog/dynect/requests/dns/put_record.rb
+++ b/lib/fog/dynect/requests/dns/put_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Update or replace a record
         #
         # ==== Parameters
diff --git a/lib/fog/dynect/requests/dns/put_zone.rb b/lib/fog/dynect/requests/dns/put_zone.rb
index 817b8cb..c421061 100644
--- a/lib/fog/dynect/requests/dns/put_zone.rb
+++ b/lib/fog/dynect/requests/dns/put_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Dynect
       class Real
-
         # Update a zone
         #
         # ==== Parameters
diff --git a/lib/fog/ecloud/collection.rb b/lib/fog/ecloud/collection.rb
index 03ff293..62b49b4 100644
--- a/lib/fog/ecloud/collection.rb
+++ b/lib/fog/ecloud/collection.rb
@@ -1,7 +1,6 @@
 module Fog
   module Ecloud
     class Collection < Fog::Collection
-
       def load(objects)
         objects = [ objects ] if objects.is_a?(Hash)
         super
@@ -20,7 +19,6 @@ module Fog
           raise Fog::Errors::Error.new(msg)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/compute.rb b/lib/fog/ecloud/compute.rb
index 2e3ebf3..6cf5169 100644
--- a/lib/fog/ecloud/compute.rb
+++ b/lib/fog/ecloud/compute.rb
@@ -247,12 +247,11 @@ module Fog
       request :virtual_machine_attach_disk
 
       module Shared
-
         attr_accessor :base_path
         attr_reader :versions_uri
 
         def validate_data(required_opts = [], options = {})
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -284,7 +283,6 @@ module Fog
           end
         end
 
-
         def initialize(options = {})
           require 'fog/core/parser'
           @base_path               = options[:base_path] || '/cloudapi/ecloud'
@@ -392,10 +390,9 @@ module Fog
           Base64.encode64(@hmac.sign(string)).chomp
         end
 
-
         # section 5.6.3.2 in the ~1000 page pdf spec
         def canonicalize_headers(headers)
-          tmp = headers.inject({}) {|ret, h| ret[h.first.downcase] = h.last if h.first.match(/^x-tmrk/i) ; ret }
+          tmp = headers.reduce({}) {|ret, h| ret[h.first.downcase] = h.last if h.first.match(/^x-tmrk/i) ; ret }
           tmp.reject! {|k,v| k == "x-tmrk-authorization" }
           tmp = tmp.sort.map{|e| "#{e.first}:#{e.last}" }.join("\n")
           tmp
@@ -411,7 +408,6 @@ module Fog
         end
       end
 
-
       class Mock
         include Shared
 
@@ -517,7 +513,6 @@ module Fog
                             }
                           }
 
-
                           public_ip = {
                             :id             => public_ip_id,
                             :href           => "/cloudapi/ecloud/publicips/#{public_ip_id}",
@@ -607,7 +602,6 @@ module Fog
 
                           network[:IpAddresses][:IpAddress].push(ip_address).push(ip_address2)
 
-
                           short_name = "solaris10_64guest"
                           operating_system = {
                             :short_name      => short_name,
@@ -684,7 +678,6 @@ module Fog
                             }
                           }
 
-
                           template = {
                             :id              => template_id,
                             :href            => "/cloudapi/ecloud/templates/#{template_id}/computepools/#{compute_pool_id}",
@@ -767,7 +760,6 @@ module Fog
                             :environment_id => environment_id
                           }
 
-
                           {
                             :compute_pools             => {compute_pool_id            => compute_pool},
                             :environments              => {environment_id             => environment},
@@ -818,7 +810,7 @@ module Fog
           status  = params[:status] || 200
 
           response = Excon::Response.new(:body => body, :headers => headers, :status => status)
-          if params.has_key?(:expects) && ![*params[:expects]].include?(response.status)
+          if params.key?(:expects) && ![*params[:expects]].include?(response.status)
             raise(Excon::Errors.status_error(params, response))
           else response
           end
diff --git a/lib/fog/ecloud/generate_collection.rb b/lib/fog/ecloud/generate_collection.rb
index cad674f..05084f9 100644
--- a/lib/fog/ecloud/generate_collection.rb
+++ b/lib/fog/ecloud/generate_collection.rb
@@ -6,7 +6,6 @@ class String
   end
 end
 
-
 options = {}
 OptionParser.new do |opts|
   opts.banner = "Usage: #{__FILE__} [options]"
@@ -26,7 +25,6 @@ METHOD
   end.join("\n        ")
 end
 
-
 if options[:attributes]
   attributes = options[:attributes].map do |a|
     a = "attribute :#{a[0]}, :aliases => :#{a[1] || a[0].camelize}"
@@ -123,7 +121,6 @@ module Fog
 end
 MODEL
 
-
 File.open(collection_file, 'w') { |f| f.write(collection) }
 File.open(model_file, 'w') { |f| f.write(model) }
 File.open(collection_request_file, 'w') { |f| f.write(collection_request) }
diff --git a/lib/fog/ecloud/mock_data_classes.rb b/lib/fog/ecloud/mock_data_classes.rb
index d724a14..a780c18 100644
--- a/lib/fog/ecloud/mock_data_classes.rb
+++ b/lib/fog/ecloud/mock_data_classes.rb
@@ -96,7 +96,6 @@ module Fog
           find_href_prefixed_in(href, all_virtual_machines)
         end
 
-
         def all_networks
           all_vdcs.map(&:networks).flatten
         end
@@ -196,11 +195,11 @@ module Fog
         private
 
         def find_href_in(href, objects)
-          objects.detect {|o| o.href == href }
+          objects.find {|o| o.href == href }
         end
 
         def find_href_prefixed_in(href, objects)
-          objects.detect {|o| href =~ %r{^#{o.href}($|/)} }
+          objects.find {|o| href =~ %r{^#{o.href}($|/)} }
         end
       end
 
@@ -226,7 +225,6 @@ module Fog
         def environments
           @vdcs ||= []
         end
-
       end
 
       class MockVdc < Base
@@ -395,7 +393,7 @@ module Fog
 
       class MockNetworkIps < Base
         def items
-          @items ||= _parent.usable_subnet_ips.inject({}) do |out, subnet_ip|
+          @items ||= _parent.usable_subnet_ips.reduce({}) do |out, subnet_ip|
             out.update(subnet_ip => MockNetworkIp.new({ :ip => subnet_ip }, self))
           end
         end
@@ -419,7 +417,7 @@ module Fog
         end
 
         def used_by
-          self[:used_by] || _parent._parent._parent.virtual_machines.detect {|v| v.ip == ip }
+          self[:used_by] || _parent._parent._parent.virtual_machines.find {|v| v.ip == ip }
         end
 
         def status
@@ -507,11 +505,11 @@ module Fog
         end
 
         def size
-          disks.inject(0) {|s, d| s + d.vcloud_size }
+          disks.reduce(0) {|s, d| s + d.vcloud_size }
         end
 
         def network_ip
-          if network = _parent.networks.detect {|n| n.ip_collection.items[ip] }
+          if network = _parent.networks.find {|n| n.ip_collection.items[ip] }
             network.ip_collection.items[ip]
           end
         end
@@ -564,7 +562,7 @@ module Fog
         end
 
         def at_address(address)
-          detect {|d| d.address == address }
+          find {|d| d.address == address }
         end
       end
 
@@ -599,7 +597,7 @@ module Fog
         end
 
         def public_ip_internet_services
-          _parent.public_ip_collection.items.inject([]) do |services, public_ip|
+          _parent.public_ip_collection.items.reduce([]) do |services, public_ip|
             services + public_ip.internet_service_collection.items
           end
         end
diff --git a/lib/fog/ecloud/model.rb b/lib/fog/ecloud/model.rb
index 12bd160..58d295e 100644
--- a/lib/fog/ecloud/model.rb
+++ b/lib/fog/ecloud/model.rb
@@ -1,7 +1,6 @@
 module Fog
   module Ecloud
     class Model < Fog::Model
-
       attr_accessor :loaded
       alias_method :loaded?, :loaded
 
@@ -16,7 +15,6 @@ module Fog
           reload
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/models/compute/admin_organizations.rb b/lib/fog/ecloud/models/compute/admin_organizations.rb
index 06b66c7..8d89cb6 100644
--- a/lib/fog/ecloud/models/compute/admin_organizations.rb
+++ b/lib/fog/ecloud/models/compute/admin_organizations.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class AdminOrganizations < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::AdminOrganization
diff --git a/lib/fog/ecloud/models/compute/api_key.rb b/lib/fog/ecloud/models/compute/api_key.rb
index d009f00..d2fc8ec 100644
--- a/lib/fog/ecloud/models/compute/api_key.rb
+++ b/lib/fog/ecloud/models/compute/api_key.rb
@@ -11,7 +11,6 @@ module Fog
         attribute :status, :aliases => :Status
         attribute :private_key, :aliases => :PrivateKey
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/api_keys.rb b/lib/fog/ecloud/models/compute/api_keys.rb
index cf4f89c..f2760e1 100644
--- a/lib/fog/ecloud/models/compute/api_keys.rb
+++ b/lib/fog/ecloud/models/compute/api_keys.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class ApiKeys < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::ApiKey
diff --git a/lib/fog/ecloud/models/compute/associations.rb b/lib/fog/ecloud/models/compute/associations.rb
index 16c18a2..8d73f54 100644
--- a/lib/fog/ecloud/models/compute/associations.rb
+++ b/lib/fog/ecloud/models/compute/associations.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Associations < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Association
diff --git a/lib/fog/ecloud/models/compute/authentication_level.rb b/lib/fog/ecloud/models/compute/authentication_level.rb
index 56dc6b5..443c7b1 100644
--- a/lib/fog/ecloud/models/compute/authentication_level.rb
+++ b/lib/fog/ecloud/models/compute/authentication_level.rb
@@ -12,7 +12,6 @@ module Fog
         attribute :hmacsha256_enabled, :aliases => :HMACSHA256Enabled, :type => :boolean
         attribute :hmacsha512_enabled, :aliases => :HMACSHA512Enabled, :type => :boolean
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/authentication_levels.rb b/lib/fog/ecloud/models/compute/authentication_levels.rb
index bd01fa2..bb1dca6 100644
--- a/lib/fog/ecloud/models/compute/authentication_levels.rb
+++ b/lib/fog/ecloud/models/compute/authentication_levels.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class AuthenticationLevels < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::AuthenticationLevel
diff --git a/lib/fog/ecloud/models/compute/backup_internet_services.rb b/lib/fog/ecloud/models/compute/backup_internet_services.rb
index 4268794..e05343e 100644
--- a/lib/fog/ecloud/models/compute/backup_internet_services.rb
+++ b/lib/fog/ecloud/models/compute/backup_internet_services.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class BackupInternetServices < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::BackupInternetService
diff --git a/lib/fog/ecloud/models/compute/catalog.rb b/lib/fog/ecloud/models/compute/catalog.rb
index cdd27c1..76f8d72 100644
--- a/lib/fog/ecloud/models/compute/catalog.rb
+++ b/lib/fog/ecloud/models/compute/catalog.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Catalog < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::CatalogItem
diff --git a/lib/fog/ecloud/models/compute/catalog_configuration.rb b/lib/fog/ecloud/models/compute/catalog_configuration.rb
index 8b06d6f..b3580e8 100644
--- a/lib/fog/ecloud/models/compute/catalog_configuration.rb
+++ b/lib/fog/ecloud/models/compute/catalog_configuration.rb
@@ -13,7 +13,6 @@ module Fog
         attribute :network_adapters, :aliases => :NetworkAdapters, :type => :integer
         attribute :network_mappings, :aliases => :NetworkMappings
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/catalog_configurations.rb b/lib/fog/ecloud/models/compute/catalog_configurations.rb
index 6eb8b2b..1c97006 100644
--- a/lib/fog/ecloud/models/compute/catalog_configurations.rb
+++ b/lib/fog/ecloud/models/compute/catalog_configurations.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class CatalogConfigurations < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::CatalogConfiguration
diff --git a/lib/fog/ecloud/models/compute/compute_pool.rb b/lib/fog/ecloud/models/compute/compute_pool.rb
index eaad2b1..0eafd67 100644
--- a/lib/fog/ecloud/models/compute/compute_pool.rb
+++ b/lib/fog/ecloud/models/compute/compute_pool.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class ComputePool < Fog::Ecloud::Model
-
         identity :href
 
         attribute :href,         :aliases => :Href
diff --git a/lib/fog/ecloud/models/compute/compute_pools.rb b/lib/fog/ecloud/models/compute/compute_pools.rb
index 2faaa1b..1ce29b9 100644
--- a/lib/fog/ecloud/models/compute/compute_pools.rb
+++ b/lib/fog/ecloud/models/compute/compute_pools.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class ComputePools < Fog::Ecloud::Collection
-
         undef_method :create
 
         attribute :href, :aliases => :Href
diff --git a/lib/fog/ecloud/models/compute/cpu_usage_detail.rb b/lib/fog/ecloud/models/compute/cpu_usage_detail.rb
index a50e96c..b0719b1 100644
--- a/lib/fog/ecloud/models/compute/cpu_usage_detail.rb
+++ b/lib/fog/ecloud/models/compute/cpu_usage_detail.rb
@@ -7,7 +7,6 @@ module Fog
         attribute :time, :aliases => :Time
         attribute :value, :aliases => :Value
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb b/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb
index 1601305..cc95b07 100644
--- a/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb
+++ b/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class CpuUsageDetailSummary < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::CpuUsageDetail
diff --git a/lib/fog/ecloud/models/compute/detached_disks.rb b/lib/fog/ecloud/models/compute/detached_disks.rb
index b5eec82..10582e1 100644
--- a/lib/fog/ecloud/models/compute/detached_disks.rb
+++ b/lib/fog/ecloud/models/compute/detached_disks.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class DetachedDisks < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::DetachedDisk
diff --git a/lib/fog/ecloud/models/compute/environment.rb b/lib/fog/ecloud/models/compute/environment.rb
index e18045e..11742ba 100644
--- a/lib/fog/ecloud/models/compute/environment.rb
+++ b/lib/fog/ecloud/models/compute/environment.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Environment < Fog::Ecloud::Model
-
         identity :href
 
         ignore_attributes :xmlns, :xmlns_xsi, :xmlns_xsd
diff --git a/lib/fog/ecloud/models/compute/environments.rb b/lib/fog/ecloud/models/compute/environments.rb
index 75b83b5..701b2ee 100644
--- a/lib/fog/ecloud/models/compute/environments.rb
+++ b/lib/fog/ecloud/models/compute/environments.rb
@@ -3,9 +3,7 @@ require 'fog/ecloud/models/compute/environment'
 module Fog
   module Compute
     class Ecloud
-
       class Environments < Fog::Ecloud::Collection
-
         model Fog::Compute::Ecloud::Environment
 
         undef_method :create
@@ -35,7 +33,6 @@ module Fog
         end
 
         Vdcs = Environments
-
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/firewall_acls.rb b/lib/fog/ecloud/models/compute/firewall_acls.rb
index be3735e..3185d5d 100644
--- a/lib/fog/ecloud/models/compute/firewall_acls.rb
+++ b/lib/fog/ecloud/models/compute/firewall_acls.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class FirewallAcls < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::FirewallAcl
diff --git a/lib/fog/ecloud/models/compute/group.rb b/lib/fog/ecloud/models/compute/group.rb
index 5fe84ac..4f36d91 100644
--- a/lib/fog/ecloud/models/compute/group.rb
+++ b/lib/fog/ecloud/models/compute/group.rb
@@ -34,7 +34,7 @@ module Fog
           href.scan(/\d+/)[0]
         end
 
-        alias destroy delete
+        alias_method :destroy, :delete
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/groups.rb b/lib/fog/ecloud/models/compute/groups.rb
index 25a1e94..3aa1d05 100644
--- a/lib/fog/ecloud/models/compute/groups.rb
+++ b/lib/fog/ecloud/models/compute/groups.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Groups < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Group
diff --git a/lib/fog/ecloud/models/compute/guest_processes.rb b/lib/fog/ecloud/models/compute/guest_processes.rb
index c788bc9..1d79162 100644
--- a/lib/fog/ecloud/models/compute/guest_processes.rb
+++ b/lib/fog/ecloud/models/compute/guest_processes.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class GuestProcesses < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::GuestProcess
diff --git a/lib/fog/ecloud/models/compute/hardware_configurations.rb b/lib/fog/ecloud/models/compute/hardware_configurations.rb
index 9e95f4e..a6e12e3 100644
--- a/lib/fog/ecloud/models/compute/hardware_configurations.rb
+++ b/lib/fog/ecloud/models/compute/hardware_configurations.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class HardwareConfigurations < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::HardwareConfiguration
diff --git a/lib/fog/ecloud/models/compute/internet_service.rb b/lib/fog/ecloud/models/compute/internet_service.rb
index 045ac7c..8ba2a06 100644
--- a/lib/fog/ecloud/models/compute/internet_service.rb
+++ b/lib/fog/ecloud/models/compute/internet_service.rb
@@ -90,7 +90,7 @@ module Fog
           service_data
         end
 
-        alias destroy delete
+        alias_method :destroy, :delete
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/internet_services.rb b/lib/fog/ecloud/models/compute/internet_services.rb
index 363e4fb..e4bfb69 100644
--- a/lib/fog/ecloud/models/compute/internet_services.rb
+++ b/lib/fog/ecloud/models/compute/internet_services.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class InternetServices < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::InternetService
diff --git a/lib/fog/ecloud/models/compute/ip_address.rb b/lib/fog/ecloud/models/compute/ip_address.rb
index 86a5b33..4f0c191 100644
--- a/lib/fog/ecloud/models/compute/ip_address.rb
+++ b/lib/fog/ecloud/models/compute/ip_address.rb
@@ -30,7 +30,7 @@ module Fog
 
         def network
           reload if other_links.nil?
-          network_href = other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.network" }[:href]
+          network_href = other_links.find { |l| l[:type] == "application/vnd.tmrk.cloud.network" }[:href]
           network      = self.service.networks.get(network_href)
         end
       end
diff --git a/lib/fog/ecloud/models/compute/ip_addresses.rb b/lib/fog/ecloud/models/compute/ip_addresses.rb
index 712e8d0..e4ae3d4 100644
--- a/lib/fog/ecloud/models/compute/ip_addresses.rb
+++ b/lib/fog/ecloud/models/compute/ip_addresses.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class IpAddresses < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::IpAddress
diff --git a/lib/fog/ecloud/models/compute/layouts.rb b/lib/fog/ecloud/models/compute/layouts.rb
index b6a52a9..f36da9a 100644
--- a/lib/fog/ecloud/models/compute/layouts.rb
+++ b/lib/fog/ecloud/models/compute/layouts.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Layouts < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Layout
diff --git a/lib/fog/ecloud/models/compute/location.rb b/lib/fog/ecloud/models/compute/location.rb
index d7df6d6..e374283 100644
--- a/lib/fog/ecloud/models/compute/location.rb
+++ b/lib/fog/ecloud/models/compute/location.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Location < Fog::Ecloud::Model
-
         identity :href
 
         ignore_attributes :xmlns, :xmlns_xsi, :xmlns_xsd, :xmlns_i
diff --git a/lib/fog/ecloud/models/compute/locations.rb b/lib/fog/ecloud/models/compute/locations.rb
index 48a5046..bdb0c05 100644
--- a/lib/fog/ecloud/models/compute/locations.rb
+++ b/lib/fog/ecloud/models/compute/locations.rb
@@ -3,9 +3,7 @@ require 'fog/ecloud/models/compute/location'
 module Fog
   module Compute
     class Ecloud
-
       class Locations < Fog::Ecloud::Collection
-
         model Fog::Compute::Ecloud::Location
 
         undef_method :create
@@ -24,7 +22,6 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/login_banners.rb b/lib/fog/ecloud/models/compute/login_banners.rb
index 280d8a4..f8a0d90 100644
--- a/lib/fog/ecloud/models/compute/login_banners.rb
+++ b/lib/fog/ecloud/models/compute/login_banners.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class LoginBanners < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::LoginBanner
diff --git a/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb b/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb
index 9175ec8..2e596ec 100644
--- a/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb
+++ b/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class MemoryUsageDetailSummary < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::MemoryUsageDetail
diff --git a/lib/fog/ecloud/models/compute/monitors.rb b/lib/fog/ecloud/models/compute/monitors.rb
index a83f750..f37e4d5 100644
--- a/lib/fog/ecloud/models/compute/monitors.rb
+++ b/lib/fog/ecloud/models/compute/monitors.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Monitors < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Monitor
diff --git a/lib/fog/ecloud/models/compute/network.rb b/lib/fog/ecloud/models/compute/network.rb
index 12808b4..0da7ba7 100644
--- a/lib/fog/ecloud/models/compute/network.rb
+++ b/lib/fog/ecloud/models/compute/network.rb
@@ -33,7 +33,7 @@ module Fog
 
         def environment
           reload if other_links.nil?
-          environment_href = other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href]
+          environment_href = other_links.find { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href]
           self.service.environments.get(environment_href)
         end
 
diff --git a/lib/fog/ecloud/models/compute/networks.rb b/lib/fog/ecloud/models/compute/networks.rb
index e0c924a..10f14ff 100644
--- a/lib/fog/ecloud/models/compute/networks.rb
+++ b/lib/fog/ecloud/models/compute/networks.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Networks < Fog::Ecloud::Collection
-
         attribute :href, :aliases => :Href
 
         model Fog::Compute::Ecloud::Network
diff --git a/lib/fog/ecloud/models/compute/node.rb b/lib/fog/ecloud/models/compute/node.rb
index 4ccae89..d0e05d1 100644
--- a/lib/fog/ecloud/models/compute/node.rb
+++ b/lib/fog/ecloud/models/compute/node.rb
@@ -38,7 +38,7 @@ module Fog
           href.scan(/\d+/)[0]
         end
 
-        alias destroy delete
+        alias_method :destroy, :delete
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/nodes.rb b/lib/fog/ecloud/models/compute/nodes.rb
index 4e8b633..6064c4b 100644
--- a/lib/fog/ecloud/models/compute/nodes.rb
+++ b/lib/fog/ecloud/models/compute/nodes.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Nodes < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Node
diff --git a/lib/fog/ecloud/models/compute/operating_system.rb b/lib/fog/ecloud/models/compute/operating_system.rb
index ed8c68c..df9c0f4 100644
--- a/lib/fog/ecloud/models/compute/operating_system.rb
+++ b/lib/fog/ecloud/models/compute/operating_system.rb
@@ -7,7 +7,6 @@ module Fog
         attribute :name, :aliases => :Name
         attribute :type, :aliases => :Type
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/operating_system_families.rb b/lib/fog/ecloud/models/compute/operating_system_families.rb
index ed8c415..7e36592 100644
--- a/lib/fog/ecloud/models/compute/operating_system_families.rb
+++ b/lib/fog/ecloud/models/compute/operating_system_families.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class OperatingSystemFamilies < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::OperatingSystemFamily
diff --git a/lib/fog/ecloud/models/compute/operating_systems.rb b/lib/fog/ecloud/models/compute/operating_systems.rb
index d6e9cd6..5426467 100644
--- a/lib/fog/ecloud/models/compute/operating_systems.rb
+++ b/lib/fog/ecloud/models/compute/operating_systems.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class OperatingSystems < Fog::Ecloud::Collection
-
         model Fog::Compute::Ecloud::OperatingSystem
 
         identity :data
diff --git a/lib/fog/ecloud/models/compute/organization.rb b/lib/fog/ecloud/models/compute/organization.rb
index 2883210..4f0e7a3 100644
--- a/lib/fog/ecloud/models/compute/organization.rb
+++ b/lib/fog/ecloud/models/compute/organization.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Organization < Fog::Ecloud::Model
-
         identity :href
 
         ignore_attributes :xmlns, :xmlns_xsi, :xmlns_xsd, :xmlns_i
@@ -72,7 +71,7 @@ module Fog
           href.scan(/\d+/)[0]
         end
 
-        alias :vdcs :environments
+        alias_method :vdcs, :environments
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/organizations.rb b/lib/fog/ecloud/models/compute/organizations.rb
index d41c2da..212da22 100644
--- a/lib/fog/ecloud/models/compute/organizations.rb
+++ b/lib/fog/ecloud/models/compute/organizations.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Organizations < Fog::Ecloud::Collection
-
         model Fog::Compute::Ecloud::Organization
 
         undef_method :create
diff --git a/lib/fog/ecloud/models/compute/password_complexity_rules.rb b/lib/fog/ecloud/models/compute/password_complexity_rules.rb
index e675177..44e0adb 100644
--- a/lib/fog/ecloud/models/compute/password_complexity_rules.rb
+++ b/lib/fog/ecloud/models/compute/password_complexity_rules.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class PasswordComplexityRules < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::PasswordComplexityRule
diff --git a/lib/fog/ecloud/models/compute/physical_device.rb b/lib/fog/ecloud/models/compute/physical_device.rb
index 663b931..d5739b5 100644
--- a/lib/fog/ecloud/models/compute/physical_device.rb
+++ b/lib/fog/ecloud/models/compute/physical_device.rb
@@ -12,7 +12,6 @@ module Fog
         attribute :classification, :aliases => :Classification
         attribute :model, :aliases => :Model
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/physical_devices.rb b/lib/fog/ecloud/models/compute/physical_devices.rb
index ad44c7d..97ed57d 100644
--- a/lib/fog/ecloud/models/compute/physical_devices.rb
+++ b/lib/fog/ecloud/models/compute/physical_devices.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class PhysicalDevices < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::PhysicalDevice
diff --git a/lib/fog/ecloud/models/compute/public_ip.rb b/lib/fog/ecloud/models/compute/public_ip.rb
index 9aea8f3..2fd84c0 100644
--- a/lib/fog/ecloud/models/compute/public_ip.rb
+++ b/lib/fog/ecloud/models/compute/public_ip.rb
@@ -14,7 +14,7 @@ module Fog
         end
 
         def environment_id
-          other_links[:Link].detect { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href].scan(/\d+/)[0]
+          other_links[:Link].find { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href].scan(/\d+/)[0]
         end
 
         def id
diff --git a/lib/fog/ecloud/models/compute/public_ips.rb b/lib/fog/ecloud/models/compute/public_ips.rb
index 8bc262c..a496cf5 100644
--- a/lib/fog/ecloud/models/compute/public_ips.rb
+++ b/lib/fog/ecloud/models/compute/public_ips.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class PublicIps < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::PublicIp
diff --git a/lib/fog/ecloud/models/compute/rnats.rb b/lib/fog/ecloud/models/compute/rnats.rb
index c697965..1427aeb 100644
--- a/lib/fog/ecloud/models/compute/rnats.rb
+++ b/lib/fog/ecloud/models/compute/rnats.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Rnats < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Rnat
diff --git a/lib/fog/ecloud/models/compute/role.rb b/lib/fog/ecloud/models/compute/role.rb
index 7233b1a..83a6a25 100644
--- a/lib/fog/ecloud/models/compute/role.rb
+++ b/lib/fog/ecloud/models/compute/role.rb
@@ -14,7 +14,6 @@ module Fog
         attribute :is_admin, :aliases => :IsAdmin, :type => :boolean
         attribute :business_operations, :aliases => :BusinessOperations
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/roles.rb b/lib/fog/ecloud/models/compute/roles.rb
index d908270..019c346 100644
--- a/lib/fog/ecloud/models/compute/roles.rb
+++ b/lib/fog/ecloud/models/compute/roles.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Roles < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Role
diff --git a/lib/fog/ecloud/models/compute/row.rb b/lib/fog/ecloud/models/compute/row.rb
index 013095a..dc94777 100644
--- a/lib/fog/ecloud/models/compute/row.rb
+++ b/lib/fog/ecloud/models/compute/row.rb
@@ -49,7 +49,7 @@ module Fog
           href.scan(/\d+/)[0]
         end
 
-        alias destroy delete
+        alias_method :destroy, :delete
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/rows.rb b/lib/fog/ecloud/models/compute/rows.rb
index 32f1a8a..547e0ab 100644
--- a/lib/fog/ecloud/models/compute/rows.rb
+++ b/lib/fog/ecloud/models/compute/rows.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Rows < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Row
diff --git a/lib/fog/ecloud/models/compute/server.rb b/lib/fog/ecloud/models/compute/server.rb
index 8f718d6..6ce6865 100644
--- a/lib/fog/ecloud/models/compute/server.rb
+++ b/lib/fog/ecloud/models/compute/server.rb
@@ -103,7 +103,7 @@ module Fog
               options[:network_uri] = options[:network_uri].is_a?(String) ? [options[:network_uri]] : options[:network_uri]
               options[:network_uri].each do |uri|
                 index = options[:network_uri].index(uri)
-                ip = Fog::Compute::Ecloud::IpAddresses.new(:service => service, :href => uri).detect { |i| i.host == nil }.name
+                ip = Fog::Compute::Ecloud::IpAddresses.new(:service => service, :href => uri).find { |i| i.host == nil }.name
                 options[:ips] ||= []
                 options[:ips][index] = ip
               end
@@ -168,7 +168,7 @@ module Fog
 
         def detach_disk(index)
           options               = {}
-          options[:disk]        = disks.detect { |disk_hash| disk_hash[:Index] == index.to_s }
+          options[:disk]        = disks.find { |disk_hash| disk_hash[:Index] == index.to_s }
           options[:name]        = self.name
           options[:description] = self.description
           data                  = service.virtual_machine_detach_disk(href + "/hardwareconfiguration/disks/actions/detach", options).body
@@ -262,7 +262,7 @@ module Fog
 
         def storage_size
           vm_disks = disks
-          disks.map! { |d| d[:Size][:Value].to_i }.inject(0){|sum,item| sum + item} * 1024 * 1024
+          disks.map! { |d| d[:Size][:Value].to_i }.reduce(0){|sum,item| sum + item} * 1024 * 1024
         end
 
         def ready?
@@ -283,16 +283,16 @@ module Fog
         end
 
         def compute_pool_id
-          other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.computePool" }[:href].scan(/\d+/)[0]
+          other_links.find { |l| l[:type] == "application/vnd.tmrk.cloud.computePool" }[:href].scan(/\d+/)[0]
         end
 
         def compute_pool
           reload if other_links.nil?
-          @compute_pool = self.service.compute_pools.new(:href => other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.computePool" }[:href])
+          @compute_pool = self.service.compute_pools.new(:href => other_links.find { |l| l[:type] == "application/vnd.tmrk.cloud.computePool" }[:href])
         end
 
         def environment_id
-          other_links.detect { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href].scan(/\d+/)[0]
+          other_links.find { |l| l[:type] == "application/vnd.tmrk.cloud.environment" }[:href].scan(/\d+/)[0]
         end
 
         def id
@@ -316,7 +316,7 @@ module Fog
           true
         end
 
-        alias destroy delete
+        alias_method :destroy, :delete
       end
     end
   end
diff --git a/lib/fog/ecloud/models/compute/server_configuration_option.rb b/lib/fog/ecloud/models/compute/server_configuration_option.rb
index 7e1cccd..90ee1e2 100644
--- a/lib/fog/ecloud/models/compute/server_configuration_option.rb
+++ b/lib/fog/ecloud/models/compute/server_configuration_option.rb
@@ -7,7 +7,6 @@ module Fog
         attribute :disk, :aliases => :Disk
         attribute :customization, :aliases => :Customization
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/server_configuration_options.rb b/lib/fog/ecloud/models/compute/server_configuration_options.rb
index bffd8bd..b1e8ee2 100644
--- a/lib/fog/ecloud/models/compute/server_configuration_options.rb
+++ b/lib/fog/ecloud/models/compute/server_configuration_options.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class ServerConfigurationOptions < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::ServerConfigurationOption
diff --git a/lib/fog/ecloud/models/compute/servers.rb b/lib/fog/ecloud/models/compute/servers.rb
index f31041c..ab67a70 100644
--- a/lib/fog/ecloud/models/compute/servers.rb
+++ b/lib/fog/ecloud/models/compute/servers.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Servers < Fog::Ecloud::Collection
-
         model Fog::Compute::Ecloud::Server
 
         identity :href
@@ -47,7 +46,7 @@ module Fog
             else
               [*options[:network_uri]].each do |uri|
                 index = options[:network_uri].index(uri)
-                ip = self.service.ip_addresses(:href => uri).detect { |i| i.host == nil && i.detected_on.nil? }.name
+                ip = self.service.ip_addresses(:href => uri).find { |i| i.host == nil && i.detected_on.nil? }.name
                 options[:ips] ||= []
                 options[:ips][index] = ip
               end
@@ -60,9 +59,7 @@ module Fog
           object = self.service.servers.new(data)
           object
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/ecloud/models/compute/ssh_key.rb b/lib/fog/ecloud/models/compute/ssh_key.rb
index ad39d08..c814dac 100644
--- a/lib/fog/ecloud/models/compute/ssh_key.rb
+++ b/lib/fog/ecloud/models/compute/ssh_key.rb
@@ -10,7 +10,6 @@ module Fog
         attribute :default, :aliases => :Default, :type => :boolean
         attribute :finger_print, :aliases => :FingerPrint
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/ssh_keys.rb b/lib/fog/ecloud/models/compute/ssh_keys.rb
index 0caf48e..733a93c 100644
--- a/lib/fog/ecloud/models/compute/ssh_keys.rb
+++ b/lib/fog/ecloud/models/compute/ssh_keys.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class SshKeys < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::SshKey
diff --git a/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb b/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb
index 03ded9a..deeffbe 100644
--- a/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb
+++ b/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class StorageUsageDetailSummary < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::StorageUsageDetail
diff --git a/lib/fog/ecloud/models/compute/support_ticket.rb b/lib/fog/ecloud/models/compute/support_ticket.rb
index 7e3d8cc..f4090d7 100644
--- a/lib/fog/ecloud/models/compute/support_ticket.rb
+++ b/lib/fog/ecloud/models/compute/support_ticket.rb
@@ -19,7 +19,6 @@ module Fog
         attribute :solution, :aliases => :Solution
         attribute :history, :aliases => :History
 
-
         def id
           href.scan(/\d+/)[0]
         end
diff --git a/lib/fog/ecloud/models/compute/support_tickets.rb b/lib/fog/ecloud/models/compute/support_tickets.rb
index 9e27391..73a78a9 100644
--- a/lib/fog/ecloud/models/compute/support_tickets.rb
+++ b/lib/fog/ecloud/models/compute/support_tickets.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class SupportTickets < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::SupportTicket
diff --git a/lib/fog/ecloud/models/compute/tags.rb b/lib/fog/ecloud/models/compute/tags.rb
index 407967c..cf9cda0 100644
--- a/lib/fog/ecloud/models/compute/tags.rb
+++ b/lib/fog/ecloud/models/compute/tags.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Tags < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Tag
diff --git a/lib/fog/ecloud/models/compute/tasks.rb b/lib/fog/ecloud/models/compute/tasks.rb
index e3ba3d7..397b02d 100644
--- a/lib/fog/ecloud/models/compute/tasks.rb
+++ b/lib/fog/ecloud/models/compute/tasks.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Tasks < Fog::Ecloud::Collection
-
         model Fog::Compute::Ecloud::Task
 
         identity :href
@@ -28,4 +27,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/ecloud/models/compute/templates.rb b/lib/fog/ecloud/models/compute/templates.rb
index 55dc2cc..0e5f564 100644
--- a/lib/fog/ecloud/models/compute/templates.rb
+++ b/lib/fog/ecloud/models/compute/templates.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Templates < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::Template
diff --git a/lib/fog/ecloud/models/compute/trusted_network_groups.rb b/lib/fog/ecloud/models/compute/trusted_network_groups.rb
index 83070b4..ab5f8bb 100644
--- a/lib/fog/ecloud/models/compute/trusted_network_groups.rb
+++ b/lib/fog/ecloud/models/compute/trusted_network_groups.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class TrustedNetworkGroups < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::TrustedNetworkGroup
diff --git a/lib/fog/ecloud/models/compute/users.rb b/lib/fog/ecloud/models/compute/users.rb
index 176d6c6..8661407 100644
--- a/lib/fog/ecloud/models/compute/users.rb
+++ b/lib/fog/ecloud/models/compute/users.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class Users < Fog::Ecloud::Collection
-
         identity :href
 
         model Fog::Compute::Ecloud::User
diff --git a/lib/fog/ecloud/models/compute/virtual_machine_assigned_ips.rb b/lib/fog/ecloud/models/compute/virtual_machine_assigned_ips.rb
index 6c5d5e5..effad0d 100644
--- a/lib/fog/ecloud/models/compute/virtual_machine_assigned_ips.rb
+++ b/lib/fog/ecloud/models/compute/virtual_machine_assigned_ips.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Ecloud
       class VirtualMachineAssignedIps < Fog::Ecloud::Collection
-
         identity :virtual_machine_id
 
         model Fog::Compute::Ecloud::VirtualMachineAssignedIp
diff --git a/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb b/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb
index 5cd20ff..8e8e489 100644
--- a/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb
+++ b/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Real
-
         def authentication_levels_edit(data)
           validate_data([:basic, :sha1, :sha256, :sha512], data)
           body = build_authentication_levels_edit(data)
diff --git a/lib/fog/ecloud/requests/compute/admin_edit_login_banner.rb b/lib/fog/ecloud/requests/compute/admin_edit_login_banner.rb
index b553928..a4d622b 100644
--- a/lib/fog/ecloud/requests/compute/admin_edit_login_banner.rb
+++ b/lib/fog/ecloud/requests/compute/admin_edit_login_banner.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Real
-
         def login_banner_edit(data)
           validate_data([:display], data)
           body = build_login_banner_edit(data)
@@ -18,7 +17,6 @@ module Fog
 
         private
 
-
         def build_login_banner_edit(data)
           xml = Builder::XmlMarkup.new
           xml.LoginBanner do
diff --git a/lib/fog/ecloud/requests/compute/admin_edit_password_complexity_rules.rb b/lib/fog/ecloud/requests/compute/admin_edit_password_complexity_rules.rb
index 9e5fa0d..2a8b43d 100644
--- a/lib/fog/ecloud/requests/compute/admin_edit_password_complexity_rules.rb
+++ b/lib/fog/ecloud/requests/compute/admin_edit_password_complexity_rules.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Real
-
         def password_complexity_rules_edit(data)
           validate_data([:rule_type], data)
           if data[:rule_type] == "Custom"
@@ -22,7 +21,6 @@ module Fog
 
         private
 
-
         def build_password_complexity_rules_edit(data)
           xml = Builder::XmlMarkup.new
           xml.PasswordComplexityRules do
diff --git a/lib/fog/ecloud/requests/compute/backup_internet_service_delete.rb b/lib/fog/ecloud/requests/compute/backup_internet_service_delete.rb
index 2e1c263..b9565ee 100644
--- a/lib/fog/ecloud/requests/compute/backup_internet_service_delete.rb
+++ b/lib/fog/ecloud/requests/compute/backup_internet_service_delete.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :backup_internet_service_delete, 202, 'DELETE'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/compute_pool_edit.rb b/lib/fog/ecloud/requests/compute/compute_pool_edit.rb
index f0a34b4..bc4af18 100644
--- a/lib/fog/ecloud/requests/compute/compute_pool_edit.rb
+++ b/lib/fog/ecloud/requests/compute/compute_pool_edit.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_edit_compute_pool_options(options)
           required_opts = [:name]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -18,7 +17,6 @@ module Fog
       end
 
       class Real
-
         def compute_pool_edit(options)
           validate_edit_compute_pool_options(options)
           body = build_compute_pool_body_edit(options)
diff --git a/lib/fog/ecloud/requests/compute/firewall_acls_create.rb b/lib/fog/ecloud/requests/compute/firewall_acls_create.rb
index 8f814ec..d4c89f8 100644
--- a/lib/fog/ecloud/requests/compute/firewall_acls_create.rb
+++ b/lib/fog/ecloud/requests/compute/firewall_acls_create.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         include Shared
 
diff --git a/lib/fog/ecloud/requests/compute/firewall_acls_delete.rb b/lib/fog/ecloud/requests/compute/firewall_acls_delete.rb
index fd1b072..a0936ca 100644
--- a/lib/fog/ecloud/requests/compute/firewall_acls_delete.rb
+++ b/lib/fog/ecloud/requests/compute/firewall_acls_delete.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :firewall_acls_delete, 202, 'DELETE'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_admin_organization.rb b/lib/fog/ecloud/requests/compute/get_admin_organization.rb
index 4d7fa01..035afdd 100644
--- a/lib/fog/ecloud/requests/compute/get_admin_organization.rb
+++ b/lib/fog/ecloud/requests/compute/get_admin_organization.rb
@@ -1,14 +1,12 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_admin_organization
       end
 
       class Mock
         def get_admin_organization(uri)
-
           organization_id = id_from_uri(uri)
           admin_organization    = self.data[:admin_organizations][organization_id]
 
diff --git a/lib/fog/ecloud/requests/compute/get_api_key.rb b/lib/fog/ecloud/requests/compute/get_api_key.rb
index ed08549..7f7e1c9 100644
--- a/lib/fog/ecloud/requests/compute/get_api_key.rb
+++ b/lib/fog/ecloud/requests/compute/get_api_key.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_api_key
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_api_keys.rb b/lib/fog/ecloud/requests/compute/get_api_keys.rb
index ba89528..62fd395 100644
--- a/lib/fog/ecloud/requests/compute/get_api_keys.rb
+++ b/lib/fog/ecloud/requests/compute/get_api_keys.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_api_keys
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_association.rb b/lib/fog/ecloud/requests/compute/get_association.rb
index 4d32598..5c261e4 100644
--- a/lib/fog/ecloud/requests/compute/get_association.rb
+++ b/lib/fog/ecloud/requests/compute/get_association.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_association
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_associations.rb b/lib/fog/ecloud/requests/compute/get_associations.rb
index c787f41..11b57a3 100644
--- a/lib/fog/ecloud/requests/compute/get_associations.rb
+++ b/lib/fog/ecloud/requests/compute/get_associations.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_associations
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_authentication_level.rb b/lib/fog/ecloud/requests/compute/get_authentication_level.rb
index 3c381a1..4816b58 100644
--- a/lib/fog/ecloud/requests/compute/get_authentication_level.rb
+++ b/lib/fog/ecloud/requests/compute/get_authentication_level.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_authentication_level
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_authentication_levels.rb b/lib/fog/ecloud/requests/compute/get_authentication_levels.rb
index 9d2a121..3f369e9 100644
--- a/lib/fog/ecloud/requests/compute/get_authentication_levels.rb
+++ b/lib/fog/ecloud/requests/compute/get_authentication_levels.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_authentication_levels
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_backup_internet_service.rb b/lib/fog/ecloud/requests/compute/get_backup_internet_service.rb
index 63c8253..1f2a35e 100644
--- a/lib/fog/ecloud/requests/compute/get_backup_internet_service.rb
+++ b/lib/fog/ecloud/requests/compute/get_backup_internet_service.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_backup_internet_service
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_backup_internet_services.rb b/lib/fog/ecloud/requests/compute/get_backup_internet_services.rb
index f3dc0b4..38c9bc2 100644
--- a/lib/fog/ecloud/requests/compute/get_backup_internet_services.rb
+++ b/lib/fog/ecloud/requests/compute/get_backup_internet_services.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_backup_internet_services
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_catalog.rb b/lib/fog/ecloud/requests/compute/get_catalog.rb
index 8c97a00..0aa84ec 100644
--- a/lib/fog/ecloud/requests/compute/get_catalog.rb
+++ b/lib/fog/ecloud/requests/compute/get_catalog.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_catalog
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_catalog_configuration.rb b/lib/fog/ecloud/requests/compute/get_catalog_configuration.rb
index 7aea2df..30407f9 100644
--- a/lib/fog/ecloud/requests/compute/get_catalog_configuration.rb
+++ b/lib/fog/ecloud/requests/compute/get_catalog_configuration.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_catalog_configuration
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_catalog_configurations.rb b/lib/fog/ecloud/requests/compute/get_catalog_configurations.rb
index 43c1d65..63bf0af 100644
--- a/lib/fog/ecloud/requests/compute/get_catalog_configurations.rb
+++ b/lib/fog/ecloud/requests/compute/get_catalog_configurations.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_catalog_configurations
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_catalog_item.rb b/lib/fog/ecloud/requests/compute/get_catalog_item.rb
index a70a584..3361129 100644
--- a/lib/fog/ecloud/requests/compute/get_catalog_item.rb
+++ b/lib/fog/ecloud/requests/compute/get_catalog_item.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_catalog_item
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_compute_pool.rb b/lib/fog/ecloud/requests/compute/get_compute_pool.rb
index 02e97ac..69a7c4f 100644
--- a/lib/fog/ecloud/requests/compute/get_compute_pool.rb
+++ b/lib/fog/ecloud/requests/compute/get_compute_pool.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_compute_pool
       end
diff --git a/lib/fog/ecloud/requests/compute/get_compute_pools.rb b/lib/fog/ecloud/requests/compute/get_compute_pools.rb
index f1be76e..a104dcc 100644
--- a/lib/fog/ecloud/requests/compute/get_compute_pools.rb
+++ b/lib/fog/ecloud/requests/compute/get_compute_pools.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_compute_pools
       end
diff --git a/lib/fog/ecloud/requests/compute/get_cpu_usage_detail.rb b/lib/fog/ecloud/requests/compute/get_cpu_usage_detail.rb
index 6b0e8dd..a3eae7e 100644
--- a/lib/fog/ecloud/requests/compute/get_cpu_usage_detail.rb
+++ b/lib/fog/ecloud/requests/compute/get_cpu_usage_detail.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_cpu_usage_detail
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_cpu_usage_detail_summary.rb b/lib/fog/ecloud/requests/compute/get_cpu_usage_detail_summary.rb
index 6f4e932..945d319 100644
--- a/lib/fog/ecloud/requests/compute/get_cpu_usage_detail_summary.rb
+++ b/lib/fog/ecloud/requests/compute/get_cpu_usage_detail_summary.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_cpu_usage_detail_summary
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_detached_disks.rb b/lib/fog/ecloud/requests/compute/get_detached_disks.rb
index b0ef606..105ee7f 100644
--- a/lib/fog/ecloud/requests/compute/get_detached_disks.rb
+++ b/lib/fog/ecloud/requests/compute/get_detached_disks.rb
@@ -1,14 +1,12 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_detached_disks
       end
 
       class Mock
         def get_detached_disks(uri)
-
           compute_pool_id = id_from_uri(uri)
           compute_pool    = self.data[:compute_pools][compute_pool_id]
 
diff --git a/lib/fog/ecloud/requests/compute/get_environment.rb b/lib/fog/ecloud/requests/compute/get_environment.rb
index 105865c..fa46d1f 100644
--- a/lib/fog/ecloud/requests/compute/get_environment.rb
+++ b/lib/fog/ecloud/requests/compute/get_environment.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_environment
       end
diff --git a/lib/fog/ecloud/requests/compute/get_firewall_acl.rb b/lib/fog/ecloud/requests/compute/get_firewall_acl.rb
index b118948..5271dc9 100644
--- a/lib/fog/ecloud/requests/compute/get_firewall_acl.rb
+++ b/lib/fog/ecloud/requests/compute/get_firewall_acl.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_firewall_acl
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_firewall_acls.rb b/lib/fog/ecloud/requests/compute/get_firewall_acls.rb
index 3254ffc..6135f9c 100644
--- a/lib/fog/ecloud/requests/compute/get_firewall_acls.rb
+++ b/lib/fog/ecloud/requests/compute/get_firewall_acls.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_firewall_acls
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_guest_process.rb b/lib/fog/ecloud/requests/compute/get_guest_process.rb
index fcb7767..f4f631d 100644
--- a/lib/fog/ecloud/requests/compute/get_guest_process.rb
+++ b/lib/fog/ecloud/requests/compute/get_guest_process.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_guest_process
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_guest_processes.rb b/lib/fog/ecloud/requests/compute/get_guest_processes.rb
index b3d1d99..ecd209b 100644
--- a/lib/fog/ecloud/requests/compute/get_guest_processes.rb
+++ b/lib/fog/ecloud/requests/compute/get_guest_processes.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_guest_processes
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb b/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb
index 0b2cd3c..212a0a0 100644
--- a/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb
+++ b/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_hardware_configuration
       end
diff --git a/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb b/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb
index c6ab8e8..a381431 100644
--- a/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb
+++ b/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_hardware_configurations
       end
diff --git a/lib/fog/ecloud/requests/compute/get_internet_service.rb b/lib/fog/ecloud/requests/compute/get_internet_service.rb
index 68397a1..eb28952 100644
--- a/lib/fog/ecloud/requests/compute/get_internet_service.rb
+++ b/lib/fog/ecloud/requests/compute/get_internet_service.rb
@@ -1,14 +1,12 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_internet_service
       end
 
       class Mock
         def get_internet_service(uri)
-
           internet_service_id = id_from_uri(uri)
           internet_service    = self.data[:internet_services][internet_service_id.to_i]
 
diff --git a/lib/fog/ecloud/requests/compute/get_internet_services.rb b/lib/fog/ecloud/requests/compute/get_internet_services.rb
index 93ee777..f39f940 100644
--- a/lib/fog/ecloud/requests/compute/get_internet_services.rb
+++ b/lib/fog/ecloud/requests/compute/get_internet_services.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_internet_services
       end
diff --git a/lib/fog/ecloud/requests/compute/get_ip_address.rb b/lib/fog/ecloud/requests/compute/get_ip_address.rb
index f4ec658..2021216 100644
--- a/lib/fog/ecloud/requests/compute/get_ip_address.rb
+++ b/lib/fog/ecloud/requests/compute/get_ip_address.rb
@@ -1,16 +1,14 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_ip_address
       end
 
 			class Mock
         def get_ip_address(uri)
-
           network_id, ip_address_id = uri.match(/\/networks\/(\d+)\/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/).captures
-          ip_address = self.data[:networks][network_id.to_i][:IpAddresses][:IpAddress].detect{|ip| ip[:name] == ip_address_id }.dup
+          ip_address = self.data[:networks][network_id.to_i][:IpAddresses][:IpAddress].find{|ip| ip[:name] == ip_address_id }.dup
           if ip_address
             response(:body => ip_address)
           else response(:status => 404) # ?
diff --git a/lib/fog/ecloud/requests/compute/get_location.rb b/lib/fog/ecloud/requests/compute/get_location.rb
index 732279e..18e937d 100644
--- a/lib/fog/ecloud/requests/compute/get_location.rb
+++ b/lib/fog/ecloud/requests/compute/get_location.rb
@@ -1,12 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_location
       end
-
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_locations.rb b/lib/fog/ecloud/requests/compute/get_locations.rb
index 4c29ffc..936dc4b 100644
--- a/lib/fog/ecloud/requests/compute/get_locations.rb
+++ b/lib/fog/ecloud/requests/compute/get_locations.rb
@@ -1,12 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_locations
       end
-
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_login_banner.rb b/lib/fog/ecloud/requests/compute/get_login_banner.rb
index 2f24959..d59fd13 100644
--- a/lib/fog/ecloud/requests/compute/get_login_banner.rb
+++ b/lib/fog/ecloud/requests/compute/get_login_banner.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_login_banner
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_login_banners.rb b/lib/fog/ecloud/requests/compute/get_login_banners.rb
index 47d3347..b5e86af 100644
--- a/lib/fog/ecloud/requests/compute/get_login_banners.rb
+++ b/lib/fog/ecloud/requests/compute/get_login_banners.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_login_banners
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_memory_usage_detail.rb b/lib/fog/ecloud/requests/compute/get_memory_usage_detail.rb
index 7a4da5a..faf38f4 100644
--- a/lib/fog/ecloud/requests/compute/get_memory_usage_detail.rb
+++ b/lib/fog/ecloud/requests/compute/get_memory_usage_detail.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_memory_usage_detail
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_memory_usage_detail_summary.rb b/lib/fog/ecloud/requests/compute/get_memory_usage_detail_summary.rb
index 8843d46..3bbab12 100644
--- a/lib/fog/ecloud/requests/compute/get_memory_usage_detail_summary.rb
+++ b/lib/fog/ecloud/requests/compute/get_memory_usage_detail_summary.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_memory_usage_detail_summary
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_monitor.rb b/lib/fog/ecloud/requests/compute/get_monitor.rb
index bcfa76c..3a1ee3e 100644
--- a/lib/fog/ecloud/requests/compute/get_monitor.rb
+++ b/lib/fog/ecloud/requests/compute/get_monitor.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_monitor
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_monitors.rb b/lib/fog/ecloud/requests/compute/get_monitors.rb
index 07b4cc9..8e92d8e 100644
--- a/lib/fog/ecloud/requests/compute/get_monitors.rb
+++ b/lib/fog/ecloud/requests/compute/get_monitors.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_monitors
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_network.rb b/lib/fog/ecloud/requests/compute/get_network.rb
index 5eb94ee..08d5bf7 100644
--- a/lib/fog/ecloud/requests/compute/get_network.rb
+++ b/lib/fog/ecloud/requests/compute/get_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_network
       end
diff --git a/lib/fog/ecloud/requests/compute/get_network_summary.rb b/lib/fog/ecloud/requests/compute/get_network_summary.rb
index 9f85118..fb78e82 100644
--- a/lib/fog/ecloud/requests/compute/get_network_summary.rb
+++ b/lib/fog/ecloud/requests/compute/get_network_summary.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_network_summary
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_networks.rb b/lib/fog/ecloud/requests/compute/get_networks.rb
index 810371e..5f51fe3 100644
--- a/lib/fog/ecloud/requests/compute/get_networks.rb
+++ b/lib/fog/ecloud/requests/compute/get_networks.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_networks
       end
diff --git a/lib/fog/ecloud/requests/compute/get_node.rb b/lib/fog/ecloud/requests/compute/get_node.rb
index c8ac82f..6f59d5b 100644
--- a/lib/fog/ecloud/requests/compute/get_node.rb
+++ b/lib/fog/ecloud/requests/compute/get_node.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_node
       end
diff --git a/lib/fog/ecloud/requests/compute/get_nodes.rb b/lib/fog/ecloud/requests/compute/get_nodes.rb
index 1f7db7c..03e95f6 100644
--- a/lib/fog/ecloud/requests/compute/get_nodes.rb
+++ b/lib/fog/ecloud/requests/compute/get_nodes.rb
@@ -1,14 +1,12 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_nodes
       end
 
       class Mock
         def get_nodes(uri)
-
           internet_service_id = id_from_uri(uri)
           internet_service    = self.data[:internet_services][internet_service_id]
 
diff --git a/lib/fog/ecloud/requests/compute/get_operating_system.rb b/lib/fog/ecloud/requests/compute/get_operating_system.rb
index 9f82d6c..3f8545d 100644
--- a/lib/fog/ecloud/requests/compute/get_operating_system.rb
+++ b/lib/fog/ecloud/requests/compute/get_operating_system.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_operating_system
       end
diff --git a/lib/fog/ecloud/requests/compute/get_operating_system_families.rb b/lib/fog/ecloud/requests/compute/get_operating_system_families.rb
index ddb9878..50c818f 100644
--- a/lib/fog/ecloud/requests/compute/get_operating_system_families.rb
+++ b/lib/fog/ecloud/requests/compute/get_operating_system_families.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_operating_system_families
       end
diff --git a/lib/fog/ecloud/requests/compute/get_organization.rb b/lib/fog/ecloud/requests/compute/get_organization.rb
index 5fba627..fc5a58d 100644
--- a/lib/fog/ecloud/requests/compute/get_organization.rb
+++ b/lib/fog/ecloud/requests/compute/get_organization.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_organization
       end
diff --git a/lib/fog/ecloud/requests/compute/get_password_complexity_rule.rb b/lib/fog/ecloud/requests/compute/get_password_complexity_rule.rb
index 63d4be1..c9d1dcd 100644
--- a/lib/fog/ecloud/requests/compute/get_password_complexity_rule.rb
+++ b/lib/fog/ecloud/requests/compute/get_password_complexity_rule.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_password_complexity_rule
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_password_complexity_rules.rb b/lib/fog/ecloud/requests/compute/get_password_complexity_rules.rb
index e7a7907..e2b2d4d 100644
--- a/lib/fog/ecloud/requests/compute/get_password_complexity_rules.rb
+++ b/lib/fog/ecloud/requests/compute/get_password_complexity_rules.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_password_complexity_rules
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_physical_device.rb b/lib/fog/ecloud/requests/compute/get_physical_device.rb
index 91cae1c..0b58f0c 100644
--- a/lib/fog/ecloud/requests/compute/get_physical_device.rb
+++ b/lib/fog/ecloud/requests/compute/get_physical_device.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_physical_device
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_physical_devices.rb b/lib/fog/ecloud/requests/compute/get_physical_devices.rb
index 96aec66..9df37b1 100644
--- a/lib/fog/ecloud/requests/compute/get_physical_devices.rb
+++ b/lib/fog/ecloud/requests/compute/get_physical_devices.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_physical_devices
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_process.rb b/lib/fog/ecloud/requests/compute/get_process.rb
index e34a99f..add7e0d 100644
--- a/lib/fog/ecloud/requests/compute/get_process.rb
+++ b/lib/fog/ecloud/requests/compute/get_process.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_process
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_processes.rb b/lib/fog/ecloud/requests/compute/get_processes.rb
index 6557871..c05857c 100644
--- a/lib/fog/ecloud/requests/compute/get_processes.rb
+++ b/lib/fog/ecloud/requests/compute/get_processes.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_processes
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_public_ips.rb b/lib/fog/ecloud/requests/compute/get_public_ips.rb
index bff5940..61bcdbe 100644
--- a/lib/fog/ecloud/requests/compute/get_public_ips.rb
+++ b/lib/fog/ecloud/requests/compute/get_public_ips.rb
@@ -1,14 +1,12 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_public_ips
       end
 
       class Mock
         def get_public_ips(uri)
-
           environment_id = id_from_uri(uri)
           environment    = self.data[:environments][environment_id]
 
diff --git a/lib/fog/ecloud/requests/compute/get_rnat.rb b/lib/fog/ecloud/requests/compute/get_rnat.rb
index 0ce034b..4c99940 100644
--- a/lib/fog/ecloud/requests/compute/get_rnat.rb
+++ b/lib/fog/ecloud/requests/compute/get_rnat.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_rnat
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_rnats.rb b/lib/fog/ecloud/requests/compute/get_rnats.rb
index b3348a0..85edc26 100644
--- a/lib/fog/ecloud/requests/compute/get_rnats.rb
+++ b/lib/fog/ecloud/requests/compute/get_rnats.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_rnats
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_role.rb b/lib/fog/ecloud/requests/compute/get_role.rb
index 3f3e184..198e81d 100644
--- a/lib/fog/ecloud/requests/compute/get_role.rb
+++ b/lib/fog/ecloud/requests/compute/get_role.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_role
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_roles.rb b/lib/fog/ecloud/requests/compute/get_roles.rb
index 1a32e83..aa8b92c 100644
--- a/lib/fog/ecloud/requests/compute/get_roles.rb
+++ b/lib/fog/ecloud/requests/compute/get_roles.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_roles
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_server.rb b/lib/fog/ecloud/requests/compute/get_server.rb
index e21579a..df709a7 100644
--- a/lib/fog/ecloud/requests/compute/get_server.rb
+++ b/lib/fog/ecloud/requests/compute/get_server.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_server
       end
diff --git a/lib/fog/ecloud/requests/compute/get_server_configuration_option.rb b/lib/fog/ecloud/requests/compute/get_server_configuration_option.rb
index a807855..c1c9411 100644
--- a/lib/fog/ecloud/requests/compute/get_server_configuration_option.rb
+++ b/lib/fog/ecloud/requests/compute/get_server_configuration_option.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_server_configuration_option
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_server_configuration_options.rb b/lib/fog/ecloud/requests/compute/get_server_configuration_options.rb
index 1b733e4..7047e3e 100644
--- a/lib/fog/ecloud/requests/compute/get_server_configuration_options.rb
+++ b/lib/fog/ecloud/requests/compute/get_server_configuration_options.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_server_configuration_options
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_ssh_key.rb b/lib/fog/ecloud/requests/compute/get_ssh_key.rb
index 7543c98..805ec1d 100644
--- a/lib/fog/ecloud/requests/compute/get_ssh_key.rb
+++ b/lib/fog/ecloud/requests/compute/get_ssh_key.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_ssh_key
       end
diff --git a/lib/fog/ecloud/requests/compute/get_ssh_keys.rb b/lib/fog/ecloud/requests/compute/get_ssh_keys.rb
index 2c61114..a641f78 100644
--- a/lib/fog/ecloud/requests/compute/get_ssh_keys.rb
+++ b/lib/fog/ecloud/requests/compute/get_ssh_keys.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_ssh_keys
       end
diff --git a/lib/fog/ecloud/requests/compute/get_storage_usage_detail.rb b/lib/fog/ecloud/requests/compute/get_storage_usage_detail.rb
index 2fe2609..62b4802 100644
--- a/lib/fog/ecloud/requests/compute/get_storage_usage_detail.rb
+++ b/lib/fog/ecloud/requests/compute/get_storage_usage_detail.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_storage_usage_detail
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_storage_usage_detail_summary.rb b/lib/fog/ecloud/requests/compute/get_storage_usage_detail_summary.rb
index 3f5836e..ab4b458 100644
--- a/lib/fog/ecloud/requests/compute/get_storage_usage_detail_summary.rb
+++ b/lib/fog/ecloud/requests/compute/get_storage_usage_detail_summary.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_storage_usage_detail_summary
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_support_ticket.rb b/lib/fog/ecloud/requests/compute/get_support_ticket.rb
index 8613475..5f7b845 100644
--- a/lib/fog/ecloud/requests/compute/get_support_ticket.rb
+++ b/lib/fog/ecloud/requests/compute/get_support_ticket.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_support_ticket
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_support_tickets.rb b/lib/fog/ecloud/requests/compute/get_support_tickets.rb
index 29232a1..7685060 100644
--- a/lib/fog/ecloud/requests/compute/get_support_tickets.rb
+++ b/lib/fog/ecloud/requests/compute/get_support_tickets.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_support_tickets
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_tag.rb b/lib/fog/ecloud/requests/compute/get_tag.rb
index d830d8f..62d8fc7 100644
--- a/lib/fog/ecloud/requests/compute/get_tag.rb
+++ b/lib/fog/ecloud/requests/compute/get_tag.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_tag
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_tags.rb b/lib/fog/ecloud/requests/compute/get_tags.rb
index ea54d5f..22c96ff 100644
--- a/lib/fog/ecloud/requests/compute/get_tags.rb
+++ b/lib/fog/ecloud/requests/compute/get_tags.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_tags
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_tasks.rb b/lib/fog/ecloud/requests/compute/get_tasks.rb
index f8e0150..85f58fc 100644
--- a/lib/fog/ecloud/requests/compute/get_tasks.rb
+++ b/lib/fog/ecloud/requests/compute/get_tasks.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_tasks
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_template.rb b/lib/fog/ecloud/requests/compute/get_template.rb
index 89ef024..cfaf56a 100644
--- a/lib/fog/ecloud/requests/compute/get_template.rb
+++ b/lib/fog/ecloud/requests/compute/get_template.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_template
       end
diff --git a/lib/fog/ecloud/requests/compute/get_templates.rb b/lib/fog/ecloud/requests/compute/get_templates.rb
index ef44b3c..87b6360 100644
--- a/lib/fog/ecloud/requests/compute/get_templates.rb
+++ b/lib/fog/ecloud/requests/compute/get_templates.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_templates
       end
diff --git a/lib/fog/ecloud/requests/compute/get_trusted_network_group.rb b/lib/fog/ecloud/requests/compute/get_trusted_network_group.rb
index 2396910..509e7e1 100644
--- a/lib/fog/ecloud/requests/compute/get_trusted_network_group.rb
+++ b/lib/fog/ecloud/requests/compute/get_trusted_network_group.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_trusted_network_group
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_trusted_network_groups.rb b/lib/fog/ecloud/requests/compute/get_trusted_network_groups.rb
index 60e5bf7..0ef7be2 100644
--- a/lib/fog/ecloud/requests/compute/get_trusted_network_groups.rb
+++ b/lib/fog/ecloud/requests/compute/get_trusted_network_groups.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_trusted_network_groups
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_user.rb b/lib/fog/ecloud/requests/compute/get_user.rb
index 2eb486f..ab17561 100644
--- a/lib/fog/ecloud/requests/compute/get_user.rb
+++ b/lib/fog/ecloud/requests/compute/get_user.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_user
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_users.rb b/lib/fog/ecloud/requests/compute/get_users.rb
index eb3f0ac..42f6201 100644
--- a/lib/fog/ecloud/requests/compute/get_users.rb
+++ b/lib/fog/ecloud/requests/compute/get_users.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :get_users
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/get_virtual_machine_assigned_ips.rb b/lib/fog/ecloud/requests/compute/get_virtual_machine_assigned_ips.rb
index 994185e..cf155e3 100644
--- a/lib/fog/ecloud/requests/compute/get_virtual_machine_assigned_ips.rb
+++ b/lib/fog/ecloud/requests/compute/get_virtual_machine_assigned_ips.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         def get_virtual_machine_assigned_ips(virtual_machine_id)
           request(
@@ -21,7 +20,6 @@ module Fog
           networks = self.data[:networks].values.select{|n| n[:environment_id] == environment_id}
           networks = networks.map{|n| deep_copy(Fog::Ecloud.slice(n, :environment, :id))}
 
-
           networks.each do |network|
             address = network[:IpAddresses][:IpAddress].map{|ia| ia[:name]}
             network[:IpAddresses][:IpAddress] = address.first
diff --git a/lib/fog/ecloud/requests/compute/groups_movedown.rb b/lib/fog/ecloud/requests/compute/groups_movedown.rb
index 4e4bbdf..7d58767 100644
--- a/lib/fog/ecloud/requests/compute/groups_movedown.rb
+++ b/lib/fog/ecloud/requests/compute/groups_movedown.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :groups_movedown, 204, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/groups_moveup.rb b/lib/fog/ecloud/requests/compute/groups_moveup.rb
index 03c01e4..3b6db62 100644
--- a/lib/fog/ecloud/requests/compute/groups_moveup.rb
+++ b/lib/fog/ecloud/requests/compute/groups_moveup.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :groups_moveup, 204, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/internet_service_create.rb b/lib/fog/ecloud/requests/compute/internet_service_create.rb
index 9fccd41..ef30e50 100644
--- a/lib/fog/ecloud/requests/compute/internet_service_create.rb
+++ b/lib/fog/ecloud/requests/compute/internet_service_create.rb
@@ -4,7 +4,7 @@ module Fog
       module Shared
         def validate_internet_service_data(service_data)
           required_opts = [:name, :protocol, :port, :description, :enabled, :persistence]
-          unless required_opts.all? { |opt| service_data.has_key?(opt) }
+          unless required_opts.all? { |opt| service_data.key?(opt) }
             raise ArgumentError.new("Required Internet Service data missing: #{(required_opts - service_data.keys).map(&:inspect).join(", ")}")
           end
           if service_data[:trusted_network_group]
diff --git a/lib/fog/ecloud/requests/compute/internet_service_delete.rb b/lib/fog/ecloud/requests/compute/internet_service_delete.rb
index 5141037..6a6775b 100644
--- a/lib/fog/ecloud/requests/compute/internet_service_delete.rb
+++ b/lib/fog/ecloud/requests/compute/internet_service_delete.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :internet_service_delete, 202, 'DELETE'
       end
diff --git a/lib/fog/ecloud/requests/compute/internet_service_edit.rb b/lib/fog/ecloud/requests/compute/internet_service_edit.rb
index 5692c2f..ab9fe1e 100644
--- a/lib/fog/ecloud/requests/compute/internet_service_edit.rb
+++ b/lib/fog/ecloud/requests/compute/internet_service_edit.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_edit_internet_service_options(options)
           required_opts = [:name, :enabled, :persistence]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
           raise ArgumentError.new("Required data missing: #{:persistence[:type]}") unless options[:persistence][:type]
@@ -41,7 +40,6 @@ module Fog
       end
 
       class Real
-
         def node_service_edit(options)
           validate_edit_node_service_options(options)
           body = build_node_service_body_edit(options)
diff --git a/lib/fog/ecloud/requests/compute/monitors_create_default.rb b/lib/fog/ecloud/requests/compute/monitors_create_default.rb
index 31283dd..2c5932f 100644
--- a/lib/fog/ecloud/requests/compute/monitors_create_default.rb
+++ b/lib/fog/ecloud/requests/compute/monitors_create_default.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :monitors_create_default, 201, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/monitors_create_loopback.rb b/lib/fog/ecloud/requests/compute/monitors_create_loopback.rb
index e47fc9e..b728530 100644
--- a/lib/fog/ecloud/requests/compute/monitors_create_loopback.rb
+++ b/lib/fog/ecloud/requests/compute/monitors_create_loopback.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :monitors_create_loopback, 201, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/monitors_disable.rb b/lib/fog/ecloud/requests/compute/monitors_disable.rb
index eb95c56..fff7209 100644
--- a/lib/fog/ecloud/requests/compute/monitors_disable.rb
+++ b/lib/fog/ecloud/requests/compute/monitors_disable.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :monitors_disable, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/monitors_enable.rb b/lib/fog/ecloud/requests/compute/monitors_enable.rb
index 2bf4c20..1f01244 100644
--- a/lib/fog/ecloud/requests/compute/monitors_enable.rb
+++ b/lib/fog/ecloud/requests/compute/monitors_enable.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :monitors_enable, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/node_service_create.rb b/lib/fog/ecloud/requests/compute/node_service_create.rb
index 9adabde..6ce4ad7 100644
--- a/lib/fog/ecloud/requests/compute/node_service_create.rb
+++ b/lib/fog/ecloud/requests/compute/node_service_create.rb
@@ -4,7 +4,7 @@ module Fog
       module Shared
         def validate_node_service_data(service_data)
           required_opts = [:name, :port, :enabled, :ip_address]
-          unless required_opts.all? { |opt| service_data.has_key?(opt) }
+          unless required_opts.all? { |opt| service_data.key?(opt) }
             raise ArgumentError.new("Required Internet Service data missing: #{(required_opts - service_data.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -51,7 +51,7 @@ module Fog
           network = self.data[:networks][network_id.to_i]
           ip_addresses = network[:IpAddresses][:IpAddress]
           ip_addresses = ip_addresses.is_a?(Array) ? ip_addresses : [ip_addresses]
-          ip_address = ip_addresses.detect { |ip| ip[:name] == ip_address_name }
+          ip_address = ip_addresses.find { |ip| ip[:name] == ip_address_name }
 
           service_id   = Fog::Mock.random_numbers(6).to_i
           service = {
diff --git a/lib/fog/ecloud/requests/compute/node_service_delete.rb b/lib/fog/ecloud/requests/compute/node_service_delete.rb
index 364a5ee..b9437b1 100644
--- a/lib/fog/ecloud/requests/compute/node_service_delete.rb
+++ b/lib/fog/ecloud/requests/compute/node_service_delete.rb
@@ -1,14 +1,12 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :node_service_delete, 202, 'DELETE'
       end
 
       class Mock
         def node_service_delete(uri)
-
           service_id = id_from_uri(uri)
 
           service = self.data[:node_services][service_id].dup
diff --git a/lib/fog/ecloud/requests/compute/node_service_edit.rb b/lib/fog/ecloud/requests/compute/node_service_edit.rb
index 93f7985..ddb3011 100644
--- a/lib/fog/ecloud/requests/compute/node_service_edit.rb
+++ b/lib/fog/ecloud/requests/compute/node_service_edit.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_edit_node_service_options(options)
           required_opts = [:name, :enabled]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -22,7 +21,6 @@ module Fog
       end
 
       class Real
-
         def node_service_edit(options)
           validate_edit_node_service_options(options)
           body = build_node_service_body_edit(options)
diff --git a/lib/fog/ecloud/requests/compute/power_off.rb b/lib/fog/ecloud/requests/compute/power_off.rb
index 304bab8..2254481 100644
--- a/lib/fog/ecloud/requests/compute/power_off.rb
+++ b/lib/fog/ecloud/requests/compute/power_off.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :power_off, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/power_on.rb b/lib/fog/ecloud/requests/compute/power_on.rb
index b79ff20..920351c 100644
--- a/lib/fog/ecloud/requests/compute/power_on.rb
+++ b/lib/fog/ecloud/requests/compute/power_on.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :power_on, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/power_reset.rb b/lib/fog/ecloud/requests/compute/power_reset.rb
index c0590ca..934333e 100644
--- a/lib/fog/ecloud/requests/compute/power_reset.rb
+++ b/lib/fog/ecloud/requests/compute/power_reset.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :power_reset, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/power_shutdown.rb b/lib/fog/ecloud/requests/compute/power_shutdown.rb
index 2fc249c..5ea0625 100644
--- a/lib/fog/ecloud/requests/compute/power_shutdown.rb
+++ b/lib/fog/ecloud/requests/compute/power_shutdown.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :power_shutdown, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/public_ip_activate.rb b/lib/fog/ecloud/requests/compute/public_ip_activate.rb
index b4c6c1f..1701555 100644
--- a/lib/fog/ecloud/requests/compute/public_ip_activate.rb
+++ b/lib/fog/ecloud/requests/compute/public_ip_activate.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :public_ip_activate, 201, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/rows_movedown.rb b/lib/fog/ecloud/requests/compute/rows_movedown.rb
index 796ea1b..1332bd8 100644
--- a/lib/fog/ecloud/requests/compute/rows_movedown.rb
+++ b/lib/fog/ecloud/requests/compute/rows_movedown.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :rows_movedown, 204, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/rows_moveup.rb b/lib/fog/ecloud/requests/compute/rows_moveup.rb
index 8ebdc82..99c2b31 100644
--- a/lib/fog/ecloud/requests/compute/rows_moveup.rb
+++ b/lib/fog/ecloud/requests/compute/rows_moveup.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :rows_moveup, 204, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/trusted_network_groups_create.rb b/lib/fog/ecloud/requests/compute/trusted_network_groups_create.rb
index 9b1f2b3..7836410 100644
--- a/lib/fog/ecloud/requests/compute/trusted_network_groups_create.rb
+++ b/lib/fog/ecloud/requests/compute/trusted_network_groups_create.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         include Shared
 
@@ -11,7 +10,6 @@ module Fog
             raise ArgumentError.new("Required data missing: Either hosts or networks must be present")
           end
 
-
           request(
             :body => generate_create_trusted_network_groups_request(data),
             :expects => 201,
diff --git a/lib/fog/ecloud/requests/compute/trusted_network_groups_delete.rb b/lib/fog/ecloud/requests/compute/trusted_network_groups_delete.rb
index 9973fc9..8d7cc82 100644
--- a/lib/fog/ecloud/requests/compute/trusted_network_groups_delete.rb
+++ b/lib/fog/ecloud/requests/compute/trusted_network_groups_delete.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         basic_request :trusted_network_groups_delete, 202, 'DELETE'
       end
-
     end
   end
 end
diff --git a/lib/fog/ecloud/requests/compute/trusted_network_groups_edit.rb b/lib/fog/ecloud/requests/compute/trusted_network_groups_edit.rb
index 80fa435..5a9e064 100644
--- a/lib/fog/ecloud/requests/compute/trusted_network_groups_edit.rb
+++ b/lib/fog/ecloud/requests/compute/trusted_network_groups_edit.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ecloud
-
       class Real
         include Shared
 
@@ -11,7 +10,6 @@ module Fog
             raise ArgumentError.new("Required data missing: Either hosts or networks must be present")
           end
 
-
           request(
             :body => generate_edit_trusted_network_groups_request(data),
             :expects => 202,
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_attach_disk.rb b/lib/fog/ecloud/requests/compute/virtual_machine_attach_disk.rb
index 3188671..5733727 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_attach_disk.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_attach_disk.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def build_request_body_attach_disk(options)
           xml = Builder::XmlMarkup.new
           xml.AttachDisks(:name => options[:name]) do
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_copy.rb b/lib/fog/ecloud/requests/compute/virtual_machine_copy.rb
index 0b79dad..0cc06d4 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_copy.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_copy.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_create_server_options_copy(template_uri, options)
           required_opts = [:name, :cpus, :memory, :row, :group, :customization, :network_uri, :source]
           if options[:customization] == :windows
@@ -10,7 +9,7 @@ module Fog
           else
             required_opts.push(:ssh_key_uri)
           end
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
 
@@ -99,7 +98,6 @@ module Fog
       end
 
       class Real
-
         def virtual_machine_copy(template_uri, options)
           options = validate_create_server_options_copy(template_uri, options)
           body = build_request_body_copy(options)
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_copy_identical.rb b/lib/fog/ecloud/requests/compute/virtual_machine_copy_identical.rb
index c1698b7..d47a024 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_copy_identical.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_copy_identical.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_create_server_options_identical(template_uri, options)
           required_opts = [:name, :row, :group, :source]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
 
@@ -26,7 +25,6 @@ module Fog
       end
 
       class Real
-
         def virtual_machine_copy_identical(template_uri, options)
           options = validate_create_server_options_identical(template_uri, options)
           body = build_request_body_identical(options)
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb b/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb
index a4d4d3a..dd0df55 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_create_server_options(template_uri, options)
           required_opts = [:name, :cpus, :memory, :row, :group, :customization, :network_uri]
           if options[:customization] == :windows
@@ -10,7 +9,7 @@ module Fog
           else
             required_opts.push(:ssh_key_uri)
           end
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
 
@@ -137,7 +136,7 @@ module Fog
           networks.each do |network|
             links << Fog::Ecloud.keep(network, :name, :href, :type)
             network_id = id_from_uri(network[:href])
-            ip = self.data[:networks][network_id][:IpAddresses][:IpAddress].detect { |ip| ip[:id] = network[:ip] }
+            ip = self.data[:networks][network_id][:IpAddresses][:IpAddress].find { |ip| ip[:id] = network[:ip] }
             ip[:DetectedOn] = {:href => "/cloudapi/ecloud/networkhosts/#{server_id}", :name => options[:name], :type => "application/vnd.tmrk.cloud.networkHost"}
             ip[:Host]       = {:href => "/cloudapi/ecloud/networkhosts/#{server_id}", :name => options[:name], :type => "application/vnd.tmrk.cloud.networkHost"}
           end
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_detach_disk.rb b/lib/fog/ecloud/requests/compute/virtual_machine_detach_disk.rb
index df6d62d..e274821 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_detach_disk.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_detach_disk.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def build_request_body_detach_disk(options)
           xml = Builder::XmlMarkup.new
           xml.DetachDisk(:name => options[:name]) do
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_edit.rb b/lib/fog/ecloud/requests/compute/virtual_machine_edit.rb
index ccab5f2..de08b70 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_edit.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_edit.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_edit_server_options(options)
           required_opts = [:name]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -28,7 +27,6 @@ module Fog
       end
 
       class Real
-
         def virtual_machine_edit(vm_uri, options)
           validate_edit_server_options(options)
           body = build_request_body_edit(options)
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_edit_assigned_ips.rb b/lib/fog/ecloud/requests/compute/virtual_machine_edit_assigned_ips.rb
index 510ae76..e0120b1 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_edit_assigned_ips.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_edit_assigned_ips.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def build_request_body_edit_assigned_ips(networks)
           xml = Builder::XmlMarkup.new
           xml.AssignedIpAddresses do
@@ -22,7 +21,6 @@ module Fog
       end
 
       class Real
-
         def virtual_machine_edit_assigned_ips(href, options)
           body = build_request_body_edit_assigned_ips(options)
           request(
@@ -45,7 +43,7 @@ module Fog
             network        = self.data[:networks][network_id]
             options.each.each do |net|
               net[:ips].each do |ip|
-                ip = network[:IpAddresses][:IpAddress].detect { |iph| iph[:name] == ip }
+                ip = network[:IpAddresses][:IpAddress].find { |iph| iph[:name] == ip }
                 ip[:Host] = {
                   :href => "/clouapi/ecloud/networkhosts/#{server_id}",
                   :name => server[:name],
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb b/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb
index 0973ccd..02d503c 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Ecloud
       class Real
-
         def virtual_machine_edit_hardware_configuration(vm_uri, data)
           validate_data([:cpus, :memory, :disks, :nics], data)
           body = build_request_body_edit_hardware_configuration(data)
@@ -51,7 +50,6 @@ module Fog
 
       class Mock
         def virtual_machine_edit_hardware_configuration(vm_uri, data)
-
           server_id = vm_uri.match(/(\d+)/)[1]
 
           server  = self.data[:servers][server_id.to_i]
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_import.rb b/lib/fog/ecloud/requests/compute/virtual_machine_import.rb
index aa2e440..64ad7d1 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_import.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_import.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_import_server_options(template_uri, options)
           required_opts = [:name, :cpus, :memory, :row, :group, :network_uri, :catalog_network_name]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
 
@@ -48,7 +47,6 @@ module Fog
       end
 
       class Real
-
         def virtual_machine_import(template_uri, options)
           options = validate_import_server_options(template_uri, options)
 
diff --git a/lib/fog/ecloud/requests/compute/virtual_machine_upload_file.rb b/lib/fog/ecloud/requests/compute/virtual_machine_upload_file.rb
index 1163330..ed57cae 100644
--- a/lib/fog/ecloud/requests/compute/virtual_machine_upload_file.rb
+++ b/lib/fog/ecloud/requests/compute/virtual_machine_upload_file.rb
@@ -2,18 +2,15 @@ module Fog
   module Compute
     class Ecloud
       module Shared
-
         def validate_upload_file_options(options)
           required_opts = [:file, :path, :credentials]
-          unless required_opts.all? { |opt| options.has_key?(opt) }
+          unless required_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
           end
         end
-
       end
 
       class Real
-
         def virtual_machine_upload_file(vm_uri, options)
           validate_upload_file_options(options)
           request(
diff --git a/lib/fog/fogdocker.rb b/lib/fog/fogdocker.rb
index 155d67e..842a8f6 100644
--- a/lib/fog/fogdocker.rb
+++ b/lib/fog/fogdocker.rb
@@ -1 +1 @@
-require 'fog/fogdocker/compute'
\ No newline at end of file
+require 'fog/fogdocker/compute'
diff --git a/lib/fog/fogdocker/compute.rb b/lib/fog/fogdocker/compute.rb
index 673811c..1c0cee4 100644
--- a/lib/fog/fogdocker/compute.rb
+++ b/lib/fog/fogdocker/compute.rb
@@ -3,7 +3,6 @@ require 'fog/fogdocker/core'
 module Fog
   module Compute
     class Fogdocker < Fog::Service
-
       requires   :docker_url
       recognizes :docker_username, :docker_password, :docker_email
 
@@ -33,7 +32,6 @@ module Fog
       end
 
       class Real
-
         def initialize(options={})
           require 'docker'
           username = options[:docker_username]
@@ -47,13 +45,12 @@ module Fog
 
         def downcase_hash_keys(hash, k = [])
           return {k.join('_').gsub(/([a-z])([A-Z])/,'\1_\2').downcase => hash} unless hash.is_a?(Hash)
-          hash.inject({}){ |h, v| h.merge! downcase_hash_keys(v[-1], k + [v[0]]) }
+          hash.reduce({}){ |h, v| h.merge! downcase_hash_keys(v[-1], k + [v[0]]) }
         end
 
         def camelize_hash_keys(hash)
           Hash[ hash.map {|k, v| [k.to_s.split('_').map {|w| w.capitalize}.join, v] }]
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/core.rb b/lib/fog/fogdocker/core.rb
index 16e1364..2594306 100644
--- a/lib/fog/fogdocker/core.rb
+++ b/lib/fog/fogdocker/core.rb
@@ -2,7 +2,6 @@ require 'fog/core'
 
 module Fog
   module Fogdocker
-
     extend Fog::Provider
 
     module Errors
@@ -12,6 +11,5 @@ module Fog
     end
 
     service(:compute, 'Compute')
-
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/fogdocker/models/compute/image.rb b/lib/fog/fogdocker/models/compute/image.rb
index 6842e37..f25f66a 100644
--- a/lib/fog/fogdocker/models/compute/image.rb
+++ b/lib/fog/fogdocker/models/compute/image.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Fogdocker
-
       class Image < Fog::Model
-
         identity :id
 
         attr_accessor :info
@@ -33,9 +31,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/fogdocker/models/compute/images.rb b/lib/fog/fogdocker/models/compute/images.rb
index edaf4b0..2eff664 100644
--- a/lib/fog/fogdocker/models/compute/images.rb
+++ b/lib/fog/fogdocker/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/fogdocker/models/compute/image'
 module Fog
   module Compute
     class Fogdocker
-
       class Images < Fog::Collection
-
         model Fog::Compute::Fogdocker::Image
 
         def all(filters = {})
@@ -16,7 +14,6 @@ module Fog
         def get(id)
           new service.image_get(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/models/compute/server.rb b/lib/fog/fogdocker/models/compute/server.rb
index d562bf2..6a5faf0 100644
--- a/lib/fog/fogdocker/models/compute/server.rb
+++ b/lib/fog/fogdocker/models/compute/server.rb
@@ -5,7 +5,6 @@ module Fog
     class Fogdocker
       # fog server is a docker container
       class Server < Fog::Compute::Server
-
         identity :id
 
         attr_accessor :info
@@ -128,9 +127,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/fogdocker/models/compute/servers.rb b/lib/fog/fogdocker/models/compute/servers.rb
index 990aa12..79612fa 100644
--- a/lib/fog/fogdocker/models/compute/servers.rb
+++ b/lib/fog/fogdocker/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/fogdocker/models/compute/server'
 module Fog
   module Compute
     class Fogdocker
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Fogdocker::Server
 
         def all(filters = {})
@@ -21,7 +19,6 @@ module Fog
           server = create(new_attributes)
           server
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/api_version.rb b/lib/fog/fogdocker/requests/compute/api_version.rb
index d75f1f2..2054579 100644
--- a/lib/fog/fogdocker/requests/compute/api_version.rb
+++ b/lib/fog/fogdocker/requests/compute/api_version.rb
@@ -13,4 +13,4 @@ module Fog
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/fogdocker/requests/compute/container_action.rb b/lib/fog/fogdocker/requests/compute/container_action.rb
index a0c0637..c4d8c15 100644
--- a/lib/fog/fogdocker/requests/compute/container_action.rb
+++ b/lib/fog/fogdocker/requests/compute/container_action.rb
@@ -2,24 +2,20 @@ module Fog
   module Compute
     class Fogdocker
       class Real
-
         def container_action(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
-          raise ArgumentError, "action is a required parameter" unless options.has_key? :action
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
+          raise ArgumentError, "action is a required parameter" unless options.key? :action
           container = Docker::Container.get(options[:id])
           downcase_hash_keys container.send(options[:action]).json
         end
-
       end
 
       class Mock
-
         def container_action(options = {})
-          raise ArgumentError, "id is a required parameter" unless options.has_key? :id
-          raise ArgumentError, "action is a required parameter" unless options.has_key? :action
+          raise ArgumentError, "id is a required parameter" unless options.key? :id
+          raise ArgumentError, "action is a required parameter" unless options.key? :action
           {'id' => 'a6b02c7ca29a22619f7d0e59062323247739bc0cd375d619f305f0b519af4ef3','state_running' => false}
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/container_all.rb b/lib/fog/fogdocker/requests/compute/container_all.rb
index 4440d99..145cdef 100644
--- a/lib/fog/fogdocker/requests/compute/container_all.rb
+++ b/lib/fog/fogdocker/requests/compute/container_all.rb
@@ -13,7 +13,6 @@ module Fog
             downcase_hash_keys(container.json)
           end
         end
-
       end
       class Mock
         def container_all(filters = {})
diff --git a/lib/fog/fogdocker/requests/compute/container_commit.rb b/lib/fog/fogdocker/requests/compute/container_commit.rb
index 495a055..2d1b830 100644
--- a/lib/fog/fogdocker/requests/compute/container_commit.rb
+++ b/lib/fog/fogdocker/requests/compute/container_commit.rb
@@ -3,7 +3,7 @@ module Fog
     class Fogdocker
       class Real
         def container_commit(options)
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           container = Docker::Container.get(options[:id])
           downcase_hash_keys container.commit(camelize_hash_keys(options)).json
         end
@@ -16,7 +16,6 @@ module Fog
            'created' => 1389877693,
            'size' => 3265536}
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/container_create.rb b/lib/fog/fogdocker/requests/compute/container_create.rb
index c8a78f1..9b1d871 100644
--- a/lib/fog/fogdocker/requests/compute/container_create.rb
+++ b/lib/fog/fogdocker/requests/compute/container_create.rb
@@ -46,7 +46,6 @@ module Fog
            'names'      =>  ['/boring_engelbert']
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/container_delete.rb b/lib/fog/fogdocker/requests/compute/container_delete.rb
index 3dd859c..8526524 100644
--- a/lib/fog/fogdocker/requests/compute/container_delete.rb
+++ b/lib/fog/fogdocker/requests/compute/container_delete.rb
@@ -2,22 +2,19 @@ module Fog
   module Compute
     class Fogdocker
       class Real
-
         def container_delete(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           container = Docker::Container.get(options[:id])
           container.delete()
           true
         end
-
       end
 
       class Mock
         def container_delete(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/container_get.rb b/lib/fog/fogdocker/requests/compute/container_get.rb
index e5f25c0..5f1e9f0 100644
--- a/lib/fog/fogdocker/requests/compute/container_get.rb
+++ b/lib/fog/fogdocker/requests/compute/container_get.rb
@@ -5,7 +5,6 @@ module Fog
         def container_get(id)
           downcase_hash_keys Docker::Container.get(id).json
         end
-
       end
       class Mock
         def container_get(id)
diff --git a/lib/fog/fogdocker/requests/compute/image_create.rb b/lib/fog/fogdocker/requests/compute/image_create.rb
index 8c7a7a1..d2fd3fb 100644
--- a/lib/fog/fogdocker/requests/compute/image_create.rb
+++ b/lib/fog/fogdocker/requests/compute/image_create.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Fogdocker
-
       class Real
         def image_create(attrs)
           downcase_hash_keys Docker::Image.create(attrs).json
@@ -12,7 +11,6 @@ module Fog
         def image_create(attrs)
           {'id'=>'a6b02c7ca29a22619f7d0e59062323247739bc0cd375d619f305f0b519af4ef2'}
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/image_delete.rb b/lib/fog/fogdocker/requests/compute/image_delete.rb
index 4f8f6c6..d5038f7 100644
--- a/lib/fog/fogdocker/requests/compute/image_delete.rb
+++ b/lib/fog/fogdocker/requests/compute/image_delete.rb
@@ -2,21 +2,18 @@ module Fog
   module Compute
     class Fogdocker
       class Real
-
         def image_delete(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           image = Docker::Image.get(options[:id])
           image.remove()
         end
-
       end
 
       class Mock
         def image_delete(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           "[{'Deleted':'b15c1423ba157d0f7ac83cba178390c421bb8d536e7e7857580fc10f2d53e1b9'}]"
         end
-
       end
     end
   end
diff --git a/lib/fog/fogdocker/requests/compute/image_get.rb b/lib/fog/fogdocker/requests/compute/image_get.rb
index fde3fe8..a03626c 100644
--- a/lib/fog/fogdocker/requests/compute/image_get.rb
+++ b/lib/fog/fogdocker/requests/compute/image_get.rb
@@ -5,7 +5,6 @@ module Fog
         def image_get(id)
           downcase_hash_keys Docker::Image.get(id).json
         end
-
       end
       class Mock
         def image_get(id)
@@ -17,4 +16,4 @@ module Fog
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/fog/glesys/compute.rb b/lib/fog/glesys/compute.rb
index 0b79973..e5cbba6 100644
--- a/lib/fog/glesys/compute.rb
+++ b/lib/fog/glesys/compute.rb
@@ -3,7 +3,6 @@ require 'fog/glesys/core'
 module Fog
   module Compute
     class Glesys < Fog::Service
-
       requires :glesys_username, :glesys_api_key
 
       API_URL = "https://api.glesys.com"
@@ -40,9 +39,7 @@ module Fog
       request :ip_add
       request :ip_remove
 
-
       class Mock
-
         def initialize(options={})
           @api_url            = options[:glesys_api_url] || API_URL
           @glesys_username    = options[:glesys_username]
@@ -66,11 +63,9 @@ module Fog
         def reset_data
           self.class.reset
         end
-
       end
 
       class Real
-
         def initialize(options)
           require 'base64'
 
@@ -83,7 +78,6 @@ module Fog
         end
 
         def request(method_name, options = {})
-
           options.merge!( {:format => 'json'})
 
           begin
@@ -126,11 +120,9 @@ module Fog
         end
 
         def urlencode(hash)
-          hash.to_a.collect! { |k, v| "#{k}=#{v.to_s}" }.join("&")
+          hash.to_a.map! { |k, v| "#{k}=#{v.to_s}" }.join("&")
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/glesys/core.rb b/lib/fog/glesys/core.rb
index ec54dc0..7223d1e 100644
--- a/lib/fog/glesys/core.rb
+++ b/lib/fog/glesys/core.rb
@@ -3,10 +3,8 @@ require 'fog/json'
 
 module Fog
   module Glesys
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/glesys/models/compute/ip.rb b/lib/fog/glesys/models/compute/ip.rb
index d3c9c0d..c3151b9 100644
--- a/lib/fog/glesys/models/compute/ip.rb
+++ b/lib/fog/glesys/models/compute/ip.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Glesys
-
       class Ip < Fog::Model
-
         extend Fog::Deprecation
 
         identity :ip
@@ -69,7 +67,6 @@ module Fog
           ).body["response"]["details"]
           merge_attributes data
         end
-
       end
     end
   end
diff --git a/lib/fog/glesys/models/compute/ips.rb b/lib/fog/glesys/models/compute/ips.rb
index c955dee..cca8e20 100644
--- a/lib/fog/glesys/models/compute/ips.rb
+++ b/lib/fog/glesys/models/compute/ips.rb
@@ -4,9 +4,7 @@ require 'fog/glesys/models/compute/ip'
 module Fog
   module Compute
     class Glesys
-
       class Ips < Fog::Collection
-
         model Fog::Compute::Glesys::Ip
 
         attribute :serverid
@@ -45,7 +43,7 @@ module Fog
           options = default_options.merge!(options)
 
           %w{platform datacenter version}.each do |attr|
-            raise Fog::Errors::Error.new("You need to specify ':#{attr}'") if !options.has_key?(attr.to_sym)
+            raise Fog::Errors::Error.new("You need to specify ':#{attr}'") if !options.key?(attr.to_sym)
           end
 
           options[:ipversion] = options[:version]
@@ -55,7 +53,6 @@ module Fog
         end
 
         def take(ip, options = {})
-
           default_options = {
             :attach => false
           }
@@ -83,7 +80,6 @@ module Fog
         end
 
         def attach(ip, server_id=nil)
-
           if server_id.nil?
             server_id = serverid
           end
@@ -115,7 +111,6 @@ module Fog
         def ip_from_object(ip)
           ip.is_a?(Fog::Compute::Glesys::Ip) ? ip.ip : ip
         end
-
       end
     end
   end
diff --git a/lib/fog/glesys/models/compute/server.rb b/lib/fog/glesys/models/compute/server.rb
index 034ee2e..d70dae4 100644
--- a/lib/fog/glesys/models/compute/server.rb
+++ b/lib/fog/glesys/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Glesys
-
       class Server < Fog::Compute::Server
         extend Fog::Deprecation
 
@@ -15,6 +14,7 @@ module Fog
         attribute :memorysize
         attribute :disksize
         attribute :transfer
+        attribute :bandwidth
         attribute :uptime
         attribute :templatename
         attribute :managedhosting
@@ -66,6 +66,7 @@ module Fog
             :cpucores       => cpucores     || "1",
             :rootpassword   => rootpassword,
             :transfer       => transfer     || "500",
+            :bandwidth      => bandwidth    || "10",
           }
 
           # optional options when creating a server:
@@ -119,7 +120,6 @@ module Fog
         end
 
         def public_ip_address(options = {})
-
           return nil if iplist.nil?
 
           type = options[:type] || nil
@@ -136,7 +136,6 @@ module Fog
             ips.first["ipaddress"]
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/glesys/models/compute/servers.rb b/lib/fog/glesys/models/compute/servers.rb
index ae959d1..186290f 100644
--- a/lib/fog/glesys/models/compute/servers.rb
+++ b/lib/fog/glesys/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/glesys/models/compute/server'
 module Fog
   module Compute
     class Glesys
-
         class Servers < Fog::Collection
-
         model Fog::Compute::Glesys::Server
 
         def all
@@ -38,9 +36,7 @@ module Fog
             return nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/glesys/models/compute/templates.rb b/lib/fog/glesys/models/compute/templates.rb
index 322d2bd..8edd3e0 100644
--- a/lib/fog/glesys/models/compute/templates.rb
+++ b/lib/fog/glesys/models/compute/templates.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class Glesys
       class Templates < Fog::Collection
-
         model Fog::Compute::Glesys::Template
 
         def all
@@ -31,9 +30,8 @@ module Fog
           images = service.template_list.body['response']['templates']
           images.select do |platform, images|
             platforms.include?(platform.downcase.to_sym)
-          end.collect{|platform, images| images}.flatten
+          end.map{|platform, images| images}.flatten
         end
-
       end
     end
   end
diff --git a/lib/fog/glesys/requests/compute/create.rb b/lib/fog/glesys/requests/compute/create.rb
index e972db2..48eb793 100644
--- a/lib/fog/glesys/requests/compute/create.rb
+++ b/lib/fog/glesys/requests/compute/create.rb
@@ -2,14 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def create(options = {})
           request('server/create/',options)
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/destroy.rb b/lib/fog/glesys/requests/compute/destroy.rb
index 97fdd50..5fab6a6 100644
--- a/lib/fog/glesys/requests/compute/destroy.rb
+++ b/lib/fog/glesys/requests/compute/destroy.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def destroy(options)
-
           if options[:keepip].nil?
             options[:keepip] = 0
           end
@@ -12,7 +10,6 @@ module Fog
           request("/server/destroy", options)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/glesys/requests/compute/ip_add.rb b/lib/fog/glesys/requests/compute/ip_add.rb
index 157c667..96af864 100644
--- a/lib/fog/glesys/requests/compute/ip_add.rb
+++ b/lib/fog/glesys/requests/compute/ip_add.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_add(params)
           request("/ip/add", params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/ip_details.rb b/lib/fog/glesys/requests/compute/ip_details.rb
index 5877a7e..ca32a32 100644
--- a/lib/fog/glesys/requests/compute/ip_details.rb
+++ b/lib/fog/glesys/requests/compute/ip_details.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_details(params)
           request("/ip/details", params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/ip_list_free.rb b/lib/fog/glesys/requests/compute/ip_list_free.rb
index db8f94e..af4b165 100644
--- a/lib/fog/glesys/requests/compute/ip_list_free.rb
+++ b/lib/fog/glesys/requests/compute/ip_list_free.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_list_free(options = {})
           request("/ip/listfree", options)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/ip_list_own.rb b/lib/fog/glesys/requests/compute/ip_list_own.rb
index 72f3e9b..41d2a3f 100644
--- a/lib/fog/glesys/requests/compute/ip_list_own.rb
+++ b/lib/fog/glesys/requests/compute/ip_list_own.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_list_own(options = {})
           request("/ip/listown", options)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/ip_release.rb b/lib/fog/glesys/requests/compute/ip_release.rb
index 425800c..99c0770 100644
--- a/lib/fog/glesys/requests/compute/ip_release.rb
+++ b/lib/fog/glesys/requests/compute/ip_release.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_release(params)
           request("/ip/release", params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/ip_remove.rb b/lib/fog/glesys/requests/compute/ip_remove.rb
index d8a4bc4..25fd074 100644
--- a/lib/fog/glesys/requests/compute/ip_remove.rb
+++ b/lib/fog/glesys/requests/compute/ip_remove.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_remove(params)
           request("/ip/remove", params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/ip_take.rb b/lib/fog/glesys/requests/compute/ip_take.rb
index 5949f73..e23e1bf 100644
--- a/lib/fog/glesys/requests/compute/ip_take.rb
+++ b/lib/fog/glesys/requests/compute/ip_take.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def ip_take(params)
           request("/ip/take", params)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/list_servers.rb b/lib/fog/glesys/requests/compute/list_servers.rb
index d337384..d074387 100644
--- a/lib/fog/glesys/requests/compute/list_servers.rb
+++ b/lib/fog/glesys/requests/compute/list_servers.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def list_servers(serverid = nil, options = {})
-
           unless serverid.nil?
             options[:serverid] = serverid
           end
@@ -12,8 +10,6 @@ module Fog
           request("/server/list", options)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/reboot.rb b/lib/fog/glesys/requests/compute/reboot.rb
index c3e3d69..4ec5c18 100644
--- a/lib/fog/glesys/requests/compute/reboot.rb
+++ b/lib/fog/glesys/requests/compute/reboot.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def reboot(param)
           request("/server/reboot", param)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/server_details.rb b/lib/fog/glesys/requests/compute/server_details.rb
index 6bd160a..636b6af 100644
--- a/lib/fog/glesys/requests/compute/server_details.rb
+++ b/lib/fog/glesys/requests/compute/server_details.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def server_details(serverid, options = {})
           request("/server/details", { :serverid => serverid }.merge!(options) )
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/server_status.rb b/lib/fog/glesys/requests/compute/server_status.rb
index 87068d4..39f3dba 100644
--- a/lib/fog/glesys/requests/compute/server_status.rb
+++ b/lib/fog/glesys/requests/compute/server_status.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def server_status(serverid)
           request("/server/status", { :serverid => serverid } )
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/start.rb b/lib/fog/glesys/requests/compute/start.rb
index c670bf5..803b9c1 100644
--- a/lib/fog/glesys/requests/compute/start.rb
+++ b/lib/fog/glesys/requests/compute/start.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def start(param)
           request("/server/start", param)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/stop.rb b/lib/fog/glesys/requests/compute/stop.rb
index 16311e4..e901b1c 100644
--- a/lib/fog/glesys/requests/compute/stop.rb
+++ b/lib/fog/glesys/requests/compute/stop.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def stop(param)
           request("/server/stop", param)
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/glesys/requests/compute/template_list.rb b/lib/fog/glesys/requests/compute/template_list.rb
index 369d3ee..c6c194d 100644
--- a/lib/fog/glesys/requests/compute/template_list.rb
+++ b/lib/fog/glesys/requests/compute/template_list.rb
@@ -2,13 +2,10 @@ module Fog
   module Compute
     class Glesys
       class Real
-
         def template_list
           request("/server/templates")
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/go_grid/compute.rb b/lib/fog/go_grid/compute.rb
index 01fbbbe..596ddea 100644
--- a/lib/fog/go_grid/compute.rb
+++ b/lib/fog/go_grid/compute.rb
@@ -3,7 +3,6 @@ require 'fog/go_grid/core'
 module Fog
   module Compute
     class GoGrid < Fog::Service
-
       requires :go_grid_api_key, :go_grid_shared_secret
       recognizes :host, :path, :port, :scheme, :persistent
 
@@ -30,7 +29,6 @@ module Fog
       request :support_password_list
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -53,11 +51,9 @@ module Fog
         def reset_data
           self.class.data.delete(@go_grid_api_key)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           require 'digest/md5'
           @go_grid_api_key = options[:go_grid_api_key]
@@ -108,7 +104,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/core.rb b/lib/fog/go_grid/core.rb
index 6cf895d..6ab064e 100644
--- a/lib/fog/go_grid/core.rb
+++ b/lib/fog/go_grid/core.rb
@@ -3,10 +3,8 @@ require 'fog/json'
 
 module Fog
   module GoGrid
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/go_grid/models/compute/image.rb b/lib/fog/go_grid/models/compute/image.rb
index 8943002..dbcbcb2 100644
--- a/lib/fog/go_grid/models/compute/image.rb
+++ b/lib/fog/go_grid/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class GoGrid
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -26,7 +24,6 @@ module Fog
         attribute :object_type,   :aliases => 'object'
         attribute :owner
 
-
         def server=(new_server)
           requires :id
 
@@ -52,9 +49,7 @@ module Fog
           merge_attributes(data.body['image'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/go_grid/models/compute/images.rb b/lib/fog/go_grid/models/compute/images.rb
index 3661917..16a6a55 100644
--- a/lib/fog/go_grid/models/compute/images.rb
+++ b/lib/fog/go_grid/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/go_grid/models/compute/image'
 module Fog
   module Compute
     class GoGrid
-
       class Images < Fog::Collection
-
         model Fog::Compute::GoGrid::Image
 
         attribute :server
@@ -25,9 +23,7 @@ module Fog
         rescue Fog::Compute::GoGrid::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/go_grid/models/compute/password.rb b/lib/fog/go_grid/models/compute/password.rb
index 4de125c..d1990a5 100644
--- a/lib/fog/go_grid/models/compute/password.rb
+++ b/lib/fog/go_grid/models/compute/password.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class GoGrid
-
       class Password < Fog::Model
-
         identity :id
 
         attribute :server_id
@@ -41,10 +39,7 @@ module Fog
           merge_attributes(data.body)
           true
         end
-
       end
-
     end
-
   end
 end
diff --git a/lib/fog/go_grid/models/compute/passwords.rb b/lib/fog/go_grid/models/compute/passwords.rb
index 9c58d79..33f6762 100644
--- a/lib/fog/go_grid/models/compute/passwords.rb
+++ b/lib/fog/go_grid/models/compute/passwords.rb
@@ -4,9 +4,7 @@ require 'fog/go_grid/models/compute/password'
 module Fog
   module Compute
     class GoGrid
-
       class Passwords < Fog::Collection
-
         model Fog::Compute::GoGrid::Password
 
         def all
@@ -28,9 +26,7 @@ module Fog
         rescue Fog::Compute::GoGrid::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/go_grid/models/compute/server.rb b/lib/fog/go_grid/models/compute/server.rb
index c08ad36..3a9ab9e 100644
--- a/lib/fog/go_grid/models/compute/server.rb
+++ b/lib/fog/go_grid/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class GoGrid
-
       class BlockInstantiationError < StandardError; end
 
       class Server < Fog::Compute::Server
@@ -89,10 +88,7 @@ module Fog
         def adminPass=(new_admin_pass)
           @password = new_admin_pass
         end
-
       end
-
     end
-
   end
 end
diff --git a/lib/fog/go_grid/models/compute/servers.rb b/lib/fog/go_grid/models/compute/servers.rb
index 11230e5..2adf379 100644
--- a/lib/fog/go_grid/models/compute/servers.rb
+++ b/lib/fog/go_grid/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/go_grid/models/compute/server'
 module Fog
   module Compute
     class GoGrid
-
       class Servers < Fog::Collection
-
         model Fog::Compute::GoGrid::Server
 
         def all
@@ -28,9 +26,7 @@ module Fog
         rescue Fog::Compute::GoGrid::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/go_grid/requests/compute/common_lookup_list.rb b/lib/fog/go_grid/requests/compute/common_lookup_list.rb
index 3a43696..88e342b 100644
--- a/lib/fog/go_grid/requests/compute/common_lookup_list.rb
+++ b/lib/fog/go_grid/requests/compute/common_lookup_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List options and lookups
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             :query    => {'lookup' => lookup}.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_image_get.rb b/lib/fog/go_grid/requests/compute/grid_image_get.rb
index a932c6b..018041f 100644
--- a/lib/fog/go_grid/requests/compute/grid_image_get.rb
+++ b/lib/fog/go_grid/requests/compute/grid_image_get.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List images
         #
         # ==== Parameters
@@ -21,11 +20,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def grid_image_get(options={})
           #response = Excon::Response.new
 
@@ -34,7 +31,6 @@ module Fog
           #  case image['state']
           #  when 'Available'
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_image_list.rb b/lib/fog/go_grid/requests/compute/grid_image_list.rb
index f32e28e..0de0173 100644
--- a/lib/fog/go_grid/requests/compute/grid_image_list.rb
+++ b/lib/fog/go_grid/requests/compute/grid_image_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List images
         #
         # ==== Parameters
@@ -24,11 +23,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def grid_image_list(options={})
           #response = Excon::Response.new
 
@@ -37,7 +34,6 @@ module Fog
           #  case image['state']
           #  when 'Available'
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_ip_list.rb b/lib/fog/go_grid/requests/compute/grid_ip_list.rb
index ec09589..8ab6eea 100644
--- a/lib/fog/go_grid/requests/compute/grid_ip_list.rb
+++ b/lib/fog/go_grid/requests/compute/grid_ip_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List ips
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => options
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_loadbalancer_list.rb b/lib/fog/go_grid/requests/compute/grid_loadbalancer_list.rb
index ded413e..f1a4176 100644
--- a/lib/fog/go_grid/requests/compute/grid_loadbalancer_list.rb
+++ b/lib/fog/go_grid/requests/compute/grid_loadbalancer_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List load balancers
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             :query    => options
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_server_add.rb b/lib/fog/go_grid/requests/compute/grid_server_add.rb
index 379110b..ce7b552 100644
--- a/lib/fog/go_grid/requests/compute/grid_server_add.rb
+++ b/lib/fog/go_grid/requests/compute/grid_server_add.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # Create a new server
         #
         # ==== Parameters
@@ -29,7 +28,6 @@ module Fog
             }.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_server_delete.rb b/lib/fog/go_grid/requests/compute/grid_server_delete.rb
index 23ec34f..360abff 100644
--- a/lib/fog/go_grid/requests/compute/grid_server_delete.rb
+++ b/lib/fog/go_grid/requests/compute/grid_server_delete.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # Delete a server
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :query    => {'server' => server}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_server_get.rb b/lib/fog/go_grid/requests/compute/grid_server_get.rb
index 0b4c735..2c1be23 100644
--- a/lib/fog/go_grid/requests/compute/grid_server_get.rb
+++ b/lib/fog/go_grid/requests/compute/grid_server_get.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # Get one or more servers by name
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :query    => {'server' => [*servers]}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_server_list.rb b/lib/fog/go_grid/requests/compute/grid_server_list.rb
index 1d2cff6..b2b33fa 100644
--- a/lib/fog/go_grid/requests/compute/grid_server_list.rb
+++ b/lib/fog/go_grid/requests/compute/grid_server_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List servers
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => options
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/grid_server_power.rb b/lib/fog/go_grid/requests/compute/grid_server_power.rb
index 1823beb..3184dba 100644
--- a/lib/fog/go_grid/requests/compute/grid_server_power.rb
+++ b/lib/fog/go_grid/requests/compute/grid_server_power.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # Start, Stop or Restart a server
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
             :query    => {'server' => server, 'power' => power}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/support_password_get.rb b/lib/fog/go_grid/requests/compute/support_password_get.rb
index be6a692..d3acad6 100644
--- a/lib/fog/go_grid/requests/compute/support_password_get.rb
+++ b/lib/fog/go_grid/requests/compute/support_password_get.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # Get one or more passwords by id
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             }.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/go_grid/requests/compute/support_password_list.rb b/lib/fog/go_grid/requests/compute/support_password_list.rb
index 6248ac6..0789c30 100644
--- a/lib/fog/go_grid/requests/compute/support_password_list.rb
+++ b/lib/fog/go_grid/requests/compute/support_password_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class GoGrid
       class Real
-
         # List passwords
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => options
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/google.rb b/lib/fog/google.rb
index 1001ade..cd7e8a5 100644
--- a/lib/fog/google.rb
+++ b/lib/fog/google.rb
@@ -1,2 +1,5 @@
 require 'fog/google/compute'
+require 'fog/google/dns'
+require 'fog/google/monitoring'
 require 'fog/google/storage'
+require 'fog/google/sql'
diff --git a/lib/fog/google/compute.rb b/lib/fog/google/compute.rb
index 7c916a6..624bf61 100644
--- a/lib/fog/google/compute.rb
+++ b/lib/fog/google/compute.rb
@@ -3,15 +3,26 @@ require 'fog/google/core'
 module Fog
   module Compute
     class Google < Fog::Service
-
       requires :google_project
-      recognizes :app_name, :app_version, :google_client_email, :google_key_location, :google_client
+      recognizes :app_name, :app_version, :google_client_email, :google_key_location, :google_key_string, :google_client
+
+      GOOGLE_COMPUTE_API_VERSION     = 'v1'
+      GOOGLE_COMPUTE_BASE_URL        = 'https://www.googleapis.com/compute/'
+      GOOGLE_COMPUTE_API_SCOPE_URLS  = %w(https://www.googleapis.com/auth/compute
+                                         https://www.googleapis.com/auth/devstorage.read_write
+                                         https://www.googleapis.com/auth/ndev.cloudman
+                                         https://www.googleapis.com/auth/cloud-platform)
+      GOOGLE_COMPUTE_DEFAULT_NETWORK = 'default'
 
       request_path 'fog/google/requests/compute'
       request :list_servers
+      request :list_aggregated_servers
       request :list_addresses
       request :list_aggregated_addresses
       request :list_disks
+      request :list_aggregated_disks
+      request :list_disk_types
+      request :list_aggregated_disk_types
       request :list_firewalls
       request :list_images
       request :list_machine_types
@@ -27,10 +38,20 @@ module Fog
       request :list_target_pools
       request :list_forwarding_rules
       request :list_routes
+      request :list_backend_services
+      request :list_global_forwarding_rules
+      request :list_url_maps
+      request :list_target_http_proxies
+      request :list_zone_views
+      request :list_region_views
+      request :list_region_view_resources
+      request :list_zone_view_resources
+      request :list_target_instances
 
       request :get_server
       request :get_address
       request :get_disk
+      request :get_disk_type
       request :get_firewall
       request :get_image
       request :get_machine_type
@@ -47,6 +68,14 @@ module Fog
       request :get_forwarding_rule
       request :get_project
       request :get_route
+      request :get_backend_service
+      request :get_backend_service_health
+      request :get_url_map
+      request :get_global_forwarding_rule
+      request :get_target_http_proxy
+      request :get_zone_view
+      request :get_region_view
+      request :get_target_instance
 
       request :delete_address
       request :delete_disk
@@ -62,6 +91,13 @@ module Fog
       request :delete_target_pool
       request :delete_forwarding_rule
       request :delete_route
+      request :delete_backend_service
+      request :delete_url_map
+      request :delete_target_http_proxy
+      request :delete_global_forwarding_rule
+      request :delete_zone_view
+      request :delete_region_view
+      request :delete_target_instance
 
       request :insert_address
       request :insert_disk
@@ -74,18 +110,43 @@ module Fog
       request :insert_target_pool
       request :insert_forwarding_rule
       request :insert_route
+      request :insert_backend_service
+      request :insert_url_map
+      request :insert_target_http_proxy
+      request :insert_global_forwarding_rule
+      request :insert_zone_view
+      request :insert_region_view
+      request :insert_target_instance
 
       request :set_metadata
       request :set_tags
       request :set_forwarding_rule_target
+      request :set_global_forwarding_rule_target
+      request :set_target_http_proxy_url_map
 
       request :add_target_pool_instances
       request :add_target_pool_health_checks
+      request :add_backend_service_backends
+      request :add_url_map_host_rules
+      request :add_url_map_path_matchers
+      request :add_zone_view_resources
+      request :add_region_view_resources
 
       request :remove_target_pool_instances
       request :remove_target_pool_health_checks
       request :set_common_instance_metadata
 
+      request :attach_disk
+      request :detach_disk
+      request :get_server_serial_port_output
+      request :reset_server
+      request :set_server_disk_auto_delete
+      request :set_server_scheduling
+      request :add_server_access_config
+      request :delete_server_access_config
+      request :update_url_map
+      request :validate_url_map
+
       model_path 'fog/google/models/compute'
       model :server
       collection :servers
@@ -99,6 +160,9 @@ module Fog
       model :disk
       collection :disks
 
+      model :disk_type
+      collection :disk_types
+
       model :address
       collection :addresses
 
@@ -135,129 +199,34 @@ module Fog
       model :route
       collection :routes
 
-      module Shared
-        attr_reader :project, :api_version
+      model :backend_service
+      collection :backend_services
 
-        def shared_initialize(options = {})
-          @project = options[:google_project]
-          @api_version = 'v1'
-          base_url = 'https://www.googleapis.com/compute/'
-          @api_url = base_url + api_version + '/projects/'
-          @default_network = 'default'
-        end
+      model :target_http_proxy
+      collection :target_http_proxies
 
-        def build_excon_response(body, status=200)
-          response = Excon::Response.new
-          response.body = body
-          if response.body and response.body["error"]
-            response.status = response.body["error"]["code"]
-            if response.body["error"]["errors"]
-              msg = response.body["error"]["errors"].map{|error| error["message"]}.join(", ")
-            else
-              msg = "Error [#{response.body["error"]["code"]}]: #{response.body["error"]["message"] || "GCE didn't return an error message"}"
-            end
-            case response.status
-            when 404
-              raise Fog::Errors::NotFound.new(msg)
-            else
-              raise Fog::Errors::Error.new(msg)
-            end
-          else
-            response.status = status
-          end
-          response
-        end
+      model :url_map
+      collection :url_maps
 
-        def backoff_if_unfound(&block)
-          retries_remaining = 10
-          sleep_time = 0.1
-          begin
-            result = block.call
-          rescue Exception => msg
-            if msg.to_s.include? 'was not found' and retries_remaining > 0
-              retries_remaining -= 1
-              sleep sleep_time
-              sleep_time *= 1.6
-              retry
-            else
-              raise msg
-            end
-          end
-          result
-        end
-      end
+      model :global_forwarding_rule
+      collection :global_forwarding_rules
 
-      class Mock
-        include Collections
-        include Shared
+      model :resource_view
+      collection :resource_views
 
-        def initialize(options={})
-          shared_initialize(options)
-        end
+      model :target_instance
+      collection :target_instances
+
+      class Mock
+        include Fog::Google::Shared
 
-        def build_response(params={})
-          body = params[:body] || {}
-          build_excon_response(body)
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_COMPUTE_API_VERSION, GOOGLE_COMPUTE_BASE_URL)
         end
 
         def self.data(api_version)
           @data ||= Hash.new do |hash, key|
             case key
-            when 'google'
-              hash[key] = {
-                :images => {
-                  "centos-6-2-v20120621" => {
-                    "kind" => "compute#image",
-                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/images/centos-6-2-v20120621",
-                    "id" => "12920641029336858796",
-                    "creationTimestamp" => "2012-06-21T22:59:56.392-07:00",
-                    "name" => "centos-6-2-v20120621",
-                    "description" => "CentOS 6.2; Created Thu, 21 Jun 2012 14:22:21 +0000",
-                    "sourceType" => "RAW",
-                    "rawDisk" => {
-                      "containerType" => "TAR",
-                      "source" => ""
-                    },
-                    "deprecated" => {
-                      "state" => "DELETED",
-                      "replacement" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/images/centos-6-v20130104"
-                    },
-                    "status" => "READY"
-                  },
-                  "centos-6-v20120912" => {
-                    "kind" => "compute#image",
-                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/images/centos-6-v20120912",
-                    "id" => "12994279803511049620",
-                    "creationTimestamp" => "2012-09-18T08:52:47.584-07:00",
-                    "name" => "centos-6-v20120912",
-                    "description" => "CentOS 6; Created Wed, 12 Sep 2012 00:00:00 +0000",
-                    "sourceType" => "RAW",
-                    "rawDisk" => {
-                      "containerType" => "TAR",
-                      "source" => ""
-                    },
-                    "deprecated" => {
-                      "state" => "DEPRECATED",
-                      "replacement" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/images/centos-6-v20130104"
-                    },
-                    "status" => "READY"
-                  },
-                  "centos-6-v20121106" => {
-                    "kind" => "compute#image",
-                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/images/centos-6-v20121106",
-                    "id" => "13037720516378381209",
-                    "creationTimestamp" => "2012-11-09T11:40:41.079-08:00",
-                    "name" => "centos-6-v20121106",
-                    "description" => "SCSI-enabled CentOS 6; Created Tue, 06 Nov 2012 00:00:00 +0000",
-                    "sourceType" => "RAW",
-                    "rawDisk" => {
-                      "containerType" => "TAR",
-                      "source" => ""
-                    },
-                    "status" => "READY"
-                  }
-                }
-              }
             when 'debian-cloud'
               hash[key] = {
                 :images => {
@@ -341,6 +310,117 @@ module Fog
               }
             else
               hash[key] = {
+                :target_http_proxies => {
+                  "test-target-http-proxy" => {
+                    "kind" => "compute#targetHttpProxy",
+                    "id" => "1361932147851415729",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    "name" => "test-target-http-proxy",
+                    "description" => '',
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/test-target-http-proxy",
+                    "urlMap" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps/test-url-map"
+                  }
+                },
+                :url_maps => {
+                  "test-url-map" => {
+                    "kind" => "compute#urlMap",
+                    "id" => "1361932147851415729",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    "name" => 'test-url-map',
+                    "description" => '',
+                    "hostRules" => [],
+                    "pathMatchers" => [],
+                    "tests" => [],
+                    "defaultService" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServices/fog-backend-service-test",
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps/test-url-map"
+                  }
+                },
+                :target_pools => {
+                  "test-target-pool" => {
+                    'kind' => "compute#targetPool",
+                    "id" => "1361932147851415729",
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1/targetPools/test-target-pool",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    'name' => "test-target-pool",
+                    "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1",
+                    "healthChecks" => ["https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/test-check"],
+                    "instances" => ["https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/instances/test-instance"],
+                  }
+                },
+
+                :http_health_checks => {
+                  "test-http-health-check" => {
+                    "checkIntervalSec" => 5,
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    "healthyThreshold" => 2,
+                    "id" => "1361932147851415729",
+                    "kind" => "compute#httphealthCheck",
+                    "name" => "test-http-health-check",
+                    "port" => 80,
+                    "requestPath" => '/',
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/test-http-health-check",
+                    "timeoutSec" => 5,
+                    "unhealthyThreshold" => 2
+                  }
+                },
+                :global_forwarding_rules => {
+                  "test-global-forwarding-rule" => {
+                    "kind" => "compute#forwardingRule",
+                    "id" => "1361932147851415729",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    "name" => 'test-global-forwarding-rule',
+                    "IPAddress" => '107.178.255.155',
+                    "IPProtocol" => 'TCP',
+                    "portRange" => '80-80',
+                    "target" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/proxy",
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/forwardngRules/test-global-forwarding-rule"
+                  }
+                },
+                :forwarding_rules => {
+                  "test-forwarding-rule" => {
+                    "kind" => "compute#forwardingRule",
+                    "id" => "1361932147851415729",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    "name" => 'test-forwarding-rule',
+                    "IPAddress" => '107.178.255.155',
+                    "IPProtocol" => 'TCP',
+                    "portRange" => '80-80',
+                    "target" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1/targetPools/target_pool",
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1/forwardngRules/test-forwarding-rule",
+                    "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/us-central1"
+                  }
+                },
+                :target_instances => {
+                  "test-target-instance" => {
+                    "kind" => "compute#targetInstance",
+                    "name" => "test-target-instance",
+                    "natPolicy" => "NO_NAT",
+                    "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a",
+                    "instance" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/instances/test-instance",
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/us-central1-a/targetInstances/test-target-instance",
+                    "id" => "1361932147851415729",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+
+                  }
+                },
+                :backend_services =>{
+                  "test-backend-service" => {
+                    "kind" => "compute#backend_service",
+                    "id" => "1361932147851415729",
+                    "creationTimestamp" => '2014-08-23T10:06:13.951-07:00',
+                    "name" => "test-backend-service",
+                    "description" => '',
+                    "backends" => [
+                       {
+                      "description" => '',
+                      "group" => "https://www.googleapis.com/resourceviews/v1beta1/projects#{@project}/zones/us-central1-a/zoneViews/name",
+                      "balancingMode" => "RATE",
+                      "capacityScaler" => 1.1,
+                      "maxRate" => 0.5,
+                    }],
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServices/test-backend-service"
+                  }
+                },
                 :servers => {
                   "fog-1" => {
                     "kind" => "compute#instance",
@@ -478,6 +558,71 @@ module Fog
                     "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central2"
                   }
                 },
+                :regions => {
+                  "us-central1" => {
+                    "creationTimestamp" => '2014-01-21T10:30:54.895-08:00',
+                    "description" => 'us-central1',
+                    "id" => '18201118976141502843',
+                    "kind" => "compute#region",
+                    "name" =>"us-central1",
+                    "quotas" => [
+                      {"metric" =>"CPUS", "limit" => 1050.0, "usage" => 28.0},
+                      {"metric" =>"DISKS_TOTAL_GB", "limit" => 10000.0, "usage" => 292.0},
+                      {"metric" =>"STATIC_ADDRESSES", "limit" => 10.0, "usage" => 0.0},
+                      {"metric" =>"IN_USE_ADDRESSES", "limit" => 1050.0, "usage" => 30.0},
+                      {"metric" =>"SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0}
+                    ],
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/us-central1",
+                    "status" => "UP",
+                    "zones" =>  [ 
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a",
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-b",
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-f",
+                    ]
+                  },
+                  "europe-west1" => {
+                    "creationTimestamp" => '2014-01-21T10:30:54.891-08:00',
+                    "description" => 'europe-west1',
+                    "id" => '18201118976141502843',
+                    "kind" => "compute#region",
+                    "name" =>"europe-west1",
+                    "quotas" => [
+                      {"metric" =>"CPUS", "limit" => 24.0, "usage" => 0.0},
+                      {"metric" =>"DISKS_TOTAL_GB", "limit" => 2048.0, "usage" => 0.0},
+                      {"metric" =>"STATIC_ADDRESSES", "limit" => 7.0, "usage" => 0.0},
+                      {"metric" =>"IN_USE_ADDRESSES", "limit" => 23.0, "usage" => 0.0},
+                      {"metric" =>"SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0}
+                    ],
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/erope-west1",
+                    "status" => "UP",
+                    "zones" =>  [ 
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/europe-west1-a",
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/europe-west1-b",
+                    ]
+                  },
+                  "asia-east1" => {
+                    "creationTimestamp" => '2014-01-21T10:30:54.895-08:00',
+                    "description" => 'asia-east1',
+                    "id" => '18201118976141502843',
+                    "kind" => "compute#region",
+                    "name" =>"asia-east1",
+                    "quotas" => [
+                      {"metric" =>"CPUS", "limit" => 1050.0, "usage" => 28.0},
+                      {"metric" =>"DISKS_TOTAL_GB", "limit" => 10000.0, "usage" => 292.0},
+                      {"metric" =>"STATIC_ADDRESSES", "limit" => 10.0, "usage" => 0.0},
+                      {"metric" =>"IN_USE_ADDRESSES", "limit" => 1050.0, "usage" => 30.0},
+                      {"metric" =>"SSD_TOTAL_GB", "limit" => 1024.0, "usage" => 0.0}
+                    ],
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/regions/asia-east1",
+                    "status" => "UP",
+                    "zones" =>  [ 
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-a",
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-b",
+                      "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/asia-east1-c",
+                    ]
+                  }
+                },
+
                 :machine_types => Hash.new do |machine_types_hash, zone|
                   machine_types_hash[zone] = {
                     "f1-micro" => {
@@ -861,7 +1006,8 @@ module Fog
                     "sizeGb" => "10",
                     "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1",
                     "sourceImage" => "https://www.googleapis.com/compute/#{api_version}/projects/debian-cloud/global/images/debian-7-wheezy-v20131120",
-                    "sourceImageId" => "17312518942796567788"
+                    "sourceImageId" => "17312518942796567788",
+                    "type" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/diskTypes/pd-standard",
                   },
                   "fog-2" => {
                     "kind" => "compute#disk",
@@ -871,7 +1017,8 @@ module Fog
                     "status" => "READY",
                     "name" => "fog-2",
                     "sizeGb" => "10",
-                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1"
+                    "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1",
+                    "type" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/diskTypes/pd-ssd",
                   }
                 },
                 :operations => {}
@@ -899,118 +1046,22 @@ module Fog
       end
 
       class Real
-        include Collections
-        include Shared
+        include Fog::Google::Shared
 
         attr_accessor :client
-        attr_reader :compute, :api_url
+        attr_reader :compute
 
         def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_COMPUTE_API_VERSION, GOOGLE_COMPUTE_BASE_URL)
+          options.merge!(:google_api_scope_url => GOOGLE_COMPUTE_API_SCOPE_URLS.join(' '))
 
-          # NOTE: loaded here to avoid requiring this as a core Fog dependency
-          begin
-            require 'google/api_client'
-          rescue LoadError => error
-            Fog::Logger.warning("Please install the google-api-client gem before using this provider.")
-            raise error
-          end
-          shared_initialize(options)
-
-          if !options[:google_client].nil?
-            @client = options[:google_client]
-          end
-
-          if @client.nil?
-            if !options[:google_client_email].nil? and !options[:google_key_location].nil?
-              @client = self.new_pk12_google_client(
-                options[:google_client_email],
-                File.expand_path(options[:google_key_location]),
-                options[:app_name],
-                options[:app_verion])
-            else
-              Fog::Logger.debug("Fog::Compute::Google.client has not been initialized nor are the :google_client_email and :google_key_location options set, so we can not create one for you.")
-              raise ArgumentError.new("No Google API Client has been initialized.")
-            end
-          end
-
-          # We want to always mention we're using Fog.
-          if @client.user_agent.nil? or @client.user_agent.empty?
-            @client.user_agent = ""
-          elsif !@client.user_agent.include? "fog"
-            @client.user_agent += "fog/#{Fog::VERSION}"
-          end
-
+          @client = initialize_google_client(options)
           @compute = @client.discovered_api('compute', api_version)
-        end
-
-        # Public: Create a Google::APIClient with a pkcs12 key and a user email.
-        #
-        # google_client_email - an @developer.gserviceaccount.com email address to use.
-        # google_key_location - an absolute location to a pkcs12 key file.
-        # app_name - an optional string to set as the app name in the user agent.
-        # app_version - an optional string to set as the app version in the user agent.
-        #
-        # Returns a new Google::APIClient
-        def new_pk12_google_client(google_client_email, google_key_location, app_name=nil, app_version=nil)
-          # The devstorage scope is needed to be able to insert images
-          # devstorage.read_only scope is not sufficient like you'd hope
-          api_scope_url = 'https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.read_write'
-
-          user_agent = ""
-          if app_name
-            user_agent = "#{app_name}/#{app_version || '0.0.0'} "
-          end
-          user_agent += "fog/#{Fog::VERSION}"
-
-          api_client_options = {
-            # https://github.com/google/google-api-ruby-client/blob/master/lib/google/api_client.rb#L98
-            :application_name => "suppress warning",
-            # https://github.com/google/google-api-ruby-client/blob/master/lib/google/api_client.rb#L100
-            :user_agent => user_agent
-          }
-          local_client = ::Google::APIClient.new(api_client_options)
-
-          key = ::Google::APIClient::KeyUtils.load_from_pkcs12(google_key_location, 'notasecret')
-
-          local_client.authorization = Signet::OAuth2::Client.new({
-            :audience => 'https://accounts.google.com/o/oauth2/token',
-            :auth_provider_x509_cert_url => "https://www.googleapis.com/oauth2/v1/certs",
-            :client_x509_cert_url => "https://www.googleapis.com/robot/v1/metadata/x509/#{google_client_email}",
-            :issuer => google_client_email,
-            :scope => api_scope_url,
-            :signing_key => key,
-            :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
-          })
-
-          local_client.authorization.fetch_access_token!
-
-          return local_client
-        end
-
-        def build_result(api_method, parameters, body_object=nil)
-          if body_object
-            result = @client.execute(
-              :api_method => api_method,
-              :parameters => parameters,
-              :body_object => body_object
-            )
-          else
-            result = @client.execute(
-              :api_method => api_method,
-              :parameters => parameters
-            )
-          end
-        end
-
-        # result = Google::APIClient::Result
-        # returns Excon::Response
-        def build_response(result)
-          build_excon_response(result.body.nil? || result.body.empty? ? nil : Fog::JSON.decode(result.body), result.status)
+          @resourceviews = @client.discovered_api('resourceviews', 'v1beta1')
         end
       end
 
       RUNNING = 'RUNNING'
-
     end
   end
 end
diff --git a/lib/fog/google/core.rb b/lib/fog/google/core.rb
index d7cbeb4..7a22d5f 100644
--- a/lib/fog/google/core.rb
+++ b/lib/fog/google/core.rb
@@ -3,14 +3,15 @@ require 'fog/xml'
 
 module Fog
   module Google
-
     extend Fog::Provider
 
-    service(:compute, 'Compute')
-    service(:storage, 'Storage')
+    service(:compute,    'Compute')
+    service(:dns,        'DNS')
+    service(:monitoring, 'Monitoring')
+    service(:storage,    'Storage')
+    service(:sql,        'SQL')
 
     class Mock
-
       def self.etag
         hex(32)
       end
@@ -19,7 +20,161 @@ module Fog
         max = ('f' * length).to_i(16)
         rand(max).to_s(16)
       end
+    end
+
+    module Shared
+      attr_reader :project, :api_version, :api_url
+
+      ##
+      # Initializes shared attributes
+      #
+      # @param [String] project Google Cloud Project
+      # @param [String] api_version Google API version
+      # @param [String] base_url Google API base url
+      # @return [void]
+      def shared_initialize(project, api_version, base_url)
+        @project = project
+        @api_version = api_version
+        @api_url = base_url + api_version + '/projects/'
+      end
+
+      ##
+      # Initializes the Google API Client
+      #
+      # @param [Hash] options Google API options
+      # @option options [String] :google_client_email A @developer.gserviceaccount.com email address to use
+      # @option options [String] :google_key_location The location of a pkcs12 key file
+      # @option options [String] :google_key_string The content of the pkcs12 key file
+      # @option options [String] :google_api_scope_url The access scope URLs
+      # @option options [String] :app_name The app name to set in the user agent
+      # @option options [String] :app_version The app version to set in the user agent
+      # @option options [Google::APIClient] :google_client Existing Google API Client
+      # @return [Google::APIClient] Google API Client
+      # @raises [ArgumentError] If there is any missing argument
+      def initialize_google_client(options)
+        # NOTE: loaded here to avoid requiring this as a core Fog dependency
+        begin
+          require 'google/api_client'
+        rescue LoadError => error
+          Fog::Logger.warning('Please install the google-api-client gem before using this provider')
+          raise error
+        end
+
+        # User can provide an existing Google API Client
+        client = options[:google_client]
+        return client unless client.nil?
+
+        # Validate required arguments
+        unless options[:google_client_email]
+          raise ArgumentError.new('Missing required arguments: google_client_email')
+        end
+
+        if options[:google_key_location]
+          google_key = File.expand_path(options[:google_key_location])
+        elsif options[:google_key_string]
+          google_key = options[:google_key_string]
+        else
+          raise ArgumentError.new('Missing required arguments: google_key_location or google_key_string')
+        end
+
+        unless options[:google_api_scope_url]
+          raise ArgumentError.new('Missing required arguments: google_api_scope_url')
+        end
+
+        # Create a new Google API Client
+        self.new_pk12_google_client(
+          options[:google_client_email],
+          google_key,
+          options[:google_api_scope_url],
+          options[:app_name],
+          options[:app_version]
+        )
+      end
 
+      ##
+      # Create a Google API Client with a user email and a pkcs12 key
+      #
+      # @param [String] google_client_email A @developer.gserviceaccount.com email address to use
+      # @param [String] google_key An absolute location to a pkcs12 key file or the content of the file itself
+      # @param [String] google_api_scope_url Access scope URLs
+      # @param [String] app_name The app name to set in the user agent
+      # @param [String] app_version The app version to set in the user agent
+      # @return [Google::APIClient] Google API Client
+      def new_pk12_google_client(google_client_email, google_key, google_api_scope_url, app_name = nil, app_version = nil)
+        application_name = app_name.nil? ? 'fog' : "#{app_name}/#{app_version || '0.0.0'} fog"
+        api_client_options = {
+          :application_name => application_name,
+          :application_version => Fog::VERSION,
+        }
+        client = ::Google::APIClient.new(api_client_options)
+
+        client.authorization = Signet::OAuth2::Client.new(
+          {
+            :audience => 'https://accounts.google.com/o/oauth2/token',
+            :auth_provider_x509_cert_url => 'https://www.googleapis.com/oauth2/v1/certs',
+            :client_x509_cert_url => "https://www.googleapis.com/robot/v1/metadata/x509/#{google_client_email}",
+            :issuer => google_client_email,
+            :scope => google_api_scope_url,
+            :signing_key => ::Google::APIClient::KeyUtils.load_from_pkcs12(google_key, 'notasecret'),
+            :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
+          }
+        )
+        client.authorization.fetch_access_token!
+
+        client
+      end
+
+      ##
+      # Executes a request and wraps it in a result object
+      #
+      # @param [Google::APIClient::Method] api_method The method object or the RPC name of the method being executed
+      # @param [Hash] parameters The parameters to send to the method
+      # @param [Hash] body_object The body object of the request
+      # @return [Excon::Response] The result from the API
+      def request(api_method, parameters, body_object = nil)
+        client_parms = {
+          :api_method => api_method,
+          :parameters => parameters,
+        }
+        client_parms[:body_object] = body_object if body_object
+
+        result = @client.execute(client_parms)
+
+        build_excon_response(result.body.nil? || result.body.empty? ? nil : Fog::JSON.decode(result.body), result.status)
+      end
+
+      ##
+      # Builds an Excon response
+      #
+      # @param [Hash] Response body
+      # @param [Integer] Response status
+      # @return [Excon::Response] Excon response
+      def build_excon_response(body, status = 200)
+        response = Excon::Response.new(:body => body, :status => status)
+        if body && body.has_key?('error')
+          msg = 'Google Cloud did not return an error message'
+
+          if body['error'].kind_of?(Hash)
+            response.status = body['error']['code']
+            if body['error'].has_key?('errors')
+              msg = body['error']['errors'].map{ |error| error['message'] }.join(', ')
+            elsif body['error'].has_key?('message')
+              msg = body['error']['message']
+            end
+          elsif body['error'].kind_of?(Array)
+            msg = body['error'].map{ |error| error['code'] }.join(', ')
+          end
+
+          case response.status
+            when 404
+              raise Fog::Errors::NotFound.new(msg)
+            else
+              raise Fog::Errors::Error.new(msg)
+          end
+        end
+
+        response
+      end
     end
   end
 end
diff --git a/lib/fog/google/dns.rb b/lib/fog/google/dns.rb
new file mode 100644
index 0000000..f5fc898
--- /dev/null
+++ b/lib/fog/google/dns.rb
@@ -0,0 +1,63 @@
+require 'fog/google/core'
+
+module Fog
+  module DNS
+    class Google < Fog::Service
+      requires :google_project
+      recognizes :app_name, :app_version, :google_client_email, :google_key_location, :google_key_string, :google_client
+
+      GOOGLE_DNS_API_VERSION     = 'v1beta1'
+      GOOGLE_DNS_BASE_URL        = 'https://www.googleapis.com/dns/'
+      GOOGLE_DNS_API_SCOPE_URLS  = %w(https://www.googleapis.com/auth/ndev.clouddns.readwrite)
+
+      request_path 'fog/google/requests/dns'
+      request :create_managed_zone
+      request :delete_managed_zone
+      request :get_managed_zone
+      request :list_managed_zones
+
+      class Mock
+	include Fog::Google::Shared
+
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_DNS_API_VERSION, GOOGLE_DNS_BASE_URL)
+        end
+
+	def self.data(api_version)
+	  @data ||= {}
+	end
+
+	def self.reset
+	  @data = nil
+	end
+
+        def data(project=@project)
+          self.class.data(api_version)[project] ||= {
+              :managed_zones => {
+                  :by_id => {},
+                  :by_name => {},
+              },
+	  }
+        end
+
+        def reset_data
+          self.class.data(api_version).delete(@project)
+        end
+      end
+
+      class Real
+        include Fog::Google::Shared
+
+        attr_accessor :client
+        attr_reader :dns
+
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_DNS_API_VERSION, GOOGLE_DNS_BASE_URL)
+          options.merge!(:google_api_scope_url => GOOGLE_DNS_API_SCOPE_URLS.join(' '))
+          @client = initialize_google_client(options)
+          @dns = @client.discovered_api('dns', api_version)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/examples/backend_services.rb b/lib/fog/google/examples/backend_services.rb
new file mode 100644
index 0000000..4c9ad81
--- /dev/null
+++ b/lib/fog/google/examples/backend_services.rb
@@ -0,0 +1,22 @@
+require 'rubygems'
+require 'fog'
+
+def test
+  connection = Fog::Compute.new({:provider => "google"})
+  health = connection.http_health_checks.create({
+    :name => 'test-checks'
+  })
+  health.wait_for { health.ready? }
+  backend= connection.backend_services.create({
+    :name => 'backend-test',
+    :health_checks => [health.self_link],
+    :port => 8080,
+    :timeout_sec => 40,
+    :backends => [{'group' => 'resource_view self_link'}]
+  })
+  puts connection.backend_services.all
+  backend= connection.backend_services.get('backend-test')
+  backend.get_health
+end
+
+test
diff --git a/lib/fog/google/examples/create.rb b/lib/fog/google/examples/create.rb
index 1e9fb68..bef5134 100755
--- a/lib/fog/google/examples/create.rb
+++ b/lib/fog/google/examples/create.rb
@@ -16,9 +16,9 @@ def test
     :name => "fog-smoke-test-#{Time.now.to_i}",
     :disks => [disk],
     :machine_type => "n1-standard-1",
-    :zone_name => "us-central1-a",
     :private_key_path => File.expand_path("~/.ssh/id_rsa"),
     :public_key_path => File.expand_path("~/.ssh/id_rsa.pub"),
+    :zone_name => "us-central1-a",
     :user => ENV['USER'],
     :tags => ["fog"]
   })
diff --git a/lib/fog/google/examples/eric-fail.rb b/lib/fog/google/examples/eric-fail.rb
index e55dae4..ca2a488 100755
--- a/lib/fog/google/examples/eric-fail.rb
+++ b/lib/fog/google/examples/eric-fail.rb
@@ -1,5 +1,5 @@
 def test
-  connection = Fog::Compute.new({ :provider => "Google" })
+ connection = Fog::Compute.new({ :provider => "Google" })
 
   name = "fog-smoke-test-#{Time.now.to_i}"
   zone = "us-central1-a"
diff --git a/lib/fog/google/examples/get_list_images.rb b/lib/fog/google/examples/get_list_images.rb
index dfad241..7a51793 100644
--- a/lib/fog/google/examples/get_list_images.rb
+++ b/lib/fog/google/examples/get_list_images.rb
@@ -14,7 +14,7 @@ def test
   # puts img.inspect
 
   # First, get the name of an image that is in the users 'project' (not global)
-  custom_img_name = images.detect { |img| img.project == img.service.project }
+  custom_img_name = images.find { |img| img.project == img.service.project }
   # Run the next test only if there is a custom image available
   if custom_img_name
     # puts 'Fetching a single image from the custom project'
diff --git a/lib/fog/google/examples/get_list_snapshots.rb b/lib/fog/google/examples/get_list_snapshots.rb
index 91f2651..2dcb67a 100644
--- a/lib/fog/google/examples/get_list_snapshots.rb
+++ b/lib/fog/google/examples/get_list_snapshots.rb
@@ -1,5 +1,4 @@
 def test
-
   connection = Fog::Compute.new({ :provider => "Google" })
 
   # puts 'Listing snapshots...'
@@ -16,5 +15,4 @@ def test
     raise 'Could not GET the snapshot' unless snap
     # puts snap.inspect
   end
-
 end
diff --git a/lib/fog/google/examples/image_create.rb b/lib/fog/google/examples/image_create.rb
index edac143..ce7e550 100644
--- a/lib/fog/google/examples/image_create.rb
+++ b/lib/fog/google/examples/image_create.rb
@@ -9,7 +9,7 @@ def test
   # Can't test this unless the 'source' points to a valid URL
   return if rawdisk[:source].nil?
 
-  img = connection.image.create(:name             => 'test-image',
+  img = connection.images.create(:name             => 'test-image',
                                 :description      => 'Test image (via fog)',
                                 :raw_disk         => rawdisk)
 
diff --git a/lib/fog/google/examples/l7_load_balance.rb b/lib/fog/google/examples/l7_load_balance.rb
new file mode 100644
index 0000000..6da4440
--- /dev/null
+++ b/lib/fog/google/examples/l7_load_balance.rb
@@ -0,0 +1,73 @@
+# This example assumes three instances have been created in the project.
+# They should each have Apache installed and distinct index.html files
+# in order to observe the results of the l7 load balancer. A firewall
+# rule should also have been created with a tag shared by the instances.
+# More info on Google's HTTP load balancing: 
+# https://developers.google.com/compute/docs/load-balancing/http/
+
+def test
+  connection = Fog::Compute.new({:provider => "google"})
+  health = connection.http_health_checks.create({
+    :name => 'test-checks'
+    })
+  instance1 = connection.servers.get('fog-l7-instance-1')
+  instance2 = connection.servers.get('fog-l7-instance-2')
+  instance3  = connection.servers.get('fog-l7-instance-3')
+
+  resource_view1 = connection.resource_views.create({ 
+    :name => 'fog-l7-resource-view-1',
+    :numMembers => 1, 
+    :members => [instance1.self_link], 
+    :zone => 'us-central1-a' 
+    })
+  resource_view1.add_resources(instance1.self_link)
+  resource_view2 = connection.resource_views.create({ 
+    :name => 'fog-l7-resource-view-2', 
+    :numMembers => 1, 
+    :members => [instance2.self_link], 
+    :zone => 'us-central1-a' 
+    })
+  resource_view2.add_resources(instance2.self_link)
+  resource_view3 = connection.resource_views.create({ 
+    :name => 'fog-l7-resource-view-3', 
+    :members => [instance3.self_link], 
+    :zone => 'us-central1-b' })
+  resource_view3.add_resources(instance3.self_link)
+  backend_service1 = connection.backend_services.create({
+    :name => 'fog-l7-backend-service-1',
+    :health_checks => [health.self_link],
+    :backends => [{'balancingMode' => 'RATE', 'maxRate' => 100, 'group' => resource_view1.self_link}]
+  })
+  backend_service2 = connection.backend_services.create({
+    :name => 'fog-l7-backend-service-2',
+    :health_checks => [health.self_link],
+    :backends => [{'balancingMode' => 'RATE', 'maxRate' => 100, 'group' => resource_view2.self_link}]
+  })
+  backend_service3 = connection.backend_services.create({
+    :name => 'fog-l7-backend-service-3',
+    :health_checks => [health.self_link],
+    :backends => [{'balancingMode' => 'RATE', 'maxRate' => 100, 'group' => resource_view3.self_link}]
+  })
+  url_map = connection.url_maps.create({
+    :name => 'fog-l7-url-map',
+    :pathMatchers => [{ 
+      'name' => 'pathmatcher', 
+      'defaultService' => backend_service1.self_link, 
+      'pathRules' => [
+        { 'paths' => ["/one/*"], 
+        "service" => backend_service1.self_link }, 
+        {'paths' => ["/two/*"], 
+        "service" => backend_service2.self_link }, 
+        {'paths' => ["/three/*"], 
+        'service' => backend_service3.self_link } 
+        ]
+      }], 
+    :hostRules => [{ 'hosts' => ['*'], 'pathMatcher' => 'pathmatcher'}],
+    :defaultService => backend_service1.self_link,
+  })
+  proxy = connection.target_http_proxies.create({
+    :name => 'fog-l7-proxy',
+    :urlMap => url_map.self_link
+  }) 
+  fwd_rle = connection.global_forwarding_rules.create({:name => 'fog-l7-fwd-rule', :target => proxy.self_link })
+end
diff --git a/lib/fog/google/examples/load-balance.rb b/lib/fog/google/examples/load-balance.rb
index 96e331d..764658a 100644
--- a/lib/fog/google/examples/load-balance.rb
+++ b/lib/fog/google/examples/load-balance.rb
@@ -5,7 +5,6 @@ def test
   zone = 'us-central1-b'
   region = 'us-central1'
 
-
   # Setup
   gce = Fog::Compute.new provider: 'Google'
   servers = []
@@ -22,7 +21,7 @@ def test
     rescue
       puts "Failed to create disk #{name}-#{i}"
     end
-  
+
     begin
       server = gce.servers.create(
         name: "#{name}-#{i}",
@@ -68,11 +67,10 @@ def test
     puts "Failed to create forwarding rule #{name}"
   end
 
-  
+
   # TODO(bensonk): Install apache, create individualized htdocs, and run some
   #                actual requests through the load balancer.
 
-
   # Cleanup
   begin
     rule.destroy
diff --git a/lib/fog/google/examples/monitoring/metric_descriptors.rb b/lib/fog/google/examples/monitoring/metric_descriptors.rb
new file mode 100644
index 0000000..f21056e
--- /dev/null
+++ b/lib/fog/google/examples/monitoring/metric_descriptors.rb
@@ -0,0 +1,11 @@
+def test
+  connection = Fog::Google::Monitoring.new
+
+  puts 'Listing all MetricDescriptors...'
+  puts '--------------------------------'
+  connection.metric_descriptors
+
+  puts 'Listing all MetricDescriptors related to Google Compute Engine...'
+  puts '-----------------------------------------------------------------'
+  connection.metric_descriptors.all(:query => 'compute')
+end
diff --git a/lib/fog/google/examples/monitoring/timeseries_collection.rb b/lib/fog/google/examples/monitoring/timeseries_collection.rb
new file mode 100644
index 0000000..d31bffc
--- /dev/null
+++ b/lib/fog/google/examples/monitoring/timeseries_collection.rb
@@ -0,0 +1,15 @@
+def test
+  connection = Fog::Google::Monitoring.new
+
+  puts 'Listing all Timeseries for the metric compute.googleapis.com/instance/uptime...'
+  puts '-------------------------------------------------------------------------------'
+  connection.timeseries_collection.all('compute.googleapis.com/instance/uptime',
+                                       DateTime.now.rfc3339)
+
+  puts 'Listing all Timeseries for the metric compute.googleapis.com/instance/uptime &'
+  puts 'the region us-central1...'
+  puts '------------------------------------------------------------------------------'
+  connection.timeseries_collection.all('compute.googleapis.com/instance/uptime',
+                                       DateTime.now.rfc3339,
+                                       :labels => 'cloud.googleapis.com/location=~us-central1.*')
+end
diff --git a/lib/fog/google/examples/monitoring/timeseries_descriptors.rb b/lib/fog/google/examples/monitoring/timeseries_descriptors.rb
new file mode 100644
index 0000000..4233915
--- /dev/null
+++ b/lib/fog/google/examples/monitoring/timeseries_descriptors.rb
@@ -0,0 +1,15 @@
+def test
+  connection = Fog::Google::Monitoring.new
+
+  puts 'Listing all TimeseriesDescriptors for the metric compute.googleapis.com/instance/uptime...'
+  puts '------------------------------------------------------------------------------------------'
+  connection.timeseries_descriptors.all('compute.googleapis.com/instance/uptime',
+                                        DateTime.now.rfc3339)
+
+  puts 'Listing all TimeseriesDescriptors for the metric compute.googleapis.com/instance/uptime &'
+  puts 'the region us-central1...'
+  puts '-----------------------------------------------------------------------------------------'
+  connection.timeseries_descriptors.all('compute.googleapis.com/instance/uptime',
+                                        DateTime.now.rfc3339,
+                                        :labels => 'cloud.googleapis.com/location=~us-central1.*')
+end
diff --git a/lib/fog/google/examples/sql/flags.rb b/lib/fog/google/examples/sql/flags.rb
new file mode 100644
index 0000000..cfa5371
--- /dev/null
+++ b/lib/fog/google/examples/sql/flags.rb
@@ -0,0 +1,7 @@
+def test
+  connection = Fog::Google::SQL.new
+
+  puts 'Listing all Flags...'
+  puts '--------------------'
+  connection.flags
+end
diff --git a/lib/fog/google/examples/sql/instances.rb b/lib/fog/google/examples/sql/instances.rb
new file mode 100644
index 0000000..59bbaf8
--- /dev/null
+++ b/lib/fog/google/examples/sql/instances.rb
@@ -0,0 +1,38 @@
+def test
+  connection = Fog::Google::SQL.new
+
+  puts 'Create a Instance...'
+  puts '--------------------'
+  instance = connection.instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  instance.wait_for { ready? }
+
+  puts 'Get the Instance...'
+  puts '----------------------'
+  connection.instances.get(instance.instance)
+
+  puts 'List all Instances...'
+  puts '---------------------'
+  connection.instances.all
+
+  puts 'Update the Instance...'
+  puts '----------------------'
+  instance.activation_policy = 'ALWAYS'
+  instance.update
+  instance.wait_for { ready? }
+
+  puts 'Reset the Instance SSL configuration...'
+  puts '---------------------------------------'
+  instance.reset_ssl_config
+
+  puts 'Restart the Instance...'
+  puts '-----------------------'
+  instance.restart
+
+  puts 'Set the Instance root password...'
+  puts '---------------------------------'
+  instance.set_root_password(Fog::Mock.random_letters_and_numbers(8))
+
+  puts 'Delete the Instance...'
+  puts '----------------------'
+  instance.destroy
+end
diff --git a/lib/fog/google/examples/sql/operations.rb b/lib/fog/google/examples/sql/operations.rb
new file mode 100644
index 0000000..20f4ce0
--- /dev/null
+++ b/lib/fog/google/examples/sql/operations.rb
@@ -0,0 +1,20 @@
+def test
+  connection = Fog::Google::SQL.new
+
+  puts 'Create a Instance...'
+  puts '--------------------'
+  instance = connection.instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  instance.wait_for { ready? }
+
+  puts 'Delete the Instance...'
+  puts '----------------------'
+  operation = instance.destroy
+
+  puts 'Get the Operation...'
+  puts '--------------------'
+  connection.operations.get(instance.identity, operation.identity)
+
+  puts 'Listing all Operations...'
+  puts '-------------------------'
+  connection.operations.all(instance.identity)
+end
diff --git a/lib/fog/google/examples/sql/ssl_certs.rb b/lib/fog/google/examples/sql/ssl_certs.rb
new file mode 100644
index 0000000..2233cf3
--- /dev/null
+++ b/lib/fog/google/examples/sql/ssl_certs.rb
@@ -0,0 +1,28 @@
+def test
+  connection = Fog::Google::SQL.new
+
+  puts 'Create a Instance...'
+  puts '--------------------'
+  instance = connection.instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  instance.wait_for { ready? }
+
+  puts 'Create a SSL certificate...'
+  puts '---------------------------'
+  ssl_cert = connection.ssl_certs.create(:instance => instance.instance, :common_name => Fog::Mock.random_letters(16))
+
+  puts 'Get the SSL certificate...'
+  puts '--------------------------'
+  connection.ssl_certs.get(instance.instance, ssl_cert.sha1_fingerprint)
+
+  puts 'List all SSL certificate...'
+  puts '---------------------------'
+  connection.ssl_certs.all(instance.instance)
+
+  puts 'Delete the SSL certificate...'
+  puts '-----------------------------'
+  ssl_cert.destroy
+
+  puts 'Delete the Instance...'
+  puts '----------------------'
+  instance.destroy
+end
diff --git a/lib/fog/google/examples/sql/tiers.rb b/lib/fog/google/examples/sql/tiers.rb
new file mode 100644
index 0000000..dbdfe20
--- /dev/null
+++ b/lib/fog/google/examples/sql/tiers.rb
@@ -0,0 +1,7 @@
+def test
+  connection = Fog::Google::SQL.new
+
+  puts 'Listing all Tiers...'
+  puts '--------------------'
+  connection.tiers
+end
diff --git a/lib/fog/google/models/compute/address.rb b/lib/fog/google/models/compute/address.rb
index 5174100..eabc6b8 100755
--- a/lib/fog/google/models/compute/address.rb
+++ b/lib/fog/google/models/compute/address.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       ##
       # Represents an Address resource
       #
@@ -24,6 +23,17 @@ module Fog
         IN_USE_STATE   = 'IN_USE'
         RESERVED_STATE = 'RESERVED'
 
+        def server
+          return nil if !in_use? || self.users.nil? || self.users.empty?
+
+          service.servers.get(self.users.first.split('/')[-1])
+        end
+
+        def server=(server)
+          requires :identity, :region
+          server ? associate(server) : disassociate
+        end
+
         def save
           requires :identity, :region
 
@@ -55,8 +65,30 @@ module Fog
         def in_use?
           self.status == IN_USE_STATE
         end
-      end
 
+        private
+
+        def associate(server)
+          nic = server.network_interfaces.first['name']
+          data = service.add_server_access_config(server.name, server.zone_name, nic, :address => self.address)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def disassociate
+          return nil if !in_use? || self.users.nil? || self.users.empty?
+
+          # An address can only be associated with one server at a time
+          server = service.servers.get(self.users.first.split('/')[-1])
+          nic = server.network_interfaces.first['name']
+          unless server.network_interfaces.first['accessConfigs'].nil? ||
+                 server.network_interfaces.first['accessConfigs'].empty?
+            access_config = server.network_interfaces.first['accessConfigs'].first['name']
+            data = service.delete_server_access_config(server.name, server.zone_name, nic,
+                                                       :access_config => access_config)
+            Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+          end
+        end
+      end
     end
   end
 end
diff --git a/lib/fog/google/models/compute/addresses.rb b/lib/fog/google/models/compute/addresses.rb
index 7ac1287..33bf30f 100755
--- a/lib/fog/google/models/compute/addresses.rb
+++ b/lib/fog/google/models/compute/addresses.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/compute/address'
 module Fog
   module Compute
     class Google
-
       class Addresses < Fog::Collection
         model Fog::Compute::Google::Address
 
@@ -27,8 +26,15 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-      end
 
+        def get_by_ip_address(ip_address)
+          addresses = service.list_aggregated_addresses(:filter => "address eq .*#{ip_address}").body['items']
+          address = addresses.each_value.select { |region| region.key?('addresses') }
+
+          return nil if address.empty?
+          new(address.first['addresses'].first)
+        end
+      end
     end
   end
 end
diff --git a/lib/fog/google/models/compute/backend_service.rb b/lib/fog/google/models/compute/backend_service.rb
new file mode 100644
index 0000000..a8bb78e
--- /dev/null
+++ b/lib/fog/google/models/compute/backend_service.rb
@@ -0,0 +1,92 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class Google
+      class BackendService < Fog::Model
+        identity :name
+
+        attribute :backends, :aliases => 'backends'
+        attribute :creation_timestamp, :aliases => 'kind'
+        attribute :description, :aliases => 'description'
+        attribute :fingerprint, :aliases => 'fingerprint'
+        attribute :health_checks, :aliases => 'healthChecks'
+        attribute :id, :aliases => 'id'
+        attribute :kind, :aliases => 'kind'
+        attribute :port, :aliases => 'port'
+        attribute :protocol, :aliases => 'protocol'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :timeout_sec, :aliases => 'timeoutSec'
+
+        def save
+          requires :name, :health_checks
+
+          options = {
+            'description' => description,
+            'backends' => backends,
+            'fingerprint' => fingerprint,
+            'healthChecks' => health_checks,
+            'port' => port,
+            'protocol' => protocol,
+            'timeoutSec' => timeout_sec
+          }
+
+          data = service.insert_backend_service(name, options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'])
+          operation.wait_for { !pending? }
+          reload
+        end
+
+        def destroy(async=false)
+          requires :name
+
+          operation = service.delete_backend_service(name)
+          unless async
+            Fog.wait_for do
+              operation.body["status"] == "DONE"
+            end
+          end
+          operation
+        end
+
+        def get_health
+          service.get_backend_service_health self
+        end
+
+        def add_backend backend
+          # ensure backend is an array of hashes
+          backend = [backend] unless backend.class == Array
+          backend.map! { |resource| resource.class == String ? { 'group' => resource }: resource }
+          service.add_backend_service_backends(self, backend)
+          reload
+        end
+
+        def ready?
+          begin
+            service.get_backend_service(self.name)
+            true
+          rescue Fog::Errors::NotFound
+            false
+          end
+        end
+
+        def reload
+          requires :name
+
+          return unless data =
+            begin
+              collection.get(name)
+            rescue Excon::Errors::SocketError
+              nil
+            end
+
+          new_attributes = data.attributes
+          merge_attributes(new_attributes)
+          self
+        end
+
+        RUNNING_STATE = "READY"
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/backend_services.rb b/lib/fog/google/models/compute/backend_services.rb
new file mode 100644
index 0000000..185957e
--- /dev/null
+++ b/lib/fog/google/models/compute/backend_services.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/backend_service'
+
+module Fog
+  module Compute
+    class Google
+      class BackendServices < Fog::Collection
+        model Fog::Compute::Google::BackendService
+
+        def all(filters={})
+          data = service.list_backend_services.body['items'] || []
+          load(data)
+        end
+
+        def get(identity)
+          response = service.get_backend_service(identity)
+          new(response.body) unless response.nil?
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/disk.rb b/lib/fog/google/models/compute/disk.rb
index c56232f..8e80a14 100644
--- a/lib/fog/google/models/compute/disk.rb
+++ b/lib/fog/google/models/compute/disk.rb
@@ -3,26 +3,25 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class Disk < Fog::Model
-
         identity :name
 
-        attribute :kind, :aliases => 'kind'
-        attribute :id, :aliases => 'id'
+        attribute :kind
+        attribute :id
         attribute :creation_timestamp, :aliases => 'creationTimestamp'
-        attribute :zone_name, :aliases => 'zone'
-        attribute :status, :aliases => 'status'
-        attribute :description, :aliases => 'description'
+        attribute :zone, :aliases => :zone_name
+        attribute :status
+        attribute :description
         attribute :size_gb, :aliases => 'sizeGb'
         attribute :self_link, :aliases => 'selfLink'
         attribute :source_image, :aliases => 'sourceImage'
+        attribute :source_image_id, :aliases => 'sourceImageId'
         attribute :source_snapshot, :aliases => 'sourceSnapshot'
-        attribute :source_snapshot_id, :aliases => 'sourceSnapshot'
+        attribute :source_snapshot_id, :aliases => 'sourceSnapshotId'
+        attribute :type
 
         def save
-          requires :name
-          requires :zone_name
+          requires :name, :zone, :size_gb
 
           options = {}
           my_description = "Created with fog"
@@ -36,33 +35,27 @@ module Fog
 
           options['sizeGb'] = size_gb
           options['description'] = description || my_description
+          options['type'] = type
 
-          data = service.insert_disk(name, zone_name, source_image, options).body
-          data = service.backoff_if_unfound {service.get_disk(name, zone_name).body}
-          service.disks.merge_attributes(data)
+          data = service.insert_disk(name, zone, source_image, options)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+          operation.wait_for { !pending? }
+          reload
         end
 
         def destroy(async=true)
-          requires :name, :zone_name
-          operation = service.delete_disk(name, zone_name)
-          # wait until "DONE" to ensure the operation doesn't fail, raises exception on error
-          if not async
-            Fog.wait_for do
-              operation = service.get_zone_operation(zone_name, operation.body["name"])
-              operation.body["status"] == "DONE"
-            end
+          requires :name, :zone
+
+          data = service.delete_disk(name, zone_name)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+          unless async
+            operation.wait_for { ready? }
           end
           operation
         end
 
-        def zone
-          if self.zone_name.is_a? String
-            service.get_zone(self.zone_name.split('/')[-1]).body["name"]
-          elsif zone_name.is_a? Excon::Response
-            service.get_zone(zone_name.body["name"]).body["name"]
-          else
-            self.zone_name
-          end
+        def zone_name
+          zone.nil? ? nil : zone.split('/')[-1]
         end
 
         # auto_delete can only be applied to disks created before instance creation.
@@ -89,8 +82,7 @@ module Fog
         end
 
         def reload
-          requires :identity
-          requires :zone_name
+          requires :identity, :zone
 
           return unless data = begin
             collection.get(identity, zone_name)
@@ -104,8 +96,7 @@ module Fog
         end
 
         def create_snapshot(snapshot_name, snapshot_description="")
-          requires :name
-          requires :zone_name
+          requires :name, :zone
 
           if snapshot_name.nil? or snapshot_name.empty?
             raise ArgumentError, 'Invalid snapshot name'
@@ -116,18 +107,13 @@ module Fog
             'description' => snapshot_description,
           }
 
-          service.insert_snapshot(name, self.zone, service.project, options)
-          data = service.backoff_if_unfound {
-            service.get_snapshot(snapshot_name, service.project).body
-          }
-          service.snapshots.merge_attributes(data)
-
-          # Try to return the representation of the snapshot we created
+          data = service.insert_snapshot(name, zone_name, service.project, options)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+          operation.wait_for { !pending? }
           service.snapshots.get(snapshot_name)
         end
 
         RUNNING_STATE = "READY"
-
       end
     end
   end
diff --git a/lib/fog/google/models/compute/disk_type.rb b/lib/fog/google/models/compute/disk_type.rb
new file mode 100644
index 0000000..3198ad2
--- /dev/null
+++ b/lib/fog/google/models/compute/disk_type.rb
@@ -0,0 +1,28 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class Google
+      class DiskType < Fog::Model
+        identity :name
+
+        attribute :kind
+        attribute :id
+        attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :deprecated
+        attribute :description
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :valid_disk_size, :aliases => 'validDiskSize'
+        attribute :zone
+
+        def reload
+          requires :identity, :zone
+
+          data = collection.get(identity, self.zone)
+          merge_attributes(data.attributes)
+          self
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/disk_types.rb b/lib/fog/google/models/compute/disk_types.rb
new file mode 100644
index 0000000..5f6f8c3
--- /dev/null
+++ b/lib/fog/google/models/compute/disk_types.rb
@@ -0,0 +1,40 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/disk_type'
+
+module Fog
+  module Compute
+    class Google
+      class DiskTypes < Fog::Collection
+        model Fog::Compute::Google::DiskType
+
+        def all(filters = {})
+          if filters['zone']
+            data = service.list_disk_types(filters['zone']).body['items'] || []
+          else
+            data = []
+            service.list_aggregated_disk_types.body['items'].each_value do |zone|
+              data.concat(zone['diskTypes']) if zone['diskTypes']
+            end
+          end
+          load(data)
+        end
+
+        def get(identity, zone = nil)
+          response = nil
+          if zone
+            response = service.get_disk_type(identity, zone).body
+          else
+            disk_types = service.list_aggregated_disk_types(:filter => "name eq .*#{identity}").body['items'] || {}
+            disk_type = disk_types.each_value.detect { |zone| zone.key?('diskTypes') } || {}
+
+            response = disk_type['diskTypes'].first unless disk_type.empty?
+          end
+          return nil if response.nil?
+          new(response)
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/disks.rb b/lib/fog/google/models/compute/disks.rb
index 8309ad3..98658a9 100644
--- a/lib/fog/google/models/compute/disks.rb
+++ b/lib/fog/google/models/compute/disks.rb
@@ -4,42 +4,38 @@ require 'fog/google/models/compute/disk'
 module Fog
   module Compute
     class Google
-
       class Disks < Fog::Collection
-
         model Fog::Compute::Google::Disk
 
         def all(filters={})
-          if filters['zone'].nil?
+          if filters['zone']
+            data = service.list_disks(filters['zone']).body['items'] || []
+          else
             data = []
-            service.list_zones.body['items'].each do |zone|
-              data += service.list_disks(zone['name']).body["items"] || []
+            service.list_aggregated_disks.body['items'].each_value do |zone|
+              data.concat(zone['disks']) if zone['disks']
             end
-          else
-            data = service.list_disks(filters['zone']).body["items"] || []
           end
           load(data)
         end
 
         def get(identity, zone=nil)
           response = nil
-          if zone.nil?
-            service.list_zones.body['items'].each do |zone|
-              begin
-                response = service.get_disk(identity, zone['name'])
-                break if response.status == 200
-              rescue Fog::Errors::Error
-              end
-            end
+          if zone
+            response = service.get_disk(identity, zone).body
           else
-            response = service.get_disk(identity, zone)
+            disks = service.list_aggregated_disks(:filter => "name eq .*#{identity}").body['items']
+            disk = disks.each_value.select { |zone| zone.key?('disks') }
+
+            # It can only be 1 disk with the same name across all regions
+            response = disk.first['disks'].first unless disk.empty?
           end
           return nil if response.nil?
-          new(response.body)
+          new(response)
+        rescue Fog::Errors::NotFound
+          nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/firewall.rb b/lib/fog/google/models/compute/firewall.rb
index 424c9bd..5bdbc9b 100644
--- a/lib/fog/google/models/compute/firewall.rb
+++ b/lib/fog/google/models/compute/firewall.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       ##
       # Represents a Firewall resource
       #
@@ -42,7 +41,6 @@ module Fog
           operation
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/firewalls.rb b/lib/fog/google/models/compute/firewalls.rb
index 875e1a7..a12c44d 100644
--- a/lib/fog/google/models/compute/firewalls.rb
+++ b/lib/fog/google/models/compute/firewalls.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/compute/firewall'
 module Fog
   module Compute
     class Google
-
       class Firewalls < Fog::Collection
         model Fog::Compute::Google::Firewall
 
@@ -21,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/flavor.rb b/lib/fog/google/models/compute/flavor.rb
index cd7870f..b0e0222 100644
--- a/lib/fog/google/models/compute/flavor.rb
+++ b/lib/fog/google/models/compute/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class Flavor < Fog::Model
-
         identity :name
 
         attribute :kind
@@ -30,7 +28,6 @@ module Fog
           self
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/flavors.rb b/lib/fog/google/models/compute/flavors.rb
index d85c15d..ede4398 100644
--- a/lib/fog/google/models/compute/flavors.rb
+++ b/lib/fog/google/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/flavor'
 module Fog
   module Compute
     class Google
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::Google::Flavor
 
         def all(filters = {})
@@ -27,9 +25,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/forwarding_rule.rb b/lib/fog/google/models/compute/forwarding_rule.rb
index 64d5273..d633d0e 100644
--- a/lib/fog/google/models/compute/forwarding_rule.rb
+++ b/lib/fog/google/models/compute/forwarding_rule.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class ForwardingRule < Fog::Model
-
         identity :name
 
         attribute :kind, :aliases => 'kind'
@@ -31,10 +29,10 @@ module Fog
             'target' => target
           }
 
-          service.insert_forwarding_rule(name, region, options).body
-          data = service.backoff_if_unfound {service.get_forwarding_rule(name, region).body}
-          merge_attributes(data)
-          self
+          data = service.insert_forwarding_rule(name, region, options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'], nil, data['region'])
+          operation.wait_for { !pending? }
+          reload
         end
 
         def set_target new_target
diff --git a/lib/fog/google/models/compute/forwarding_rules.rb b/lib/fog/google/models/compute/forwarding_rules.rb
index 2c4f4cb..0db9e2d 100644
--- a/lib/fog/google/models/compute/forwarding_rules.rb
+++ b/lib/fog/google/models/compute/forwarding_rules.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/forwarding_rule'
 module Fog
   module Compute
     class Google
-
       class ForwardingRules < Fog::Collection
-
         model Fog::Compute::Google::ForwardingRule
 
         def all(filters={})
@@ -37,9 +35,7 @@ module Fog
           return nil if response.nil?
           new(response.body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/global_forwarding_rule.rb b/lib/fog/google/models/compute/global_forwarding_rule.rb
new file mode 100644
index 0000000..26c9136
--- /dev/null
+++ b/lib/fog/google/models/compute/global_forwarding_rule.rb
@@ -0,0 +1,86 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class Google
+      class GlobalForwardingRule < Fog::Model
+        identity :name
+
+        attribute :kind, :aliases => 'kind'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :id, :aliases => 'id'
+        attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :description, :aliases => 'description'
+        attribute :region, :aliases => 'region' # should always be 'global'
+        attribute :ip_address, :aliases => 'IPAddress' # string
+        attribute :ip_protocol, :aliases => 'IPProtocol' # string
+        attribute :port_range, :aliases => 'portRange' # string
+        attribute :target, :aliases => 'target' # string, URL of global target http proxy
+
+        def save
+          requires :name
+          
+          options = {
+            'description' => description,
+            'region' => 'global',
+            'IPAddress' => ip_address,
+            'IPProtocol' => ip_protocol || "TCP",
+            'portRange' => port_range || 80,
+            'target' => target
+          }
+
+          data = service.insert_global_forwarding_rule(name,  options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'], nil, data['region'])
+          operation.wait_for { !pending? }
+          reload
+        end
+
+        def destroy(async=true)
+          requires :name
+
+          operation = service.delete_global_forwarding_rule(name, 'global')
+          if not async
+            # wait until "RUNNING" or "DONE" to ensure the operation doesn't
+            # fail, raises exception on error
+            Fog.wait_for do
+              operation.body["status"] == "DONE"
+            end
+          end
+          operation
+        end
+
+        def set_target new_target
+          new_target = new_target.self_link unless new_target.class == String
+          self.target = new_target
+          service.set_global_forwarding_rule_target(self, new_target)
+          reload
+        end
+
+        def ready?
+          begin
+            service.get_global_forwarding_rule(self.name, 'global')
+            true
+          rescue Fog::Errors::NotFound
+            false
+          end
+        end
+
+        def reload
+          requires :name
+
+          return unless data = begin
+            collection.get(name, 'global')
+          rescue Excon::Errors::SocketError
+            nil
+          end
+
+          new_attributes = data.attributes
+          merge_attributes(new_attributes)
+          self
+        end
+
+        RUNNING_STATE = "READY"
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/global_forwarding_rules.rb b/lib/fog/google/models/compute/global_forwarding_rules.rb
new file mode 100644
index 0000000..955a60e
--- /dev/null
+++ b/lib/fog/google/models/compute/global_forwarding_rules.rb
@@ -0,0 +1,23 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/global_forwarding_rule'
+
+module Fog
+  module Compute
+    class Google
+      class GlobalForwardingRules < Fog::Collection
+        model Fog::Compute::Google::GlobalForwardingRule
+
+        def all
+          data = service.list_global_forwarding_rules.body['items'] || []
+          load(data)
+        end
+
+        def get(identity, region='global')
+          response = service.get_global_forwarding_rule(identity, region)
+          return nil if response.nil?
+          new(response.body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/http_health_check.rb b/lib/fog/google/models/compute/http_health_check.rb
index 08ef267..d014a33 100644
--- a/lib/fog/google/models/compute/http_health_check.rb
+++ b/lib/fog/google/models/compute/http_health_check.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class HttpHealthCheck < Fog::Model
-
         identity :name
 
         attribute :kind, :aliases => 'kind'
@@ -35,9 +33,10 @@ module Fog
             'healthyThreshold' => healthy_threshold || 2,
           }
 
-          service.insert_http_health_check(name, options).body
-          data = service.backoff_if_unfound {service.get_http_health_check(name).body}
-          merge_attributes(data)
+          data = service.insert_http_health_check(name, options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'], data['zone'])
+          operation.wait_for { !pending? }
+          reload
         end
 
         def destroy(async=true)
diff --git a/lib/fog/google/models/compute/http_health_checks.rb b/lib/fog/google/models/compute/http_health_checks.rb
index e6c0457..c92a78f 100644
--- a/lib/fog/google/models/compute/http_health_checks.rb
+++ b/lib/fog/google/models/compute/http_health_checks.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/http_health_check'
 module Fog
   module Compute
     class Google
-
       class HttpHealthChecks < Fog::Collection
-
         model Fog::Compute::Google::HttpHealthCheck
 
         def all(filters={})
@@ -15,12 +13,14 @@ module Fog
         end
 
         def get(identity)
+          resonse = nil
           response = service.get_http_health_check(identity)
-          new(response.body) unless response.nil?
+          return nil if response.nil?
+          new(response.body)
+        rescue Fog::Errors::NotFound
+          nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/image.rb b/lib/fog/google/models/compute/image.rb
index ee50070..db569bf 100644
--- a/lib/fog/google/models/compute/image.rb
+++ b/lib/fog/google/models/compute/image.rb
@@ -3,16 +3,19 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class Image < Fog::Model
-
         identity :name
 
         attribute :id
         attribute :kind
-        attribute :self_link, :aliases => 'selfLink'
+        attribute :archive_size_bytes, :aliases => 'archiveSizeBytes'
         attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :deprecated
         attribute :description
+        attribute :disk_size_gb, :aliases => 'diskSizeGb'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :source_type, :aliases => 'sourceType'
+        attribute :status
 
         # This attribute is not available in the representation of an
         # 'image' returned by the GCE servser (see GCE API). However,
@@ -27,21 +30,36 @@ module Fog
         #   :container_type => 'TAR',
         #   :sha1Checksum   => ,
         # }
-        attribute :raw_disk
-
-        attribute :status
+        attribute :raw_disk, :aliases => 'rawDisk'
 
         def preferred_kernel=(args)
           Fog::Logger.deprecation("preferred_kernel= is no longer used [light_black](#{caller.first})[/]")
         end
+
         def preferred_kernel
           Fog::Logger.deprecation("preferred_kernel is no longer used [light_black](#{caller.first})[/]")
           nil
         end
 
+        READY_STATE = "READY"
+
+        def ready?
+          self.status == READY_STATE
+        end
+
+        def destroy(async=true)
+          data = service.delete_image(name)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'])
+          unless async
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
         def reload
           requires :name
 
+          self.project = self.service.project
           data = service.get_image(name, self.project).body
 
           self.merge_attributes(data)
@@ -57,23 +75,15 @@ module Fog
             'description'     => description,
           }
 
-          service.insert_image(name, options)
-
-          data = service.backoff_if_unfound {
-            service.get_image(self.name).body
-          }
-
-          # Track the name of the project in which we insert the image
-          data.merge!('project' => service.project)
-          self.project = self.service.project
-
-          service.images.merge_attributes(data)
+          data = service.insert_image(name, options)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'])
+          operation.wait_for { !pending? }
+          reload
         end
 
         def resource_url
           "#{self.project}/global/images/#{name}"
         end
-
       end
     end
   end
diff --git a/lib/fog/google/models/compute/images.rb b/lib/fog/google/models/compute/images.rb
index 6d7ea2c..6de4c94 100644
--- a/lib/fog/google/models/compute/images.rb
+++ b/lib/fog/google/models/compute/images.rb
@@ -4,17 +4,18 @@ require 'fog/google/models/compute/image'
 module Fog
   module Compute
     class Google
-
       class Images < Fog::Collection
-
         model Fog::Compute::Google::Image
 
         # NOTE: Not everyone has access to these projects because of the
         # licenses needed to use some of them.
         # https://developers.google.com/compute/docs/premium-operating-systems
         GLOBAL_PROJECTS = [
-          'debian-cloud',
           'centos-cloud',
+          'coreos-cloud',
+          'debian-cloud',
+          'google-containers',
+          'opensuse-cloud',
           'rhel-cloud',
           'suse-cloud'
         ]
@@ -57,14 +58,14 @@ module Fog
           end
 
           # If it wasn't found in any project, raise
-          if data.nil?
-            raise Fog::Errors::NotFound.new(
-              "Unable to find the image #{identity} in the following projects: #{all_projects.join(', ')}")
-          end
+          return nil if data.nil?
 
           new(data)
-        end
+        
+        rescue Fog::Errors::NotFound.new(
+          "Unable to find the image #{identity} in the following projects: #{all_projects.join(', ')}")
 
+        end
       end
     end
   end
diff --git a/lib/fog/google/models/compute/network.rb b/lib/fog/google/models/compute/network.rb
index 5d129d9..735e166 100644
--- a/lib/fog/google/models/compute/network.rb
+++ b/lib/fog/google/models/compute/network.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       ##
       # Represents a Network resource
       #
@@ -39,7 +38,6 @@ module Fog
           operation
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/networks.rb b/lib/fog/google/models/compute/networks.rb
index 6f58df5..3a9e5ac 100644
--- a/lib/fog/google/models/compute/networks.rb
+++ b/lib/fog/google/models/compute/networks.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/compute/network'
 module Fog
   module Compute
     class Google
-
       class Networks < Fog::Collection
         model Fog::Compute::Google::Network
 
@@ -21,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/operation.rb b/lib/fog/google/models/compute/operation.rb
index e5ce118..8774699 100644
--- a/lib/fog/google/models/compute/operation.rb
+++ b/lib/fog/google/models/compute/operation.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class Operation < Fog::Model
-
         identity :name
 
         attribute :kind
@@ -71,7 +69,6 @@ module Fog
         PENDING_STATE = "PENDING"
         RUNNING_STATE = "RUNNING"
         DONE_STATE = "DONE"
-
       end
     end
   end
diff --git a/lib/fog/google/models/compute/operations.rb b/lib/fog/google/models/compute/operations.rb
index 948f880..177ec71 100644
--- a/lib/fog/google/models/compute/operations.rb
+++ b/lib/fog/google/models/compute/operations.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/operation'
 module Fog
   module Compute
     class Google
-
       class Operations < Fog::Collection
-
         model Fog::Compute::Google::Operation
 
         def all(filters = {})
@@ -33,9 +31,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/project.rb b/lib/fog/google/models/compute/project.rb
index 2dbf0c1..3a5adf3 100644
--- a/lib/fog/google/models/compute/project.rb
+++ b/lib/fog/google/models/compute/project.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       ##
       # Represents a Project resource
       #
@@ -26,7 +25,6 @@ module Fog
           Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'])
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/projects.rb b/lib/fog/google/models/compute/projects.rb
index f027dff..371ac4c 100644
--- a/lib/fog/google/models/compute/projects.rb
+++ b/lib/fog/google/models/compute/projects.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/compute/project'
 module Fog
   module Compute
     class Google
-
       class Projects < Fog::Collection
         model Fog::Compute::Google::Project
 
@@ -16,7 +15,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/region.rb b/lib/fog/google/models/compute/region.rb
index b4e4c6f..6eb60a1 100755
--- a/lib/fog/google/models/compute/region.rb
+++ b/lib/fog/google/models/compute/region.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       ##
       # Represents a Region resource
       #
@@ -28,7 +27,6 @@ module Fog
           self.status == UP_STATE
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/regions.rb b/lib/fog/google/models/compute/regions.rb
index 9684cbf..c33c307 100755
--- a/lib/fog/google/models/compute/regions.rb
+++ b/lib/fog/google/models/compute/regions.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/compute/region'
 module Fog
   module Compute
     class Google
-
       class Regions < Fog::Collection
         model Fog::Compute::Google::Region
 
@@ -21,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/resource_view.rb b/lib/fog/google/models/compute/resource_view.rb
new file mode 100644
index 0000000..dda765d
--- /dev/null
+++ b/lib/fog/google/models/compute/resource_view.rb
@@ -0,0 +1,116 @@
+require 'fog/core/model'
+# the resource view model creates either a region view or zone view depending on which is parameter is passed
+
+module Fog
+  module Compute
+    class Google
+      class ResourceView < Fog::Model
+        identity :name
+
+        attribute :kind, :aliases => 'kind'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :id, :aliases => 'id'
+        attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :description, :aliases => 'description'
+        attribute :region, :aliases => "region" # string, required for region views
+        attribute :labels, :aliases => "labels" # array of hashes including 'key' and 'value' as keys
+        attribute :zone, :aliases => "zone" # string, required for zone views
+        attribute :last_modified, :aliases => "lastModified"
+        attribute :members, :aliases => "members" # array of members of resource view
+        attribute :num_members, :aliases => "numMemebers" # integer
+
+        def save
+          requires :name
+          labels ||= []
+          members ||= []
+
+          if region then
+            options = {
+              'description' => description,
+              'labels' => labels,
+              'lastModified' => last_modified,
+              'members' => members,
+              'numMembers' => num_members
+            }
+            @region = region
+            data = service.insert_region_view(name, region, options).body
+          operation = service.get_region_view(data['resource']['name'],nil, @region).body
+          end
+
+          if zone then
+            options = {
+              'description' => description,
+              'labels' => labels,
+              'lastModified' => last_modified,
+              'members' => members,
+              'numMembers' => num_members
+            }
+            @zone = zone
+            data = service.insert_zone_view(name, zone, options).body
+          operation = service.get_zone_view(data['resource']['name'], @zone).body
+          end
+          reload
+        end
+
+        def destroy(async=false)
+          requires :name
+# parse the self link to get the zone or region          
+          selflink = self.self_link.split('/')
+          if selflink[7]=='regions' then
+            operation = service.delete_region_view(name, selflink[8])
+          end
+        
+          if selflink[7]== 'zones' then
+            operation= service.delete_zone_view(name, selflink[8])
+          end
+
+          if not async
+            # wait until "DONE" to ensure the operation doesn't fail, raises
+            # exception on error
+            Fog.wait_for do
+              operation.body == nil
+            end
+          end
+          operation
+        end
+
+        def add_resources resources
+          resources = [resources] unless resources.class == Array
+          resources.map { |resource| resource.class == String ? resource : resource.self_link } 
+          if @zone then
+            service.add_zone_view_resources(self, resources, @zone)
+          end
+          if @region then
+            service.add_region_view_resources(self, reources, @region)
+          end
+          reload
+        end
+
+        def ready?
+          begin
+            if @zone then service.get_zone_view(self.name, @zone) end
+            if @region then service.get_region_view(self.name, @region) end
+            true
+          rescue Fog::Errors::NotFound
+            false
+          end
+        end
+
+        def reload
+          requires :name
+
+          return unless data = begin
+            collection.get(name, region, zone)
+          rescue Excon::Errors::SocketError
+            nil
+          end
+
+          new_attributes = data.attributes
+          merge_attributes(new_attributes)
+          self
+        end
+        RUNNING_STATE = "READY"
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/resource_views.rb b/lib/fog/google/models/compute/resource_views.rb
new file mode 100644
index 0000000..7bc1d9a
--- /dev/null
+++ b/lib/fog/google/models/compute/resource_views.rb
@@ -0,0 +1,57 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/resource_view'
+
+module Fog
+  module Compute
+    class Google
+      class ResourceViews < Fog::Collection
+        model Fog::Compute::Google::ResourceView
+
+        def all(filters={})
+          if fliters['region'].nil? && filters['zone'].nil?
+            data = []
+            service.list_regions.body['items'].each do |region|
+              data += service.list_region_views(region['name']).body['items'] || []
+            end
+            service.list_zones.body['items'].each do |zone|
+              data += service.list_zone_views(zone['name']).body['items'] || []
+            end
+          elsif filters['zone'] 
+            data = service.list_zone_views(fliters['zone']).body['items'] || []
+          else 
+            data = service.list_region_views(filters['region']).body['items'] || []
+          end
+          load(data)
+        end
+
+        def get(identity, region=nil, zone=nil)
+          response = nil
+          
+          if region.nil? & zone.nil?
+            service.list_regions.body['items'].each do |region|
+              begin
+                response = service.get_region_view(identity, region['name'])
+                break if response.status == 200
+              rescue Fog::Errors::Error
+              end
+            end
+            service.list_zones.body['items'].each do |zone|
+              begin
+                response = service.get_zone_view(identity, zone['name'])
+                break if response.status == 200
+              rescue Fog::Errors::Error
+              end
+            end
+          elsif region
+            response = service.get_region_view(identity, region)
+          else 
+            response = service.get_zone_view(identity, zone)
+          end
+
+          return nil if response.nil?
+          new(response.body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/route.rb b/lib/fog/google/models/compute/route.rb
index 3468ccb..f21d5b2 100644
--- a/lib/fog/google/models/compute/route.rb
+++ b/lib/fog/google/models/compute/route.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       ##
       # Represents a Route resource
       #
@@ -46,7 +45,6 @@ module Fog
           operation
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/routes.rb b/lib/fog/google/models/compute/routes.rb
index ff21a44..3e35a32 100644
--- a/lib/fog/google/models/compute/routes.rb
+++ b/lib/fog/google/models/compute/routes.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/compute/route'
 module Fog
   module Compute
     class Google
-
       class Routes < Fog::Collection
         model Fog::Compute::Google::Route
 
@@ -21,7 +20,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/server.rb b/lib/fog/google/models/compute/server.rb
index 0a888aa..f7e9403 100644
--- a/lib/fog/google/models/compute/server.rb
+++ b/lib/fog/google/models/compute/server.rb
@@ -4,22 +4,30 @@ require 'net/ssh/proxy/command'
 module Fog
   module Compute
     class Google
-
       class Server < Fog::Compute::Server
-
         identity :name
 
-        attribute :network_interfaces, :aliases => 'networkInterfaces'
-        attribute :network, :aliases => 'network'
-        attribute :external_ip, :aliases => 'externalIP'
-        attribute :state, :aliases => 'status'
-        attribute :zone_name, :aliases => 'zone'
+        attribute :kind
+        attribute :id
+        attribute :can_ip_forward, :aliases => 'canIpForward'
+        attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :description
+        attribute :disks
         attribute :machine_type, :aliases => 'machineType'
-        attribute :disks, :aliases => 'disks'
         attribute :metadata
+        attribute :network_interfaces, :aliases => 'networkInterfaces'
+        attribute :scheduling
+        attribute :self_link, :aliases => 'selfLink'
         attribute :service_accounts, :aliases => 'serviceAccounts'
+        attribute :state, :aliases => 'status'
+        attribute :status_message, :aliases => 'statusMessage'
         attribute :tags
-        attribute :self_link, :aliases => 'selfLink'
+        attribute :zone, :aliases => :zone_name
+
+        # These attributes are not available in the representation of an 'instance' returned by the GCE API.
+        # They are useful only for the create process
+        attribute :network, :aliases => 'network'
+        attribute :external_ip, :aliases => 'externalIP'
         attribute :auto_restart
         attribute :on_host_maintenance
 
@@ -40,6 +48,7 @@ module Fog
         def kernel=(args)
           Fog::Logger.deprecation("kernel= is no longer used [light_black](#{caller.first})[/]")
         end
+
         def kernel
           Fog::Logger.deprecation("kernel is no longer used [light_black](#{caller.first})[/]")
           nil
@@ -55,14 +64,11 @@ module Fog
 
         def destroy(async=true)
           requires :name, :zone
-          operation = service.delete_server(name, zone)
-          if not async
-            # wait until "RUNNING" or "DONE" to ensure the operation doesn't
-            # fail, raises exception on error
-            Fog.wait_for do
-              operation = service.get_zone_operation(zone, operation.body["name"])
-              operation.body["status"] == "DONE"
-            end
+
+          data = service.delete_server(name, zone_name)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+          unless async
+            operation.wait_for { ready? }
           end
           operation
         end
@@ -98,18 +104,72 @@ module Fog
           ip
         end
 
+        def addresses
+          [private_ip_address, public_ip_address]
+        end
+
+        def attach_disk(disk, options = {})
+          requires :identity, :zone
+
+          data = service.attach_disk(identity, zone_name, disk, options)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def detach_disk(device_name)
+          requires :identity, :zone
+
+          data = service.detach_disk(identity, zone, device_name)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def reboot
+          requires :identity, :zone
+
+          data = service.reset_server(identity, zone_name)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def serial_port_output
+          requires :identity, :zone
+
+          data = service.get_server_serial_port_output(identity, zone_name)
+          data.body['contents']
+        end
+
+        def set_disk_auto_delete(auto_delete, device_name)
+          requires :identity, :zone
+
+          data = service.set_server_disk_auto_delete(identity, zone_name, auto_delete, device_name)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def set_scheduling(on_host_maintenance, automatic_restart)
+          requires :identity, :zone
+
+          data = service.set_server_scheduling(identity, zone_name, on_host_maintenance, automatic_restart)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def set_metadata(metadata = {})
+          requires :identity, :zone
+
+          data = service.set_metadata(identity, zone_name, self.metadata['fingerprint'], metadata)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
+        def set_tags(tags = [])
+          requires :identity, :zone
+
+          data = service.set_tags(identity, zone_name, self.tags['fingerprint'], tags)
+          Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+        end
+
         def ready?
           self.state == RUNNING
         end
 
-        def zone
-          if self.zone_name.is_a? String
-            service.get_zone(self.zone_name.split('/')[-1]).body["name"]
-          elsif zone_name.is_a? Excon::Response
-            service.get_zone(zone_name.body["name"]).body["name"]
-          else
-            self.zone_name
-          end
+        def zone_name
+          zone.nil? ? nil : zone.split('/')[-1]
         end
 
         def add_ssh_key username, key
@@ -132,9 +192,8 @@ module Fog
           return self.metadata
         end
 
-
         def reload
-          data = service.get_server(self.name, self.zone).body
+          data = service.get_server(self.name, zone_name).body
           self.merge_attributes(data)
         end
 
@@ -160,7 +219,8 @@ module Fog
               'serviceAccounts' => service_accounts,
               'tags' => tags,
               'auto_restart' => auto_restart,
-              'on_host_maintenance' => on_host_maintenance
+              'on_host_maintenance' => on_host_maintenance,
+              'can_ip_forward' => can_ip_forward
           }.delete_if {|key, value| value.nil?}
 
           if service_accounts
@@ -173,12 +233,11 @@ module Fog
             }]
           end
 
-          service.insert_server(name, zone_name, options)
-          data = service.backoff_if_unfound {service.get_server(self.name, self.zone_name).body}
-
-          service.servers.merge_attributes(data)
+          data = service.insert_server(name, zone_name, options)
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'], data.body['zone'])
+          operation.wait_for { !pending? }
+          reload
         end
-
       end
     end
   end
diff --git a/lib/fog/google/models/compute/servers.rb b/lib/fog/google/models/compute/servers.rb
index b77fab3..cbe8029 100644
--- a/lib/fog/google/models/compute/servers.rb
+++ b/lib/fog/google/models/compute/servers.rb
@@ -4,42 +4,34 @@ require 'fog/google/models/compute/server'
 module Fog
   module Compute
     class Google
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Google::Server
 
         def all(filters={})
-          if filters['zone'].nil?
+          if filters['zone']
+            data = service.list_servers(filters['zone']).body['items'] || []
+          else
             data = []
-            service.list_zones.body['items'].each do |zone|
-              data += service.list_servers(zone['name']).body["items"] || []
+            service.list_aggregated_servers.body['items'].each_value do |zone|
+              data.concat(zone['instances']) if zone['instances']
             end
-          else
-            data = service.list_servers(filters['zone']).body["items"] || []
           end
           load(data)
         end
 
         def get(identity, zone=nil)
           response = nil
-          if zone.nil?
-            service.list_zones.body['items'].each do |zone|
-              begin
-                response = service.get_server(identity, zone['name'])
-                break if response.status == 200
-              rescue Fog::Errors::Error
-              end
-            end
+          if zone
+            response = service.get_server(identity, zone).body
           else
-            response = service.get_server(identity, zone)
-          end
+            servers = service.list_aggregated_servers(:filter => "name eq .*#{identity}").body['items']
+            server = servers.each_value.select { |zone| zone.key?('instances') }
 
-          if response.nil? or response.status != 200
-            nil
-          else
-            new(response.body)
+            # It can only be 1 server with the same name across all regions
+            response = server.first['instances'].first unless server.empty?
           end
+          return nil if response.nil?
+          new(response)
         rescue Fog::Errors::NotFound
           nil
         end
diff --git a/lib/fog/google/models/compute/snapshot.rb b/lib/fog/google/models/compute/snapshot.rb
index d99648e..e7f1199 100644
--- a/lib/fog/google/models/compute/snapshot.rb
+++ b/lib/fog/google/models/compute/snapshot.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class Snapshot < Fog::Model
-
         identity :name
 
         attribute :kind
@@ -44,9 +42,7 @@ module Fog
         def resource_url
           "#{self.service.project}/global/snapshots/#{name}"
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/snapshots.rb b/lib/fog/google/models/compute/snapshots.rb
index 030c1e6..89050a0 100644
--- a/lib/fog/google/models/compute/snapshots.rb
+++ b/lib/fog/google/models/compute/snapshots.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/snapshot'
 module Fog
   module Compute
     class Google
-
       class Snapshots < Fog::Collection
-
         model Fog::Compute::Google::Snapshot
 
         def all
@@ -22,9 +20,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/target_http_proxies.rb b/lib/fog/google/models/compute/target_http_proxies.rb
new file mode 100644
index 0000000..c0996eb
--- /dev/null
+++ b/lib/fog/google/models/compute/target_http_proxies.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/target_http_proxy'
+
+module Fog
+  module Compute
+    class Google
+      class TargetHttpProxies < Fog::Collection
+        model Fog::Compute::Google::TargetHttpProxy
+
+        def all(filters={})
+          data = service.list_target_http_proxies.body['items'] || []
+          load(data)
+        end
+
+        def get(identity)
+          response = service.get_target_http_proxy(identity)
+          new(response.body) unless response.nil?
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/target_http_proxy.rb b/lib/fog/google/models/compute/target_http_proxy.rb
new file mode 100644
index 0000000..2872ba9
--- /dev/null
+++ b/lib/fog/google/models/compute/target_http_proxy.rb
@@ -0,0 +1,75 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class Google
+      class TargetHttpProxy < Fog::Model
+        identity :name
+
+        attribute :kind, :aliases => 'kind'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :id, :aliases => 'id'
+        attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :description, :aliases => 'description'
+        attribute :urlMap, :aliases => "urlMap"
+
+        def save
+          requires :name
+
+          options = {
+            'description' => description,
+            'urlMap'      => urlMap
+          }
+
+          data = service.insert_target_http_proxy(name,  options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'], data['zone'])
+          operation.wait_for { !pending? }
+          reload
+        end
+
+        def destroy(async=true)
+          requires :name
+          operation = service.delete_target_http_proxy(name)
+          if not async
+            # wait until "DONE" to ensure the operation doesn't fail, raises
+            # exception on error
+            Fog.wait_for do
+              operation.body["status"] == "DONE"
+            end
+          end
+          operation
+        end
+        
+        def set_url_map urlMap
+          operation = service.set_target_http_proxy_url_map(self, urlMap)
+          reload
+        end
+
+        def ready?
+          begin
+            service.get_target_http_proxy(self.name)
+            true
+          rescue Fog::Errors::NotFound
+            false
+          end
+        end
+
+        def reload
+          requires :name
+
+          return unless data = begin
+            collection.get(name)
+          rescue Excon::Errors::SocketError
+            nil
+          end
+
+          new_attributes = data.attributes
+          merge_attributes(new_attributes)
+          self
+        end
+
+        RUNNING_STATE = "READY"
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/target_instance.rb b/lib/fog/google/models/compute/target_instance.rb
new file mode 100644
index 0000000..87235ac
--- /dev/null
+++ b/lib/fog/google/models/compute/target_instance.rb
@@ -0,0 +1,74 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class Google
+      class TargetInstance < Fog::Model
+        identity :name
+
+        attribute :kind, :aliases => 'kind'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :id, :aliases => 'id'
+        attribute :creation_timestamp, :aliases => 'creationTimestamp'
+        attribute :description, :aliases => 'description'
+        attribute :zone, :aliases => "zone"
+        attribute :instance, :aliases => "instance"
+        attribute :nat_policy, :aliases => "natPolicy"
+
+        def save
+          requires :name, :zone
+
+          options = {
+            'description' => description,
+            'zone' => zone,
+            'natPolicy' => nat_policy,
+            'instance' => instance,
+          }
+
+          data = service.insert_target_instance(name, zone, options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'])
+          operation.wait_for { !pending? }
+          reload
+        end
+
+        def destroy(async=true)
+          requires :name, :zone
+          operation = service.delete_target_instance(name, zone)
+          if not async
+            # wait until "DONE" to ensure the operation doesn't fail, raises
+            # exception on error
+            Fog.wait_for do
+              operation.body["status"] == "DONE"
+            end
+          end
+          operation
+        end
+
+        def ready?
+          begin
+            service.get_target_instance(self.name, self.zone)
+            true
+          rescue Fog::Errors::NotFound
+            false
+          end
+        end
+
+        def reload
+          requires :name, :zone
+
+          return unless data = begin
+            collection.get(name, zone)
+          rescue Excon::Errors::SocketError
+            nil
+          end
+
+          new_attributes = data.attributes
+          merge_attributes(new_attributes)
+          self
+        end
+
+        RUNNING_STATE = "READY"
+      end
+    end
+   end
+  end
diff --git a/lib/fog/google/models/compute/target_instances.rb b/lib/fog/google/models/compute/target_instances.rb
new file mode 100644
index 0000000..799a2a4
--- /dev/null
+++ b/lib/fog/google/models/compute/target_instances.rb
@@ -0,0 +1,28 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/target_instance'
+
+module Fog
+  module Compute
+    class Google
+      class TargetInstances < Fog::Collection
+        model Fog::Compute::Google::TargetInstance
+
+        def all(zone = nil)
+          if zone.nil?
+            data = []
+            data = service.list_target_instances.body['items'] || []
+          
+          else
+            data = service.list_target_instances(zone).body['items'] || []
+          end
+          load(data)
+        end
+
+        def get(identity, zone=nil)
+            response = service.get_target_instance(identity, zone)
+            new(response.body) unless response.nil?
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/target_pool.rb b/lib/fog/google/models/compute/target_pool.rb
index 1aa46ce..f1a267d 100644
--- a/lib/fog/google/models/compute/target_pool.rb
+++ b/lib/fog/google/models/compute/target_pool.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class TargetPool < Fog::Model
-
         identity :name
 
         attribute :kind, :aliases => 'kind'
@@ -20,7 +18,6 @@ module Fog
         attribute :failover_ratio, :aliases => "failoverRatio"
         attribute :backup_pool, :aliases => "backupPool"
 
-
         def save
           requires :name, :region
 
@@ -34,10 +31,10 @@ module Fog
             'backupPool' => backup_pool
           }
 
-          service.insert_target_pool(name, region, options).body
-          data = service.backoff_if_unfound {service.get_target_pool(name, region).body}
-          merge_attributes(data)
-          self
+          data = service.insert_target_pool(name, region, options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'], nil, data['region'])
+          operation.wait_for { !pending? }
+          reload
         end
 
         def destroy(async=true)
@@ -91,6 +88,10 @@ module Fog
           end
         end
 
+        def region_name
+          region.nil? ? nil : region.split('/')[-1]
+        end
+
         def reload
           requires :name, :region
 
diff --git a/lib/fog/google/models/compute/target_pools.rb b/lib/fog/google/models/compute/target_pools.rb
index cc760f2..f407e23 100644
--- a/lib/fog/google/models/compute/target_pools.rb
+++ b/lib/fog/google/models/compute/target_pools.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/target_pool'
 module Fog
   module Compute
     class Google
-
       class TargetPools < Fog::Collection
-
         model Fog::Compute::Google::TargetPool
 
         def all(filters={})
@@ -24,9 +22,9 @@ module Fog
         def get(identity, region=nil)
           response = nil
           if region.nil?
-            service.list_regions.body['items'].each do |region|
+            service.regions.all.each do |region|
               begin
-                response = service.get_target_pool(identity, region['name'])
+                response = service.get_target_pool(identity, region.name)
                 break if response.status == 200
               rescue Fog::Errors::Error
               end
@@ -37,9 +35,7 @@ module Fog
           return nil if response.nil?
           new(response.body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/compute/url_map.rb b/lib/fog/google/models/compute/url_map.rb
new file mode 100644
index 0000000..2740a85
--- /dev/null
+++ b/lib/fog/google/models/compute/url_map.rb
@@ -0,0 +1,95 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class Google
+      class UrlMap < Fog::Model
+        identity :name
+
+        attribute :kind, :aliases => 'kind'
+        attribute :creationTimestamp, :aliases => 'creation_timestamp'
+        attribute :defaultService, :aliases => 'default_service'
+        attribute :description, :aliases => 'description'
+        attribute :fingerprint, :aliases => 'fingerprint'
+        attribute :hostRules, :aliases => 'host_rules'
+        attribute :id, :aliases => 'id'
+        attribute :pathMatchers, :aliases => 'path_matchers'
+        attribute :self_link, :aliases => 'selfLink'
+        attribute :tests, :aliases => 'tests'
+      
+        def save
+          requires :name, :defaultService
+
+          options = {
+            'defaultService' => defaultService,
+            'description' => description,
+            'fingerprint' => fingerprint,
+            'hostRules' => hostRules,
+            'pathMatchers' => pathMatchers,
+            'tests' => tests
+          }
+    
+          data = service.insert_url_map(name, options).body
+          operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'])
+          operation.wait_for { !pending? }
+          reload
+        end
+      
+        def destroy(async=true)
+          requires :name
+
+          operation = service.delete_url_map(name)
+          if not async
+            Fog.wait_for do
+              operation = service.get_global_operation(operation.body["name"])
+              operation.body["status"] == "DONE"
+            end
+          end
+          operation
+        end
+
+        def validate
+          service.validate_url_map self
+        end
+      
+        def add_host_rules hostRules
+          hostRules= [hostRules] unless hostRules.class == Array
+          service.update_url_map(self, hostRules)
+          reload
+        end
+
+        def add_path_matchers(pathMatchers, hostRules)
+          pathMatchers = [pathMatchers] unless pathMatchers.class == Array
+          hostRules=[hostRules] unless hostRules.class == Array
+          service.update_url_map(self, hostRules, pathMatchers)
+          reload
+        end
+
+        def ready?
+          begin
+            service.get_url_map(self.name)
+            true
+          rescue Fog::Errors::NotFound
+            false
+          end
+        end
+
+        def reload
+          requires :name
+
+          return unless data = begin
+            collection.get(name)
+          rescue Excon::Errors::SocketError
+            nil
+          end
+
+          new_attributes = data.attributes
+          merge_attributes(new_attributes)
+          self
+        end
+
+        RUNNING_STATE ="READY"
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/url_maps.rb b/lib/fog/google/models/compute/url_maps.rb
new file mode 100644
index 0000000..3cc3a19
--- /dev/null
+++ b/lib/fog/google/models/compute/url_maps.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/google/models/compute/url_map'
+
+module Fog
+  module Compute
+    class Google
+      class UrlMaps < Fog::Collection
+        model Fog::Compute::Google::UrlMap
+
+        def all
+          data = service.list_url_maps.body['items'] || []
+          load(data)
+        end
+
+        def get(identity)
+          response = service.get_url_map(identity)
+          new(response.body) unless response.nil?
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/compute/zone.rb b/lib/fog/google/models/compute/zone.rb
index 5bb042f..8a1f9bf 100644
--- a/lib/fog/google/models/compute/zone.rb
+++ b/lib/fog/google/models/compute/zone.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Google
-
       class Zone < Fog::Model
-
         identity :name
         attribute :description
         attribute :status
@@ -19,7 +17,6 @@ module Fog
         def up?
           self.status == "UP"
         end
-
       end
     end
   end
diff --git a/lib/fog/google/models/compute/zones.rb b/lib/fog/google/models/compute/zones.rb
index 15712ab..2f9c85e 100644
--- a/lib/fog/google/models/compute/zones.rb
+++ b/lib/fog/google/models/compute/zones.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/compute/zone'
 module Fog
   module Compute
     class Google
-
       class Zones < Fog::Collection
-
         model Fog::Compute::Google::Zone
 
         def all
@@ -20,7 +18,6 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/google/models/monitoring/metric_descriptor.rb b/lib/fog/google/models/monitoring/metric_descriptor.rb
new file mode 100644
index 0000000..5f8826a
--- /dev/null
+++ b/lib/fog/google/models/monitoring/metric_descriptor.rb
@@ -0,0 +1,20 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class Monitoring
+      ##
+      # A metricDescriptor defines the name, label keys, and data type of a particular metric.
+      #
+      # @see https://developers.google.com/cloud-monitoring/v2beta1/metricDescriptors
+      class MetricDescriptor < Fog::Model
+        identity :name
+
+        attribute :description
+        attribute :labels
+        attribute :project
+        attribute :type_descriptor, :aliases => 'typeDescriptor'
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/monitoring/metric_descriptors.rb b/lib/fog/google/models/monitoring/metric_descriptors.rb
new file mode 100644
index 0000000..6034e3a
--- /dev/null
+++ b/lib/fog/google/models/monitoring/metric_descriptors.rb
@@ -0,0 +1,28 @@
+require 'fog/core/collection'
+require 'fog/google/models/monitoring/metric_descriptor'
+
+module Fog
+  module Google
+    class Monitoring
+      class MetricDescriptors < Fog::Collection
+        model Fog::Google::Monitoring::MetricDescriptor
+
+        ##
+        # Lists all Metric Descriptors.
+        #
+        # @param [Hash] options Optional query parameters.
+        # @option options [String] count Maximum number of time series descriptors per page. Used for pagination.
+        # @option options [String] page_token The pagination token, which is used to page through large result sets.
+        # @option options [String] query The query used to search against existing metrics. Separate keywords with a space;
+        #   the service joins all keywords with AND, meaning that all keywords must match for a metric to be returned.
+        #   If this field is omitted, all metrics are returned. If an empty string is passed with this field,
+        #   no metrics are returned.
+        # @return [Array<Fog::Google::Monitoring::MetricDescriptor>] List of Metric Descriptors.
+        def all(options = {})
+          data = service.list_metric_descriptors(options).body['metrics'] || []
+          load(data)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/monitoring/timeseries.rb b/lib/fog/google/models/monitoring/timeseries.rb
new file mode 100644
index 0000000..fe9b495
--- /dev/null
+++ b/lib/fog/google/models/monitoring/timeseries.rb
@@ -0,0 +1,17 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class Monitoring
+      ##
+      # A time series is a collection of data points that represents the value of a metric of a project over time.
+      #
+      # @see https://developers.google.com/cloud-monitoring/v2beta1/timeseries
+      class Timeseries < Fog::Model
+        identity :time_series_desc, :aliases => 'timeseriesDesc'
+
+        attribute :points
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/monitoring/timeseries_collection.rb b/lib/fog/google/models/monitoring/timeseries_collection.rb
new file mode 100644
index 0000000..01f40e9
--- /dev/null
+++ b/lib/fog/google/models/monitoring/timeseries_collection.rb
@@ -0,0 +1,31 @@
+require 'fog/core/collection'
+require 'fog/google/models/monitoring/timeseries'
+
+module Fog
+  module Google
+    class Monitoring
+      class TimeseriesCollection < Fog::Collection
+        model Fog::Google::Monitoring::Timeseries
+
+        ##
+        # Lists all Timeseries.
+        #
+        # @param [String] metric The name of the metric (Metric names are protocol-free URLs).
+        # @param [String] youngest End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp.
+        # @param [Hash] options Optional query parameters.
+        # @option options [String] count Maximum number of time series descriptors per page. Used for pagination.
+        # @option options [String] labels A collection of labels for the matching time series.
+        # @option options [String] oldest Start of the time interval (exclusive), which is expressed as an RFC 3339
+        #   timestamp.
+        # @options options [String] page_token The pagination token, which is used to page through large result sets.
+        # @options options [String] timespan Length of the time interval to query, which is an alternative way to
+        #   declare the interval.
+        # @return [Array<Fog::Google::Monitoring::Timeseries>] List of Timeseries.
+        def all(metric, youngest, options = {})
+          data = service.list_timeseries(metric, youngest, options).body['timeseries'] || []
+          load(data)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/monitoring/timeseries_descriptor.rb b/lib/fog/google/models/monitoring/timeseries_descriptor.rb
new file mode 100644
index 0000000..550fe7e
--- /dev/null
+++ b/lib/fog/google/models/monitoring/timeseries_descriptor.rb
@@ -0,0 +1,20 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class Monitoring
+      ##
+      # A time series is a collection of data points that represents the value of a metric of a project over time.
+      # The metric is described by the time-series descriptor. Each time-series descriptor is uniquely identified by
+      # its metric name and a set of labels.
+      #
+      # @see https://developers.google.com/cloud-monitoring/v2beta1/timeseriesDescriptors
+      class TimeseriesDescriptor < Fog::Model
+        identity :metric
+
+        attribute :labels
+        attribute :project
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/monitoring/timeseries_descriptors.rb b/lib/fog/google/models/monitoring/timeseries_descriptors.rb
new file mode 100644
index 0000000..59b2464
--- /dev/null
+++ b/lib/fog/google/models/monitoring/timeseries_descriptors.rb
@@ -0,0 +1,31 @@
+require 'fog/core/collection'
+require 'fog/google/models/monitoring/timeseries_descriptor'
+
+module Fog
+  module Google
+    class Monitoring
+      class TimeseriesDescriptors < Fog::Collection
+        model Fog::Google::Monitoring::TimeseriesDescriptor
+
+        ##
+        # Lists all Timeseries Descriptors.
+        #
+        # @param [String] metric The name of the metric (Metric names are protocol-free URLs).
+        # @param [String] youngest End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp.
+        # @param [Hash] options Optional query parameters.
+        # @option options [String] count Maximum number of time series descriptors per page. Used for pagination.
+        # @option options [String] labels A collection of labels for the matching time series.
+        # @option options [String] oldest Start of the time interval (exclusive), which is expressed as an RFC 3339
+        #   timestamp.
+        # @options options [String] page_token The pagination token, which is used to page through large result sets.
+        # @options options [String] timespan Length of the time interval to query, which is an alternative way to
+        #   declare the interval.
+        # @return [Array<Fog::Google::Monitoring::TimeseriesDescriptor>] List of Timeseries Descriptors.
+        def all(metric, youngest, options = {})
+          data = service.list_timeseries_descriptors(metric, youngest, options).body['timeseries'] || []
+          load(data)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/backup_run.rb b/lib/fog/google/models/sql/backup_run.rb
new file mode 100644
index 0000000..c3998c6
--- /dev/null
+++ b/lib/fog/google/models/sql/backup_run.rb
@@ -0,0 +1,34 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class SQL
+      ##
+      # A database instance backup run resource
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/backupRuns
+      class BackupRun < Fog::Model
+        identity :backup_configuration, :aliases => 'backupConfiguration'
+
+        attribute :due_time, :aliases => 'dueTime'
+        attribute :end_time, :aliases => 'endTime'
+        attribute :enqueued_time, :aliases => 'enqueuedTime'
+        attribute :error
+        attribute :instance
+        attribute :kind
+        attribute :start_time, :aliases => 'startTime'
+        attribute :status
+
+        DONE_STATE = 'DONE'
+
+        ##
+        # Checks if the instance backup run is done
+        #
+        # @return [Boolean] True if the backup run is done; False otherwise
+        def ready?
+          self.state == DONE_STATE
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/backup_runs.rb b/lib/fog/google/models/sql/backup_runs.rb
new file mode 100644
index 0000000..515206f
--- /dev/null
+++ b/lib/fog/google/models/sql/backup_runs.rb
@@ -0,0 +1,38 @@
+require 'fog/core/collection'
+require 'fog/google/models/sql/backup_run'
+
+module Fog
+  module Google
+    class SQL
+      class BackupRuns < Fog::Collection
+        model Fog::Google::SQL::BackupRun
+
+        ##
+        # Lists all backup runs associated with a given instance and configuration
+        #
+        # @param [String] instance_id Instance ID
+        # @param [String] backup_configuration_id Backup Configuration ID
+        # @return [Array<Fog::Google::SQL::BackupRun>] List of Backup run resources
+        def all(instance_id, backup_configuration_id)
+          data = service.list_backup_runs(instance_id, backup_configuration_id).body['items'] || []
+          load(data)
+        end
+
+        ##
+        # Retrieves a resource containing information about a backup run
+        #
+        # @param [String] instance_id Instance ID
+        # @param [String] backup_configuration_id Backup Configuration ID
+        # @param [String] due_time The time when this run is due to start in RFC 3339 format
+        # @return [Fog::Google::SQL::BackupRun] Backup run resource
+        def get(instance_id, backup_configuration_id, due_time)
+          if backup_run = service.get_backup_run(instance_id, backup_configuration_id, due_time).body
+            new(backup_run)
+          end
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/flag.rb b/lib/fog/google/models/sql/flag.rb
new file mode 100644
index 0000000..afaaa2a
--- /dev/null
+++ b/lib/fog/google/models/sql/flag.rb
@@ -0,0 +1,22 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class SQL
+      ##
+      # A Google Cloud SQL service flag resource
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/flags
+      class Flag < Fog::Model
+        identity :name
+
+        attribute :allowed_string_values, :aliases => 'allowedStringValues'
+        attribute :applies_to, :aliases => 'appliesTo'
+        attribute :kind
+        attribute :max_value, :aliases => 'maxValue'
+        attribute :min_value, :aliases => 'minValue'
+        attribute :type
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/flags.rb b/lib/fog/google/models/sql/flags.rb
new file mode 100644
index 0000000..faaf399
--- /dev/null
+++ b/lib/fog/google/models/sql/flags.rb
@@ -0,0 +1,21 @@
+require 'fog/core/collection'
+require 'fog/google/models/sql/flag'
+
+module Fog
+  module Google
+    class SQL
+      class Flags < Fog::Collection
+        model Fog::Google::SQL::Flag
+
+        ##
+        # List all available database flags
+        #
+        # @return [Array<Fog::Google::SQL::Flag>] List of flags
+        def all
+          data = service.list_flags.body['items'] || []
+          load(data)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/instance.rb b/lib/fog/google/models/sql/instance.rb
new file mode 100644
index 0000000..90fe0be
--- /dev/null
+++ b/lib/fog/google/models/sql/instance.rb
@@ -0,0 +1,353 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class SQL
+      class Instance < Fog::Model
+        identity :instance
+
+        attribute :current_disk_size, :aliases => 'currentDiskSize'
+        attribute :database_version, :aliases => 'databaseVersion'
+        attribute :etag
+        attribute :ip_addresses, :aliases => 'ipAddresses'
+        attribute :kind
+        attribute :max_disk_size, :aliases => 'maxDiskSize'
+        attribute :project
+        attribute :region
+        attribute :server_ca_cert, :aliases => 'serverCaCert'
+        attribute :settings
+        attribute :state
+
+        # These attributes are not available in the representation of an 'Instance' returned by the Google SQL API.
+        attribute :activation_policy
+        attribute :autorized_gae_applications
+        attribute :backup_configuration
+        attribute :database_flags
+        attribute :ip_configuration_authorized_networks
+        attribute :ip_configuration_enabled
+        attribute :ip_configuration_require_ssl
+        attribute :location_preference_zone_follow_gae_application
+        attribute :location_preference_zone
+        attribute :pricing_plan
+        attribute :replication_type
+        attribute :settings_version
+        attribute :tier
+
+        MAINTENANCE_STATE    = 'MAINTENANCE'
+        PENDING_CREATE_STATE = 'PENDING_CREATE'
+        RUNNABLE_STATE       = 'RUNNABLE'
+        SUSPENDED_STATE      = 'SUSPENDED'
+        UNKNOWN_STATE        = 'UNKNOWN_STATE'
+
+        ##
+        # Returns the activation policy for this instance
+        #
+        # @return [String] The activation policy for this instance
+        def activation_policy
+          self.settings['activationPolicy']
+        end
+
+        ##
+        # Returns the AppEngine app ids that can access this instance
+        #
+        # @return [Array<String>] The AppEngine app ids that can access this instance
+        def autorized_gae_applications
+          self.settings['authorizedGaeApplications']
+        end
+
+        ##
+        # Returns the daily backup configuration for the instance
+        #
+        # @return [Array<Hash>] The daily backup configuration for the instance
+        def backup_configuration
+          self.settings['backupConfiguration']
+        end
+
+        ##
+        # Creates a Cloud SQL instance as a clone of the source instance
+        #
+        # @param [String] destination_name Name of the Cloud SQL instance to be created as a clone
+        # @param [Hash] options Method options
+        # @option options [String] :log_filename Name of the binary log file for a Cloud SQL instance
+        # @option options [Integer] :log_position Position (offset) within the binary log file
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def clone(destination_name, options = {})
+          requires :identity
+
+          data = service.clone_instance(self.identity, destination_name, options)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Creates a Cloud SQL instance
+        #
+        # @return [Fog::Google::SQL::Instance] Instance resource
+        def create
+          requires :identity
+
+          data = service.insert_instance(self.identity, self.attributes[:tier], self.attributes)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          operation.wait_for { !pending? }
+          reload
+        end
+
+        ##
+        # Returns the database flags passed to the instance at startup
+        #
+        # @return [Array<Hash>] The database flags passed to the instance at startup
+        def database_flags
+          self.settings['databaseFlags']
+        end
+
+        ##
+        # Deletes a Cloud SQL instance
+        #
+        # @param [Hash] options Method options
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def destroy(options = {})
+          requires :identity
+
+          data = service.delete_instance(self.identity)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            # DISABLED: A delete instance operation never reachs a 'DONE' state (bug?)
+            # operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file
+        #
+        # @param [String] uri The path to the file in Google Cloud Storage where the export will be stored,
+        #   or where it was already stored
+        # @param [Hash] options Method options
+        # @option options [Array<String>] :databases Databases (for example, guestbook) from which the export is made.
+        #   If unspecified, all databases are exported.
+        # @option options [Array<String>] :tables Tables to export, or that were exported, from the specified database.
+        #   If you specify tables, specify one and only one database.
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def export(uri, options = {})
+          requires :identity
+
+          data = service.export_instance(self.identity, uri, options)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage
+        #
+        # @param [Array<String>] uri A path to the MySQL dump file in Google Cloud Storage from which the import is
+        #   made
+        # @param [Hash] options Method options
+        # @option options [String] :database The database (for example, guestbook) to which the import is made.
+        #   If not set, it is assumed that the database is specified in the file to be imported.
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def import(uri, options = {})
+          requires :identity
+
+          data = service.import_instance(self.identity, uri, options)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Returns the list of external networks that are allowed to connect to the instance using the IP
+        #
+        # @return [Array<String>] The list of external networks that are allowed to connect to the instance using the IP
+        def ip_configuration_authorized_networks
+          self.settings.fetch('ipConfiguration', {})['authorizedNetworks']
+        end
+
+        ##
+        # Returns whether the instance should be assigned an IP address or not
+        #
+        # @return [Boolean] Whether the instance should be assigned an IP address or not
+        def ip_configuration_enabled
+          self.settings.fetch('ipConfiguration', {})['enabled']
+        end
+
+        ##
+        # Returns whether the mysqld should default to 'REQUIRE X509' for users connecting over IP
+        #
+        # @return [Boolean] Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP
+        def ip_configuration_require_ssl
+          self.settings.fetch('ipConfiguration', {})['requireSsl']
+        end
+
+        ##
+        # Returns the AppEngine application to follow
+        #
+        # @return [String] The AppEngine application to follow
+        def location_preference_zone_follow_gae_application
+          self.settings.fetch('locationPreference', {})['followGaeApplication']
+        end
+
+        ##
+        # Returns the preferred Compute Engine zone
+        #
+        # @return [String] The preferred Compute Engine zone
+        def location_preference_zone
+          self.settings.fetch('locationPreference', {})['zone']
+        end
+
+        ##
+        # Returns the pricing plan for this instance
+        #
+        # @return [String] The pricing plan for this instance
+        def pricing_plan
+          self.settings['pricingPlan']
+        end
+
+        ##
+        # Checks if the instance is running
+        #
+        # @return [Boolean] True if the instance is running; False otherwise
+        def ready?
+          self.state == RUNNABLE_STATE
+        end
+
+        ##
+        # Returns the type of replication this instance uses
+        #
+        # @return [String] The type of replication this instance uses
+        def replication_type
+          self.settings['replicationType']
+        end
+
+        ##
+        # Deletes all client certificates and generates a new server SSL certificate for the instance
+        #
+        # @param [Hash] options Method options
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def reset_ssl_config(options = {})
+          requires :identity
+
+          data = service.reset_instance_ssl_config(self.identity)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Restarts a Cloud SQL instance
+        #
+        # @param [Hash] options Method options
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def restart(options = {})
+          requires :identity
+
+          data = service.restart_instance(self.identity)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Restores a backup of a Cloud SQL instance
+        #
+        # @param [String] backup_configuration The identifier of the backup configuration
+        # @param [String] due_time The time when this run is due to start in RFC 3339 format
+        # @param [Hash] options Method options
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def restore_backup(backup_configuration, due_time, options = {})
+          requires :identity
+
+          data = service.restore_instance_backup(self.identity, backup_configuration, due_time)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Saves a Cloud SQL instance
+        #
+        # @return [Fog::Google::SQL::Instance] Instance resource
+        def save
+          self.etag ? update : create
+        end
+
+        ##
+        # Sets the password for the root user
+        #
+        # @param [String] password The password for the root user
+        # @param [Hash] options Method options
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def set_root_password(password, options = {})
+          requires :identity
+
+          data = service.set_instance_root_password(self.identity, password)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Returns the version of instance settings
+        #
+        # @return [String] The version of instance settings
+        def settings_version
+          self.settings['settingsVersion']
+        end
+
+        ##
+        # Lists all of the current SSL certificates for the instance
+        #
+        # @return [Array<Fog::Google::SQL::SslCert>] List of SSL certificate resources
+        def ssl_certs
+          requires :identity
+
+          service.ssl_certs.all(self.identity)
+        end
+
+        ##
+        # Returns the tier of service for this instance
+        #
+        # @return [String] The tier of service for this instance
+        def tier
+          self.settings['tier']
+        end
+
+        ##
+        # Updates settings of a Cloud SQL instance
+        #
+        # @return [Fog::Google::SQL::Instance] Instance resource
+        def update
+          requires :identity
+
+          data = service.update_instance(self.identity, self.settings_version, self.tier, self.attributes)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          operation.wait_for { !pending? }
+          reload
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/instances.rb b/lib/fog/google/models/sql/instances.rb
new file mode 100644
index 0000000..b822280
--- /dev/null
+++ b/lib/fog/google/models/sql/instances.rb
@@ -0,0 +1,39 @@
+require 'fog/core/collection'
+require 'fog/google/models/sql/instance'
+
+module Fog
+  module Google
+    class SQL
+      class Instances < Fog::Collection
+        model Fog::Google::SQL::Instance
+
+        ##
+        # Lists all instance
+        #
+        # @return [Array<Fog::Google::SQL::Instance>] List of instance resources
+        def all
+          data = service.list_instances.body['items'] || []
+          load(data)
+        end
+
+        ##
+        # Retrieves an instance
+        #
+        # @param [String] instance_id Instance ID
+        # @return [Fog::Google::SQL::Instance] Instance resource
+        def get(instance_id)
+          if instance = service.get_instance(instance_id).body
+            new(instance)
+          end
+        rescue Fog::Errors::NotFound
+          nil
+        rescue Fog::Errors::Error => e
+          # Google SQL returns a 403 if we try to access a non-existing resource
+          # The default behaviour in Fog is to return a nil
+          return nil if e.message == 'The client is not authorized to make this request.'
+          raise e
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/operation.rb b/lib/fog/google/models/sql/operation.rb
new file mode 100644
index 0000000..89cec57
--- /dev/null
+++ b/lib/fog/google/models/sql/operation.rb
@@ -0,0 +1,61 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class SQL
+      ##
+      # An Operation resource contains information about database instance operations
+      # such as create, delete, and restart
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/operations
+      class Operation < Fog::Model
+        identity :operation
+
+        attribute :end_time, :aliases => 'endTime'
+        attribute :enqueued_time, :aliases => 'enqueuedTime'
+        attribute :error
+        attribute :export_context, :aliases => 'exportContext'
+        attribute :import_context, :aliases => 'importContext'
+        attribute :instance
+        attribute :kind
+        attribute :operation_type, :aliases => 'operationType'
+        attribute :start_time, :aliases => 'startTime'
+        attribute :state
+        attribute :user_email_address, :aliases => 'userEmailAddress'
+
+        DONE_STATE    = 'DONE'
+        PENDING_STATE = 'PENDING'
+        RUNNING_STATE = 'RUNNING'
+        UNKNOWN_STATE = 'UNKNOWN'
+
+        ##
+        # Checks if the instance operation is pending
+        #
+        # @return [Boolean] True if the operation is pending; False otherwise
+        def pending?
+          self.state == PENDING_STATE
+        end
+
+        ##
+        # Checks if the instance operation is done
+        #
+        # @return [Boolean] True if the operation is done; False otherwise
+        def ready?
+          self.state == DONE_STATE
+        end
+
+        ##
+        # Reloads an instance operation
+        #
+        # @return [Fog::Google::SQL::Operation] Instance operation resource
+        def reload
+          requires :identity
+
+          data = collection.get(self.instance, self.identity)
+          merge_attributes(data.attributes)
+          self
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/operations.rb b/lib/fog/google/models/sql/operations.rb
new file mode 100644
index 0000000..21069a5
--- /dev/null
+++ b/lib/fog/google/models/sql/operations.rb
@@ -0,0 +1,49 @@
+require 'fog/core/collection'
+require 'fog/google/models/sql/operation'
+
+module Fog
+  module Google
+    class SQL
+      class Operations < Fog::Collection
+        model Fog::Google::SQL::Operation
+
+        ##
+        # Lists all instance operations that have been performed on the given instance
+        #
+        # @param [String] instance_id Instance ID
+        # @return [Array<Fog::Google::SQL::Operation>] List of instance operation resources
+        def all(instance_id)
+          data = []
+          begin
+            data = service.list_operations(instance_id).body['items'] || []
+          rescue Fog::Errors::Error => e
+            # Google SQL returns a 403 if we try to access a non-existing resource
+            # The default behaviour in Fog is to return an empty Array
+            raise e unless e.message == 'The client is not authorized to make this request.'
+          end
+
+          load(data)
+        end
+
+        ##
+        # Retrieves an instance operation that has been performed on an instance
+        #
+        # @param [String] instance_id Instance ID
+        # @param [String] operation_id Instance operation ID
+        # @return [Fog::Google::SQL::Operation] Instance operation resource
+        def get(instance_id, operation_id)
+          if operation = service.get_operation(instance_id, operation_id).body
+            new(operation)
+          end
+        rescue Fog::Errors::NotFound
+          nil
+        rescue Fog::Errors::Error => e
+          # Google SQL returns a 403 if we try to access a non-existing resource
+          # The default behaviour in Fog is to return a nil
+          return nil if e.message == 'The client is not authorized to make this request.'
+          raise e
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/ssl_cert.rb b/lib/fog/google/models/sql/ssl_cert.rb
new file mode 100644
index 0000000..2c37932
--- /dev/null
+++ b/lib/fog/google/models/sql/ssl_cert.rb
@@ -0,0 +1,73 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class SQL
+      ##
+      # A SSL certificate resource
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts
+      class SslCert < Fog::Model
+        identity :sha1_fingerprint, :aliases => 'sha1Fingerprint'
+
+        attribute :cert
+        attribute :cert_serial_number, :aliases => 'certSerialNumber'
+        attribute :common_name, :aliases => 'commonName'
+        attribute :create_time, :aliases => 'createTime'
+        attribute :expiration_time, :aliases => 'expirationTime'
+        attribute :instance
+        attribute :kind
+
+        # These attributes are not available in the representation of a 'SSL Certificate' returned by the SQL API.
+        # These attributes are only available as a reponse to a create operation
+        attribute :server_ca_cert, :aliases => 'serverCaCert'
+        attribute :cert_private_key, :aliases => 'certPrivateKey'
+
+        ##
+        # Deletes a SSL certificate. The change will not take effect until the instance is restarted.
+        #
+        # @param [Hash] options Method options
+        # @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
+        # @return [Fog::Google::SQL::Operation] A Operation resource
+        def destroy(options = {})
+          requires :instance, :identity
+
+          data = service.delete_ssl_cert(self.instance, self.identity)
+          operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
+          unless options.fetch(:async, true)
+            operation.wait_for { ready? }
+          end
+          operation
+        end
+
+        ##
+        # Reloads a SSL certificate
+        #
+        # @return [Fog::Google::SQL::SslCert] SSL certificate resource
+        def reload
+          requires :instance, :identity
+
+          data = collection.get(self.instance, self.identity)
+          merge_attributes(data.attributes)
+          self
+        end
+
+        ##
+        # Creates a SSL certificate. The new certificate will not be usable until the instance is restarted.
+        #
+        # @raise [Fog::Errors::Error] If SSL certificate already exists
+        def save
+          requires :instance, :common_name
+
+          raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
+
+          data = service.insert_ssl_cert(self.instance, self.common_name).body
+          merge_attributes(data['clientCert']['certInfo'])
+          self.server_ca_cert = Fog::Google::SQL::SslCert.new(data['serverCaCert'])
+          self.cert_private_key = data['clientCert']['certPrivateKey']
+          self
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/ssl_certs.rb b/lib/fog/google/models/sql/ssl_certs.rb
new file mode 100644
index 0000000..67fbeb7
--- /dev/null
+++ b/lib/fog/google/models/sql/ssl_certs.rb
@@ -0,0 +1,49 @@
+require 'fog/core/collection'
+require 'fog/google/models/sql/ssl_cert'
+
+module Fog
+  module Google
+    class SQL
+      class SslCerts < Fog::Collection
+        model Fog::Google::SQL::SslCert
+
+        ##
+        # Lists all of the current SSL certificates for the instance
+        #
+        # @param [String] instance_id Instance ID
+        # @return [Array<Fog::Google::SQL::SslCert>] List of SSL certificate resources
+        def all(instance_id)
+          data = []
+          begin
+            data = service.list_ssl_certs(instance_id).body['items'] || []
+          rescue Fog::Errors::Error => e
+            # Google SQL returns a 403 if we try to access a non-existing resource
+            # The default behaviour in Fog is to return an empty Array
+            raise e unless e.message == 'The client is not authorized to make this request.'
+          end
+
+          load(data)
+        end
+
+        ##
+        # Retrieves a particular SSL certificate (does not include the private key)
+        #
+        # @param [String] instance_id Instance ID
+        # @param [String] sha1_fingerprint Sha1 FingerPrint
+        # @return [Fog::Google::SQL::SslCert] SSL certificate resource
+        def get(instance_id, sha1_fingerprint)
+          if ssl_cert = service.get_ssl_cert(instance_id, sha1_fingerprint).body
+            new(ssl_cert)
+          end
+        rescue Fog::Errors::NotFound
+          nil
+        rescue Fog::Errors::Error => e
+          # Google SQL returns a 403 if we try to access a non-existing resource
+          # The default behaviour in Fog is to return a nil
+          return nil if e.message == 'The client is not authorized to make this request.'
+          raise e
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/tier.rb b/lib/fog/google/models/sql/tier.rb
new file mode 100644
index 0000000..2374b31
--- /dev/null
+++ b/lib/fog/google/models/sql/tier.rb
@@ -0,0 +1,20 @@
+require 'fog/core/model'
+
+module Fog
+  module Google
+    class SQL
+      ##
+      # A Google Cloud SQL service tier resource
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/tiers
+      class Tier < Fog::Model
+        identity :tier
+
+        attribute :disk_quota, :aliases => 'DiskQuota'
+        attribute :kind
+        attribute :ram, :aliases => 'RAM'
+        attribute :region
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/sql/tiers.rb b/lib/fog/google/models/sql/tiers.rb
new file mode 100644
index 0000000..d94e1c1
--- /dev/null
+++ b/lib/fog/google/models/sql/tiers.rb
@@ -0,0 +1,21 @@
+require 'fog/core/collection'
+require 'fog/google/models/sql/tier'
+
+module Fog
+  module Google
+    class SQL
+      class Tiers < Fog::Collection
+        model Fog::Google::SQL::Tier
+
+        ##
+        # Lists all available service tiers
+        #
+        # @return [Array<Fog::Google::SQL::Tier>] List of tiers
+        def all
+          data = service.list_tiers.body['items'] || []
+          load(data)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/models/storage/directories.rb b/lib/fog/google/models/storage/directories.rb
index bba238a..6112db6 100644
--- a/lib/fog/google/models/storage/directories.rb
+++ b/lib/fog/google/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/storage/directory'
 module Fog
   module Storage
     class Google
-
       class Directories < Fog::Collection
-
         model Fog::Storage::Google::Directory
 
         def all
@@ -35,9 +33,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/storage/directory.rb b/lib/fog/google/models/storage/directory.rb
index a80f2cc..9e0cbde 100644
--- a/lib/fog/google/models/storage/directory.rb
+++ b/lib/fog/google/models/storage/directory.rb
@@ -4,9 +4,7 @@ require 'fog/google/models/storage/files'
 module Fog
   module Storage
     class Google
-
       class Directory < Fog::Model
-
         identity  :key,           :aliases => ['Name', 'name']
 
         attribute :creation_date, :aliases => 'CreationDate'
@@ -47,7 +45,7 @@ module Fog
 
         def public_url
           requires :key
-          if service.get_bucket_acl(key).body['AccessControlList'].detect {|entry| entry['Scope']['type'] == 'AllUsers' && entry['Permission'] == 'READ'}
+          if service.get_bucket_acl(key).body['AccessControlList'].find {|entry| entry['Scope']['type'] == 'AllUsers' && entry['Permission'] == 'READ'}
             if key.to_s =~ /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
               "https://#{key}.storage.googleapis.com"
             else
@@ -70,9 +68,7 @@ module Fog
           service.put_bucket(key, options)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/storage/file.rb b/lib/fog/google/models/storage/file.rb
index d8317c4..200d906 100644
--- a/lib/fog/google/models/storage/file.rb
+++ b/lib/fog/google/models/storage/file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class Google
-
       class File < Fog::Model
-
         identity  :key,             :aliases => 'Key'
 
         attribute :cache_control,       :aliases => 'Cache-Control'
@@ -94,7 +92,7 @@ module Fog
           requires :directory, :key
 
           acl = service.get_object_acl(directory.key, key).body['AccessControlList']
-          access_granted = acl.detect do |entry|
+          access_granted = acl.find do |entry|
             entry['Scope']['type'] == 'AllUsers' && entry['Permission'] == 'READ'
           end
 
@@ -140,9 +138,7 @@ module Fog
         def directory=(new_directory)
           @directory = new_directory
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/models/storage/files.rb b/lib/fog/google/models/storage/files.rb
index 7b335d0..7a33c2e 100644
--- a/lib/fog/google/models/storage/files.rb
+++ b/lib/fog/google/models/storage/files.rb
@@ -4,7 +4,6 @@ require 'fog/google/models/storage/file'
 module Fog
   module Storage
     class Google
-
       class Files < Fog::Collection
         extend Fog::Deprecation
         deprecate :get_url, :get_https_url
@@ -41,7 +40,7 @@ module Fog
           end
         end
 
-        alias :each_file_this_page :each
+        alias_method :each_file_this_page, :each
         def each
           if !block_given?
             self
@@ -61,7 +60,11 @@ module Fog
         def get(key, options = {}, &block)
           requires :directory
           data = service.get_object(directory.key, key, options, &block)
-          file_data = data.headers.merge({
+          file_data = {}
+          data.headers.each do |key, value|
+            file_data[key] = value
+          end
+          file_data.merge({
             :body => data.body,
             :key  => key
           })
@@ -95,9 +98,7 @@ module Fog
           requires :directory
           super({ :directory => directory }.merge(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/monitoring.rb b/lib/fog/google/monitoring.rb
new file mode 100644
index 0000000..de68bfb
--- /dev/null
+++ b/lib/fog/google/monitoring.rb
@@ -0,0 +1,89 @@
+require 'fog/google/core'
+
+module Fog
+  module Google
+    class Monitoring < Fog::Service
+      requires :google_project
+      recognizes :google_client_email, :google_key_location, :google_key_string, :google_client,
+                 :app_name, :app_version
+
+      GOOGLE_MONITORING_API_VERSION    = 'v2beta1'
+      GOOGLE_MONITORING_BASE_URL       = 'https://www.googleapis.com/cloudmonitoring/'
+      GOOGLE_MONITORING_API_SCOPE_URLS = %w(https://www.googleapis.com/auth/monitoring.readonly)
+
+      ##
+      # MODELS
+      model_path 'fog/google/models/monitoring'
+
+      # Timeseries
+      model :timeseries
+      collection :timeseries_collection
+
+      # TimeseriesDescriptors
+      model :timeseries_descriptor
+      collection :timeseries_descriptors
+
+      # MetricDescriptors
+      model :metric_descriptor
+      collection :metric_descriptors
+
+      ##
+      # REQUESTS
+      request_path 'fog/google/requests/monitoring'
+
+      # Timeseries
+      request :list_timeseries
+
+      # TimeseriesDescriptors
+      request :list_timeseries_descriptors
+
+      # MetricDescriptors
+      request :list_metric_descriptors
+
+      class Mock
+        include Fog::Google::Shared
+
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_MONITORING_API_VERSION, GOOGLE_MONITORING_BASE_URL)
+        end
+
+        def self.data
+          @data ||= Hash.new do |hash, key|
+            hash[key] = {
+              :timeseries => {},
+              :timeseries_descriptors => {},
+              :metric_descriptors => {},
+            }
+          end
+        end
+
+        def self.reset
+          @data = nil
+        end
+
+        def data
+          self.class.data[project]
+        end
+
+        def reset_data
+          self.class.data.delete(project)
+        end
+      end
+
+      class Real
+        include Fog::Google::Shared
+
+        attr_accessor :client
+        attr_reader :monitoring
+
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_MONITORING_API_VERSION, GOOGLE_MONITORING_BASE_URL)
+          options.merge!(:google_api_scope_url => GOOGLE_MONITORING_API_SCOPE_URLS.join(' '))
+
+          @client = initialize_google_client(options)
+          @monitoring = @client.discovered_api('cloudmonitoring', api_version)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/parsers/storage/access_control_list.rb b/lib/fog/google/parsers/storage/access_control_list.rb
index 75811a8..b2f4e1e 100644
--- a/lib/fog/google/parsers/storage/access_control_list.rb
+++ b/lib/fog/google/parsers/storage/access_control_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class AccessControlList < Fog::Parsers::Base
-
           def reset
             @in_entries = false
             @entry = { 'Scope' => {} }
@@ -39,9 +37,7 @@ module Fog
               @entry[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/copy_object.rb b/lib/fog/google/parsers/storage/copy_object.rb
index e127bcb..6b84f5a 100644
--- a/lib/fog/google/parsers/storage/copy_object.rb
+++ b/lib/fog/google/parsers/storage/copy_object.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class CopyObject < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'ETag'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = Time.parse(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/get_bucket.rb b/lib/fog/google/parsers/storage/get_bucket.rb
index 1eb57c9..be29249 100644
--- a/lib/fog/google/parsers/storage/get_bucket.rb
+++ b/lib/fog/google/parsers/storage/get_bucket.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class GetBucket < Fog::Parsers::Base
-
           def reset
             @object = { 'Owner' => {} }
             @response = { 'Contents' => [], 'CommonPrefixes' => [] }
@@ -53,9 +51,7 @@ module Fog
               @object[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/get_bucket_logging.rb b/lib/fog/google/parsers/storage/get_bucket_logging.rb
index 82d738e..65f1c87 100644
--- a/lib/fog/google/parsers/storage/get_bucket_logging.rb
+++ b/lib/fog/google/parsers/storage/get_bucket_logging.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class AccessControlList < Fog::Parsers::Base
-
           def reset
             @grant = { 'Grantee' => {} }
             @response = { 'BucketLoggingStatus' => {} }
@@ -31,9 +29,7 @@ module Fog
               @grant['Grantee'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/get_bucket_object_versions.rb b/lib/fog/google/parsers/storage/get_bucket_object_versions.rb
index 641c2eb..289caa7 100644
--- a/lib/fog/google/parsers/storage/get_bucket_object_versions.rb
+++ b/lib/fog/google/parsers/storage/get_bucket_object_versions.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class GetBucketObjectVersions < Fog::Parsers::Base
-
           def reset
             @delete_marker = { 'Owner' => {} }
             @version = { 'Owner' => {} }
@@ -79,9 +77,7 @@ module Fog
               end[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/get_bucket_versioning.rb b/lib/fog/google/parsers/storage/get_bucket_versioning.rb
index ba0a4ad..e54e621 100644
--- a/lib/fog/google/parsers/storage/get_bucket_versioning.rb
+++ b/lib/fog/google/parsers/storage/get_bucket_versioning.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class GetBucketVersioning < Fog::Parsers::Base
-
           def reset
             @response = { 'VersioningConfiguration' => {} }
           end
@@ -15,9 +13,7 @@ module Fog
               @response['VersioningConfiguration'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/get_request_payment.rb b/lib/fog/google/parsers/storage/get_request_payment.rb
index 27e7b8d..a726d5c 100644
--- a/lib/fog/google/parsers/storage/get_request_payment.rb
+++ b/lib/fog/google/parsers/storage/get_request_payment.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class GetRequestPayment < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'Payer'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/parsers/storage/get_service.rb b/lib/fog/google/parsers/storage/get_service.rb
index c31b943..8d96d86 100644
--- a/lib/fog/google/parsers/storage/get_service.rb
+++ b/lib/fog/google/parsers/storage/get_service.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module Google
-
         class GetService < Fog::Parsers::Base
-
           def reset
             @bucket = {}
             @response = { 'Owner' => {}, 'Buckets' => [] }
@@ -23,9 +21,7 @@ module Fog
               @bucket[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/compute/add_backend_service_backends.rb b/lib/fog/google/requests/compute/add_backend_service_backends.rb
new file mode 100644
index 0000000..b9f99b1
--- /dev/null
+++ b/lib/fog/google/requests/compute/add_backend_service_backends.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def add_backend_service_backends(backend_service, new_backends)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def add_backend_service_backends(backend_service, new_backends)
+          api_method = @compute.backend_services.patch
+          parameters = {
+            'project' => @project,
+            'backendService' => backend_service.name,
+          }
+          if backend_service.backends then
+            backend_service.backends.concat(new_backends)
+          else
+            backend_service.backends = new_backends
+          end
+          body_object = backend_service
+          
+          request(api_method, parameters, body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/add_region_view_resources.rb b/lib/fog/google/requests/compute/add_region_view_resources.rb
new file mode 100644
index 0000000..9bc8e10
--- /dev/null
+++ b/lib/fog/google/requests/compute/add_region_view_resources.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def add_region_view_resources(region_view, resources)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def add_region_view_resources(region_view, resources, region)
+          api_method = @resourceviews.region_views.add_resources
+          parameters = {
+            'projectName' => @project,
+            'resourceViewName' => region_view,
+            'region' => region
+          }
+          body = {
+            'resources' => resources
+          }
+
+          request(api_method, parameters, body_object=body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/add_server_access_config.rb b/lib/fog/google/requests/compute/add_server_access_config.rb
new file mode 100644
index 0000000..41a8eab
--- /dev/null
+++ b/lib/fog/google/requests/compute/add_server_access_config.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def add_server_access_config(identity, zone, nic, options = {})
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def add_server_access_config(identity, zone, nic, options = {})
+          api_method = @compute.instances.add_access_config
+          parameters = {
+            'project'  => @project,
+            'instance' => identity,
+            'zone'     => zone.split('/')[-1],
+            'networkInterface' => nic,
+          }
+
+          body_object = {
+            'type' => 'ONE_TO_ONE_NAT',
+          }
+
+          body_object['name'] = options[:name] ? options[:name] : 'External NAT'
+          body_object['natIP'] = options[:address] if options[:address]
+
+          request(api_method, parameters, body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/add_target_pool_health_checks.rb b/lib/fog/google/requests/compute/add_target_pool_health_checks.rb
index e2e723b..07a1bc5 100644
--- a/lib/fog/google/requests/compute/add_target_pool_health_checks.rb
+++ b/lib/fog/google/requests/compute/add_target_pool_health_checks.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def add_target_pool_health_checks(target_pool, health_checks)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def add_target_pool_health_checks(target_pool, health_checks)
           api_method = @compute.target_pools.add_health_check
           parameters = {
@@ -20,15 +16,12 @@ module Fog
             'region' => target_pool.region.split('/')[-1]
           }
           body = {
-            'healthChecks' => health_checks.collect { |i| { 'healthCheck' => i } }
+            'healthChecks' => health_checks.map { |i| { 'healthCheck' => i } }
           }
 
-          result = self.build_result(api_method, parameters, body_object=body)
-          self.build_response(result)
+          request(api_method, parameters, body_object=body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/add_target_pool_instances.rb b/lib/fog/google/requests/compute/add_target_pool_instances.rb
index 5a0924d..f8424a1 100644
--- a/lib/fog/google/requests/compute/add_target_pool_instances.rb
+++ b/lib/fog/google/requests/compute/add_target_pool_instances.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def add_target_pool_instances(target_pool, instances)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def add_target_pool_instances(target_pool, instances)
           api_method = @compute.target_pools.add_instance
           parameters = {
@@ -20,15 +16,12 @@ module Fog
             'region' => target_pool.region.split('/')[-1]
           }
           body = {
-            'instances' => instances.collect { |i| { 'instance' => i } }
+            'instances' => instances.map { |i| { 'instance' => i } }
           }
 
-          result = self.build_result(api_method, parameters, body_object=body)
-          self.build_response(result)
+          request(api_method, parameters, body_object=body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/add_url_map_host_rules.rb b/lib/fog/google/requests/compute/add_url_map_host_rules.rb
new file mode 100644
index 0000000..ae18894
--- /dev/null
+++ b/lib/fog/google/requests/compute/add_url_map_host_rules.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def add_url_map_host_rules(url_map, host_rules)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def add_url_map_host_rules(url_map, host_rules)
+          api_method = @compute.url_maps.update
+          parameters = {
+            'project' => @project,
+            'urlMap' => url_map.name
+          }
+          if  url_map.hostRules then  url_map.hostRules.concat( host_rules) else  url_map.hostRules = host_rules end
+          body = url_map
+        
+          request(api_method, parameters, body_object=body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/add_url_map_path_matchers.rb b/lib/fog/google/requests/compute/add_url_map_path_matchers.rb
new file mode 100644
index 0000000..396a15a
--- /dev/null
+++ b/lib/fog/google/requests/compute/add_url_map_path_matchers.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def add_url_map_path_matchers(url_map, path_matchers)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def add_url_map_path_matchers(url_map, path_matchers)
+          api_method = @compute.url_maps.update
+          parameters = {
+            'project' => @project,
+            'urlMap' => url_map.name
+          }
+          
+          if url_map.pathMatchers then
+            url_map.pathMatchers.concat(path_matchers)
+          else
+            url_map.pathMatchers = path_matchers
+          end
+        
+          request(api_method, parameters, body_object=url_map)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/add_zone_view_resources.rb b/lib/fog/google/requests/compute/add_zone_view_resources.rb
new file mode 100644
index 0000000..db81268
--- /dev/null
+++ b/lib/fog/google/requests/compute/add_zone_view_resources.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def add_zone_view_resources(zone_view, resources)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def add_zone_view_resources(zone_view, resources, zone)
+          api_method = @resourceviews.zone_views.addresources
+          parameters = {
+            'projectName' => @project,
+            'resourceViewName' => zone_view.name,
+            'zone' => zone
+          }
+          body = {
+            'resources' => resources
+          }
+
+          request(api_method, parameters, body_object=body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/attach_disk.rb b/lib/fog/google/requests/compute/attach_disk.rb
index e7a3aea..282f1ac 100644
--- a/lib/fog/google/requests/compute/attach_disk.rb
+++ b/lib/fog/google/requests/compute/attach_disk.rb
@@ -1,27 +1,32 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-        def attach_disk(instance, zone, deviceName)
+        def attach_disk(instance, zone, source, options = {})
           Fog::Mock.not_implemented
         end
       end
 
       class Real
-
-        def attach_disk(instance, zone, deviceName)
+        def attach_disk(instance, zone, source, options = {})
           api_method = @compute.instances.attach_disk
           parameters = {
             'project' => @project,
             'instance' => instance,
-            'zone' => zone
+            'zone' => zone.split('/')[-1],
           }
+
+          writable = options.delete(:writable)
           body_object = {
-            "deviceName" => deviceName
+            'type' =>       'PERSISTENT',
+            'source' =>     source,
+            'mode' =>       writable ? 'READ_WRITE' : 'READ_ONLY',
+            'deviceName' => options.delete(:deviceName),
+            'boot' =>       options.delete(:boot),
+            'autoDelete' => options.delete(:autoDelete),
           }
-          result = self.build_result(api_method, parameters, body_object=body_object)
-          response = self.build_response(result)
+
+          request(api_method, parameters, body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/delete_address.rb b/lib/fog/google/requests/compute/delete_address.rb
index 9cef11f..21fb387 100644
--- a/lib/fog/google/requests/compute/delete_address.rb
+++ b/lib/fog/google/requests/compute/delete_address.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_address(address_name, region_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def delete_address(address_name, region_name)
           api_method = @compute.addresses.delete
           parameters = {
@@ -20,12 +16,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_backend_service.rb b/lib/fog/google/requests/compute/delete_backend_service.rb
new file mode 100644
index 0000000..ff92b6b
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_backend_service.rb
@@ -0,0 +1,43 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_backend_service(backend_service_name, zone_name= nil)
+          get_backend_service(backend_service_name)
+          backend_service = self.data[:backend_services][backend_service_name]
+          backend_service["mock-deletionTimestamp"] = Time.now.iso8601
+          backend_service["status"] = "DONE"
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServices/#{backend_service_name}",
+            "targetId" => self.data[:backend_services][backend_service_name]["id"],
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+         build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def delete_backend_service(backend_service_name)
+          api_method = @compute.backend_services.delete
+          parameters = {
+            'project' => @project,
+            'backendService' => backend_service_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_disk.rb b/lib/fog/google/requests/compute/delete_disk.rb
index feb43d0..432d6d3 100644
--- a/lib/fog/google/requests/compute/delete_disk.rb
+++ b/lib/fog/google/requests/compute/delete_disk.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_disk(disk_name, zone_name)
           get_disk(disk_name, zone_name)
 
@@ -25,13 +23,11 @@ module Fog
           }
           self.data[:disks].delete disk_name
 
-          build_response(:body => self.data[:operations][operation])
+          build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
-
         def delete_disk(disk_name, zone_name)
           if zone_name.start_with? 'http'
             zone_name = zone_name.split('/')[-1]
@@ -44,12 +40,9 @@ module Fog
             'zone' => zone_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_firewall.rb b/lib/fog/google/requests/compute/delete_firewall.rb
index aae2f31..a2ccf59 100644
--- a/lib/fog/google/requests/compute/delete_firewall.rb
+++ b/lib/fog/google/requests/compute/delete_firewall.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_firewall(firewall_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def delete_firewall(firewall_name)
           api_method = @compute.firewalls.delete
           parameters = {
@@ -19,12 +15,9 @@ module Fog
             'firewall' => firewall_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_forwarding_rule.rb b/lib/fog/google/requests/compute/delete_forwarding_rule.rb
index 01bacc8..15b3380 100644
--- a/lib/fog/google/requests/compute/delete_forwarding_rule.rb
+++ b/lib/fog/google/requests/compute/delete_forwarding_rule.rb
@@ -1,13 +1,29 @@
 module Fog
   module Compute
     class Google
-
       class Mock
+        def delete_forwarding_rule(name, region_name)
+          get_forwarding_rule(name, region_name)
+          id = Fog::Mock.random_numbers(19).to_s
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/forwardingRules/#{name}",
+            "targetId" => id,
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/operations/#{operation}"
+          }
 
-        def delete_forwarding_rule(forwarding_rule_name, region_name)
-          Fog::Mock.not_implemented
+          build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
@@ -25,12 +41,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_global_forwarding_rule.rb b/lib/fog/google/requests/compute/delete_global_forwarding_rule.rb
new file mode 100644
index 0000000..ce076cd
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_global_forwarding_rule.rb
@@ -0,0 +1,48 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_global_forwarding_rule(name, region_name = 'global')
+          get_global_forwarding_rule(name)
+          global_forwarding_rule = self.data[:global_forwarding_rules][name]
+          global_forwarding_rule["mock-deletionTimestamp"] = Time.now.iso8601
+          global_forwarding_rule["status"] = "DONE"
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/forwardingRules/#{name}",
+            "targetId" => self.data[:global_forwarding_rules][name]["id"],
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+         build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def delete_global_forwarding_rule(global_forwarding_rule_name, region_name = 'global')
+          if region_name.start_with? 'http'
+            region_name = region_name.split('/')[-1]
+          end
+
+          api_method = @compute.global_forwarding_rules.delete
+          parameters = {
+            'project' => @project,
+            'forwardingRule' => global_forwarding_rule_name,
+            'region' => region_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_global_operation.rb b/lib/fog/google/requests/compute/delete_global_operation.rb
index 09829f7..970ce9d 100644
--- a/lib/fog/google/requests/compute/delete_global_operation.rb
+++ b/lib/fog/google/requests/compute/delete_global_operation.rb
@@ -1,13 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_global_operation(operation)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -20,8 +17,7 @@ module Fog
             'operation' => operation
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/delete_http_health_check.rb b/lib/fog/google/requests/compute/delete_http_health_check.rb
index 145f88e..04fe1b0 100644
--- a/lib/fog/google/requests/compute/delete_http_health_check.rb
+++ b/lib/fog/google/requests/compute/delete_http_health_check.rb
@@ -1,17 +1,31 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_http_health_check(name)
-          Fog::Mock.not_implemented
+          get_http_health_check(name)
+          check = self.data[:http_health_checks][name]
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/#{name}",
+            "targetId" => self.data[:http_health_checks][name]["id"],
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+         build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
-
         def delete_http_health_check(name)
           api_method = @compute.http_health_checks.delete
           parameters = {
@@ -19,12 +33,9 @@ module Fog
             'httpHealthCheck' => name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_image.rb b/lib/fog/google/requests/compute/delete_image.rb
index b68f835..5346bec 100644
--- a/lib/fog/google/requests/compute/delete_image.rb
+++ b/lib/fog/google/requests/compute/delete_image.rb
@@ -1,17 +1,32 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_image(image_name)
-          Fog::Mock.not_implemented
-        end
+          get_image(image_name)
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/images/#{image_name}",
+            "targetId" => self.data[:images][image_name]["id"],
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+          self.data[:images].delete image_name
 
+          build_excon_response(self.data[:operations][operation])
+        end
       end
 
       class Real
-
         def delete_image(image_name)
           api_method = @compute.images.delete
           parameters = {
@@ -19,12 +34,9 @@ module Fog
             'image' => image_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_network.rb b/lib/fog/google/requests/compute/delete_network.rb
index 0ffed6f..8792ea1 100644
--- a/lib/fog/google/requests/compute/delete_network.rb
+++ b/lib/fog/google/requests/compute/delete_network.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_network(network_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def delete_network(network_name)
           api_method = @compute.networks.delete
           parameters = {
@@ -19,12 +15,9 @@ module Fog
             'network' => network_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_region_operation.rb b/lib/fog/google/requests/compute/delete_region_operation.rb
index 7a7c548..66596b1 100644
--- a/lib/fog/google/requests/compute/delete_region_operation.rb
+++ b/lib/fog/google/requests/compute/delete_region_operation.rb
@@ -1,13 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_region_operation(region, operation)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -24,8 +21,7 @@ module Fog
             'operation' => operation
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/delete_region_view.rb b/lib/fog/google/requests/compute/delete_region_view.rb
new file mode 100644
index 0000000..ce5ebcd
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_region_view.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_region_view(region_view)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def delete_region_view(region_view, region)
+          api_method = @resourceviews.region_views.delete
+          parameters = {
+            'projectName' => @project,
+            'resourceViewName' => region_view,
+            'region' => region
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_route.rb b/lib/fog/google/requests/compute/delete_route.rb
index a5788c6..903f3ca 100644
--- a/lib/fog/google/requests/compute/delete_route.rb
+++ b/lib/fog/google/requests/compute/delete_route.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def delete_route(identity)
           Fog::Mock.not_implemented
@@ -16,11 +15,9 @@ module Fog
             'route' => identity,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_server.rb b/lib/fog/google/requests/compute/delete_server.rb
index 8c18685..d0888e4 100644
--- a/lib/fog/google/requests/compute/delete_server.rb
+++ b/lib/fog/google/requests/compute/delete_server.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       module Shared
         def find_zone(zone_name)
           if zone_name.nil?
@@ -46,9 +45,8 @@ module Fog
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/operations/#{operation}"
           }
 
-          build_response(:body => self.data[:operations][operation])
+          build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
@@ -63,12 +61,9 @@ module Fog
             'instance' => server_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_server_access_config.rb b/lib/fog/google/requests/compute/delete_server_access_config.rb
new file mode 100644
index 0000000..e12d9a3
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_server_access_config.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_server_access_config(identity, zone, nic, options = {})
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def delete_server_access_config(identity, zone, nic, options = {})
+          api_method = @compute.instances.delete_access_config
+          parameters = {
+            'project'  => @project,
+            'instance' => identity,
+            'zone'     => zone.split('/')[-1],
+            'networkInterface' => nic,
+            'accessConfig'     => options[:access_config].nil? ? 'External NAT' : options[:access_config],
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_snapshot.rb b/lib/fog/google/requests/compute/delete_snapshot.rb
index 3991321..fee8f5c 100644
--- a/lib/fog/google/requests/compute/delete_snapshot.rb
+++ b/lib/fog/google/requests/compute/delete_snapshot.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_snapshot(snapshot_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def delete_snapshot(snapshot_name)
           api_method = @compute.snapshots.delete
           parameters = {
@@ -19,12 +15,9 @@ module Fog
             'snapshot' => snapshot_name,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_target_http_proxy.rb b/lib/fog/google/requests/compute/delete_target_http_proxy.rb
new file mode 100644
index 0000000..d856b3f
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_target_http_proxy.rb
@@ -0,0 +1,43 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_target_http_proxy(name)
+          get_target_http_proxy(name)
+          target_http_proxy = self.data[:target_http_proxies][name]
+          target_http_proxy["mock-deletionTimestamp"] = Time.now.iso8601
+          target_http_proxy["status"] = "DONE"
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/#{name}",
+            "targetId" => self.data[:target_http_proxies][name]["id"],
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+         build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def delete_target_http_proxy(name)
+          api_method = @compute.target_http_proxies.delete
+          parameters = {
+            'project' => @project,
+            'targetHttpProxy' => name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_target_instance.rb b/lib/fog/google/requests/compute/delete_target_instance.rb
new file mode 100644
index 0000000..bafea9a
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_target_instance.rb
@@ -0,0 +1,48 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_target_instance(name, zone)
+          get_target_instance(name, zone)
+          target_instance = self.data[:target_instances][name]
+          target_instance["mock-deletionTimestamp"] = Time.now.iso8601
+          target_instance["status"] = "DONE"
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}/targetInstances/#{name}",
+            "targetId" => self.data[:target_instances][name]["id"],
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}/operations/#{operation}"
+          }
+         build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def delete_target_instance(target_instance_name, zone_name)
+          if zone_name.start_with? 'http'
+            zone_name = zone_name.split('/')[-1]
+          end
+
+          api_method = @compute.target_instances.delete
+          parameters = {
+            'project' => @project,
+            'targetInstance' => target_instance_name,
+            'zone' => zone_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_target_pool.rb b/lib/fog/google/requests/compute/delete_target_pool.rb
index 2371aca..1e5133a 100644
--- a/lib/fog/google/requests/compute/delete_target_pool.rb
+++ b/lib/fog/google/requests/compute/delete_target_pool.rb
@@ -1,13 +1,29 @@
 module Fog
   module Compute
     class Google
-
       class Mock
+        def delete_target_pool(name, region_name)
+          get_target_pool(name, region_name)
+          id = Fog::Mock.random_numbers(19).to_s
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/targetPools/#{name}",
+            "targetId" => id,
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/operations/#{operation}"
+          }
 
-        def delete_target_pool(target_pool_name, region_name)
-          Fog::Mock.not_implemented
+          build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
@@ -25,12 +41,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/delete_url_map.rb b/lib/fog/google/requests/compute/delete_url_map.rb
new file mode 100644
index 0000000..484eebf
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_url_map.rb
@@ -0,0 +1,43 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_url_map(name)
+          get_url_map(name)
+          url_map = self.data[:url_maps][name]
+          url_map["mock-deletionTimestamp"] = Time.now.iso8601
+          url_map["status"] = "DONE"
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "delete",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps/#{name}",
+            "targetId" => self.data[:url_maps][name]["id"],
+            "status" => "DONE",
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+         build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def delete_url_map(name)
+          api_method = @compute.url_maps.delete
+          parameters = {
+            'project' => @project,
+            'urlMap' => name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/delete_zone_operation.rb b/lib/fog/google/requests/compute/delete_zone_operation.rb
index 7b93db7..97a0626 100644
--- a/lib/fog/google/requests/compute/delete_zone_operation.rb
+++ b/lib/fog/google/requests/compute/delete_zone_operation.rb
@@ -1,13 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def delete_zone_operation(zone, operation)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -24,8 +21,7 @@ module Fog
             'operation' => operation
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/delete_zone_view.rb b/lib/fog/google/requests/compute/delete_zone_view.rb
new file mode 100644
index 0000000..788ba51
--- /dev/null
+++ b/lib/fog/google/requests/compute/delete_zone_view.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def delete_zone_view(zone_view)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def delete_zone_view(zone_view, zone)
+          api_method = @resourceviews.zone_views.delete
+          parameters = {
+            'projectName' => @project,
+            'resourceViewName' => zone_view,
+            'zone' => zone
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/detach_disk.rb b/lib/fog/google/requests/compute/detach_disk.rb
index a615979..ec8ade1 100644
--- a/lib/fog/google/requests/compute/detach_disk.rb
+++ b/lib/fog/google/requests/compute/detach_disk.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def detach_disk(instance, zone, deviceName)
           Fog::Mock.not_implemented
@@ -9,21 +8,18 @@ module Fog
       end
 
       class Real
-
         def detach_disk(instance, zone, deviceName)
           api_method = @compute.instances.detach_disk
           parameters = {
             'project' => @project,
             'instance' => instance,
-            'zone' => zone,
+            'zone' => zone.split('/')[-1],
+            'deviceName' => deviceName
           }
-          body_object = { "deviceName" => deviceName }
-          result = self.build_result(api_method, parameters, body_object=body_object)
-          response = self.build_response(result)
-        end
 
+          request(api_method, parameters)
+        end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_address.rb b/lib/fog/google/requests/compute/get_address.rb
index 48c6221..162a2ed 100644
--- a/lib/fog/google/requests/compute/get_address.rb
+++ b/lib/fog/google/requests/compute/get_address.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_address(address_name, region_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def get_address(address_name, region_name)
           api_method = @compute.addresses.get
           parameters = {
@@ -20,12 +16,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_backend_service.rb b/lib/fog/google/requests/compute/get_backend_service.rb
new file mode 100644
index 0000000..d4df087
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_backend_service.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_backend_service(service_name)
+          backend_service = self.data[:backend_services][service_name]
+          if backend_service.nil?
+            return nil
+          end
+          build_excon_response(backend_service)
+        end
+      end
+ 
+      class Real
+        def get_backend_service(service_name)
+          api_method = @compute.backend_services.get
+          parameters = {
+            'project' => @project,
+            'backendService' => service_name
+          }
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_backend_service_health.rb b/lib/fog/google/requests/compute/get_backend_service_health.rb
new file mode 100644
index 0000000..2186923
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_backend_service_health.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_backend_service_health(backend_service)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def get_backend_service_health(backend_service)
+          api_method = @compute.backend_services.get_health
+          parameters = {
+            'project' => @project,
+            'backendService' => backend_service.name
+          }
+          health_results = backend_service.backends.map do |backend|
+            body = { 'group' => backend['group'] }
+            resp = request(api_method, parameters, body_object= body)
+            [backend['group'], resp.data[:body]['healthStatus']]
+          end
+          Hash[health_results]
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_backend_services.rb b/lib/fog/google/requests/compute/get_backend_services.rb
new file mode 100644
index 0000000..19504b3
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_backend_services.rb
@@ -0,0 +1,23 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_backend_services(service_name)
+          Fog::Mock::not_implemented
+        end
+      end
+
+      class Real
+        def get_backend_services(service_name)
+          api_method = @compute.backend_services.get
+          parameters = {
+            'project' => @project,
+            'backendService' => service_name
+          }
+          result = self.build_result(api_method, parameters)
+          response = self.build_response(result)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_disk.rb b/lib/fog/google/requests/compute/get_disk.rb
index 9a21e83..a5b6e89 100644
--- a/lib/fog/google/requests/compute/get_disk.rb
+++ b/lib/fog/google/requests/compute/get_disk.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_disk(disk_name, zone_name)
           disk = self.data[:disks][disk_name]
           if zone_name.start_with? 'http'
@@ -12,7 +10,7 @@ module Fog
           get_zone(zone_name)
           zone = self.data[:zones][zone_name]
           if disk.nil? or disk["zone"] != zone["selfLink"]
-            return build_response(:body => {
+            return build_excon_response({
               "error" => {
                 "errors" => [
                  {
@@ -29,13 +27,11 @@ module Fog
 
           # TODO transition the disk through the states
 
-          build_response(:body => disk)
+          build_excon_response(disk)
         end
-
       end
 
       class Real
-
         def get_disk(disk_name, zone_name)
           if zone_name.start_with? 'http'
             zone_name = zone_name.split('/')[-1]
@@ -48,12 +44,9 @@ module Fog
             'zone' => zone_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_disk_type.rb b/lib/fog/google/requests/compute/get_disk_type.rb
new file mode 100644
index 0000000..71f3730
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_disk_type.rb
@@ -0,0 +1,42 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_disk_type(identity, zone)
+          disk_types = list_disk_types(zone).body['items']
+          disk_type = disk_types.select { |dt| dt['name'] == identity } || []
+          if disk_type.empty?
+            return build_excon_response({
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notFound',
+                    'message' => "The resource 'projects/#{@project}/zones/#{zone}/diskTypes/#{identity}' was not found",
+                  }
+                ],
+                'code' => 404,
+                'message' => "The resource 'projects/#{@project}/zones/#{zone}/diskTypes/#{identity}' was not found",
+              }
+            })
+          end
+
+          build_excon_response(disk_type.first)
+        end
+      end
+
+      class Real
+        def get_disk_type(identity, zone)
+          api_method = @compute.disk_types.get
+          parameters = {
+            'project'  => @project,
+            'zone'     => zone.split('/')[-1],
+            'diskType' => identity,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_firewall.rb b/lib/fog/google/requests/compute/get_firewall.rb
index 0836d36..2c1018c 100644
--- a/lib/fog/google/requests/compute/get_firewall.rb
+++ b/lib/fog/google/requests/compute/get_firewall.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_firewall(firewall_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def get_firewall(firewall_name)
           api_method = @compute.firewalls.get
           parameters = {
@@ -19,12 +15,9 @@ module Fog
             'firewall' => firewall_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_forwarding_rule.rb b/lib/fog/google/requests/compute/get_forwarding_rule.rb
index 23919b3..35a547f 100644
--- a/lib/fog/google/requests/compute/get_forwarding_rule.rb
+++ b/lib/fog/google/requests/compute/get_forwarding_rule.rb
@@ -1,15 +1,31 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-        def get_forwarding_rule(forwarding_rule_name, region_name)
-          Fog::Mock.not_implemented
+        def get_forwarding_rule(name, region_name)
+          forwarding_rule = self.data[:forwarding_rules][name]
+          region_name = get_region(region_name).body["name"]
+          region = self.data[:regions][region_name]
+          if forwarding_rule.nil? or forwarding_rule["region"] != region["selfLink"]
+            return build_excon_response({
+              "error" => {
+                "errors" => [
+                 {
+                  "domain" => "global",
+                  "reason" => "notFound",
+                  "message" => "The resource 'projects/#{@project}/regions/#{region_name}/forwarding_rules/#{name}' was not found"
+                 }
+                ],
+                "code" => 404,
+                "message" => "The resource 'projects/#{@project}/regions/#{region_name}/forwarding_rules/#{name}' was not found"
+              }
+            })
+          end
+          build_excon_response(forwarding_rule)
         end
       end
 
       class Real
-
         def get_forwarding_rule(forwarding_rule_name, region_name)
           if region_name.start_with? 'http'
             region_name = region_name.split('/')[-1]
@@ -22,12 +38,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_global_forwarding_rule.rb b/lib/fog/google/requests/compute/get_global_forwarding_rule.rb
new file mode 100644
index 0000000..bef3953
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_global_forwarding_rule.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_global_forwarding_rule(name, region_name = 'global')
+          global_forwarding_rule = self.data[:global_forwarding_rules][name]
+          if global_forwarding_rule.nil?
+            return nil
+          end
+          build_excon_response(global_forwarding_rule)
+        end
+      end
+
+      class Real
+        def get_global_forwarding_rule(global_forwarding_rule_name, region_name = 'global')
+          if region_name.start_with? 'http'
+            region_name = region_name.split('/')[-1]
+          end
+
+          api_method = @compute.global_forwarding_rules.get
+          parameters = {
+            'project' => @project,
+            'forwardingRule' => global_forwarding_rule_name,
+            'region' => region_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_global_operation.rb b/lib/fog/google/requests/compute/get_global_operation.rb
index 1872e1c..d26f5e4 100644
--- a/lib/fog/google/requests/compute/get_global_operation.rb
+++ b/lib/fog/google/requests/compute/get_global_operation.rb
@@ -1,13 +1,35 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_global_operation(operation)
-          Fog::Mock.not_implemented
+         operation = self.data[:operations][operation]
+          if operation
+            case operation["status"]
+            when Fog::Compute::Google::Operation::PENDING_STATE
+              operation["status"] = Fog::Compute::Google::Operation::RUNNING_STATE
+              operation["progress"] = 50
+            else
+              operation["status"] = Fog::Compute::Google::Operation::DONE_STATE
+              operation["progress"] = 100
+            end
+          else
+            operation = {
+              "error" => {
+                "errors" => [
+                 {
+                  "domain" => "global",
+                  "reason" => "notFound",
+                  "message" => "The resource 'projects/#{project}/global/operations/#{operation}' was not found"
+                 }
+                ],
+                "code" => 404,
+                "message" => "The resource 'projects/#{project}/global/operations/#{operation}' was not found"
+              }
+            }
+          end
+          build_excon_response(operation)
         end
-
       end
 
       class Real
@@ -20,8 +42,7 @@ module Fog
             'operation' => operation
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/get_http_health_check.rb b/lib/fog/google/requests/compute/get_http_health_check.rb
index b85400c..8915cf3 100644
--- a/lib/fog/google/requests/compute/get_http_health_check.rb
+++ b/lib/fog/google/requests/compute/get_http_health_check.rb
@@ -1,17 +1,29 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_http_health_check(name)
-          Fog::Mock.not_implemented
+          http_health_check = self.data[:http_health_checks][name]
+          if http_health_check.nil?
+            return build_excon_response({
+              "error" => {
+                "errors" => [
+                 {
+                  "domain" => "global",
+                  "reason" => "notFound",
+                  "message" => "The resource 'projects/#{@project}/global/httpHealthChecks/#{name}' was not found"
+                 }
+                ],
+                "code" => 404,
+                "message" => "The resource 'projects/#{@project}/global/httpHealthChecks/#{name}' was not found"
+              }
+            })
+          end
+          build_excon_response(http_health_check)
         end
-
       end
 
       class Real
-
         def get_http_health_check(name)
           api_method = @compute.http_health_checks.get
           parameters = {
@@ -19,12 +31,9 @@ module Fog
             'httpHealthCheck' => name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_image.rb b/lib/fog/google/requests/compute/get_image.rb
index 3b19fc4..7ae5169 100644
--- a/lib/fog/google/requests/compute/get_image.rb
+++ b/lib/fog/google/requests/compute/get_image.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_image(image_name, project=@project)
           image = data(project)[:images][image_name] || {
             "error" => {
@@ -18,13 +16,11 @@ module Fog
               "message" => "The resource 'projects/#{project}/global/images/#{image_name}' was not found"
             }
           }
-          build_response(:body => image)
+          build_excon_response(image)
         end
-
       end
 
       class Real
-
         def get_image(image_name, project=@project)
           api_method = @compute.images.get
           parameters = {
@@ -32,12 +28,9 @@ module Fog
             'project' => project,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_machine_type.rb b/lib/fog/google/requests/compute/get_machine_type.rb
index fb32555..6f103eb 100644
--- a/lib/fog/google/requests/compute/get_machine_type.rb
+++ b/lib/fog/google/requests/compute/get_machine_type.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_machine_type(machine_type_name, zone_name = nil)
           zone_name = self.data[:zones].keys.first if zone_name.nil?
           get_zone(zone_name)
@@ -13,20 +11,18 @@ module Fog
               {
                "domain" => "global",
                "reason" => "notFound",
-               "message" => "The resource 'projects/google/zones/#{zone_name}/machineTypes/#{machine_type_name}' was not found"
+               "message" => "The resource 'projects/#{@project}/zones/#{zone_name}/machineTypes/#{machine_type_name}' was not found"
               }
              ],
              "code" => 404,
-             "message" => "The resource 'projects/google/zones/#{zone_name}/machineTypes/#{machine_type_name}' was not found"
+             "message" => "The resource 'projects/#{@project}/zones/#{zone_name}/machineTypes/#{machine_type_name}' was not found"
             }
           }
-          build_response(:body => machine_type)
+          build_excon_response(machine_type)
         end
-
       end
 
       class Real
-
         def get_machine_type(machine_type_name, zone_name = nil)
           zone_name = list_zones.body['items'].first['name'] if zone_name.nil?
           if zone_name.start_with? 'http'
@@ -35,16 +31,13 @@ module Fog
           api_method = @compute.machine_types.get
           parameters = {
             'zone' => zone_name,
-            'project' => 'google',
+            'project' => @project,
             'machineType' => machine_type_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_network.rb b/lib/fog/google/requests/compute/get_network.rb
index 3982f1c..390fd61 100644
--- a/lib/fog/google/requests/compute/get_network.rb
+++ b/lib/fog/google/requests/compute/get_network.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_network(network_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def get_network(network_name)
           api_method = @compute.networks.get
           parameters = {
@@ -19,12 +15,9 @@ module Fog
             'network' => network_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_project.rb b/lib/fog/google/requests/compute/get_project.rb
index e70dddf..ecb2b74 100644
--- a/lib/fog/google/requests/compute/get_project.rb
+++ b/lib/fog/google/requests/compute/get_project.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def get_project(identity)
           Fog::Mock.not_implemented
@@ -15,11 +14,9 @@ module Fog
             :project => identity,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_region.rb b/lib/fog/google/requests/compute/get_region.rb
index 9a222c5..87c5f39 100755
--- a/lib/fog/google/requests/compute/get_region.rb
+++ b/lib/fog/google/requests/compute/get_region.rb
@@ -1,10 +1,23 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def get_region(identity)
-          Fog::Mock.not_implemented
+          rname = identity.split('/')[-1]
+          region = self.data[:regions][rname] || {
+            "error" => {
+              "errors" => [
+               {
+                "domain" => "global",
+                "reason" => "notFound",
+                "message" => "The resource 'projects/#{project}/regions/#{rname}' was not found"
+               }
+              ],
+              "code" => 404,
+              "message" => "The resource 'projects/#{project}/regions/#{rname}' was not found"
+            }
+          }
+          build_excon_response(region)
         end
       end
 
@@ -16,11 +29,9 @@ module Fog
             'region' => identity.split('/')[-1],
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_region_operation.rb b/lib/fog/google/requests/compute/get_region_operation.rb
index 9a933ee..6730a24 100644
--- a/lib/fog/google/requests/compute/get_region_operation.rb
+++ b/lib/fog/google/requests/compute/get_region_operation.rb
@@ -1,13 +1,35 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_region_operation(region_name, operation)
-          Fog::Mock.not_implemented
+         operation = self.data[:operations][operation]
+          if operation
+            case operation["status"]
+            when Fog::Compute::Google::Operation::PENDING_STATE
+              operation["status"] = Fog::Compute::Google::Operation::RUNNING_STATE
+              operation["progress"] = 50
+            else
+              operation["status"] = Fog::Compute::Google::Operation::DONE_STATE
+              operation["progress"] = 100
+            end
+          else
+            operation = {
+              "error" => {
+                "errors" => [
+                 {
+                  "domain" => "global",
+                  "reason" => "notFound",
+                  "message" => "The resource 'projects/#{project}/regions/#{region_name}/operations/#{operation}' was not found"
+                 }
+                ],
+                "code" => 404,
+                "message" => "The resource 'projects/#{project}/regions/#{region_name}/operations/#{operation}' was not found"
+              }
+            }
+          end
+          build_excon_response(operation)
         end
-
       end
 
       class Real
@@ -25,12 +47,9 @@ module Fog
             'operation' => operation
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_region_view.rb b/lib/fog/google/requests/compute/get_region_view.rb
new file mode 100644
index 0000000..30e514e
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_region_view.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_region_view(region_view_name, region)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def get_region_view(region_view_name, region)
+          api_method = @resourceviews.region_views.get
+          parameters = {
+            'projectName' => @project,
+            'resourceViewName' => region_view_name,
+            'region' => region
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_route.rb b/lib/fog/google/requests/compute/get_route.rb
index 14575b1..ff84558 100644
--- a/lib/fog/google/requests/compute/get_route.rb
+++ b/lib/fog/google/requests/compute/get_route.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def get_route(identity)
           Fog::Mock.not_implemented
@@ -16,11 +15,9 @@ module Fog
             'route' => identity,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_server.rb b/lib/fog/google/requests/compute/get_server.rb
index 10a65ae..524e42a 100644
--- a/lib/fog/google/requests/compute/get_server.rb
+++ b/lib/fog/google/requests/compute/get_server.rb
@@ -1,15 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_server(server_name, zone_name)
           server = self.data[:servers][server_name]
           get_zone(zone_name)
           zone = self.data[:zones][zone_name]
           if server.nil? or server["zone"] != zone["selfLink"]
-            return build_response(:body => {
+            return build_excon_response({
               "error" => {
                 "errors" => [
                  {
@@ -50,13 +48,11 @@ module Fog
             end
           end
 
-          build_response(:body => server)
+          build_excon_response(server)
         end
-
       end
 
       class Real
-
         def get_server(server_name, zone_name)
           if zone_name.is_a? Excon::Response
             zone = zone_name.body["name"]
@@ -71,12 +67,9 @@ module Fog
             'instance' => server_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_server_serial_port_output.rb b/lib/fog/google/requests/compute/get_server_serial_port_output.rb
new file mode 100644
index 0000000..13b83a3
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_server_serial_port_output.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_server_serial_port_output(identity, zone)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def get_server_serial_port_output(identity, zone)
+          api_method = @compute.instances.get_serial_port_output
+          parameters = {
+            'project'  => @project,
+            'instance' => identity,
+            'zone'     => zone.split('/')[-1],
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_snapshot.rb b/lib/fog/google/requests/compute/get_snapshot.rb
index 1b3a2ba..e757e9d 100644
--- a/lib/fog/google/requests/compute/get_snapshot.rb
+++ b/lib/fog/google/requests/compute/get_snapshot.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_snapshot(snap_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def get_snapshot(snap_name, project=@project)
           if snap_name.nil?
             raise ArgumentError.new "snap_name must not be nil."
@@ -23,12 +19,9 @@ module Fog
             'project'  => project,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_target_http_proxy.rb b/lib/fog/google/requests/compute/get_target_http_proxy.rb
new file mode 100644
index 0000000..e501062
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_target_http_proxy.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_target_http_proxy(name)
+          proxy = self.data[:target_http_proxies][name]
+          if proxy.nil?
+            return nil
+          end
+          build_excon_response(proxy)
+        end
+      end
+
+      class Real
+        def get_target_http_proxy(name)
+          api_method = @compute.target_http_proxies.get
+          parameters = {
+            'project' => @project,
+            'targetHttpProxy' => name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_target_instance.rb b/lib/fog/google/requests/compute/get_target_instance.rb
new file mode 100644
index 0000000..dc16210
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_target_instance.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_target_instance(name, zone_name)
+          target_instance = self.data[:target_instances][name]
+          if target_instance.nil?
+            return nil
+          end
+          build_excon_response(target_instance)
+        end
+      end
+
+      class Real
+        def get_target_instance(target_instance_name, zone_name)
+          if zone_name.start_with? 'http'
+            zone_name = zone_name.split('/')[-1]
+          end
+
+          api_method = @compute.target_instances.get
+          parameters = {
+            'project' => @project,
+            'targetInstance' => target_instance_name,
+            'zone' => zone_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_target_pool.rb b/lib/fog/google/requests/compute/get_target_pool.rb
index fd9b8e3..8c79293 100644
--- a/lib/fog/google/requests/compute/get_target_pool.rb
+++ b/lib/fog/google/requests/compute/get_target_pool.rb
@@ -1,15 +1,25 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-        def get_target_pool(target_pool_name, region_name)
-          Fog::Mock.not_implemented
+        def get_target_pool(name, region_name)
+          region = get_region(region_name)
+          target_pool = self.data[:target_pools][name] || {
+            "error" => {
+              "errors" => [{
+                "domain" => "global",
+                "reason" => "notFound",
+                "message" => "The resource 'projects/#{project}/regions/#{region_name}/targetPools/#{name}' was not found"
+              }],
+              "code" => 404,
+              "message" => "The resource 'projects/#{project}/regions/#{region_name}/targetPools/#{name}' was not found"
+            }
+          }
+          build_excon_response(target_pool)
         end
       end
 
       class Real
-
         def get_target_pool(target_pool_name, region_name)
           if region_name.start_with? 'http'
             region_name = region_name.split('/')[-1]
@@ -22,12 +32,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_target_pool_health.rb b/lib/fog/google/requests/compute/get_target_pool_health.rb
index 4f6e788..5ba3bcd 100644
--- a/lib/fog/google/requests/compute/get_target_pool_health.rb
+++ b/lib/fog/google/requests/compute/get_target_pool_health.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_target_pool_health(target_pool)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def get_target_pool_health(target_pool)
           api_method = @compute.target_pools.get_health
           parameters = {
@@ -20,16 +16,14 @@ module Fog
             'region' => target_pool.region.split('/')[-1]
           }
 
-          health_results = target_pool.instances.collect do |instance|
+          health_results = target_pool.instances.map do |instance|
             body = { 'instance' => instance }
-            resp = build_response(build_result(api_method, parameters, body_object=body))
+            resp = request(api_method, parameters, body_object=body)
             [instance, resp.data[:body]['healthStatus']]
           end
           Hash[health_results]
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_url_map.rb b/lib/fog/google/requests/compute/get_url_map.rb
new file mode 100644
index 0000000..77ef9b5
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_url_map.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_url_map(name)
+          url_map = self.data[:url_maps][name]
+          if url_map.nil?
+            return nil
+          end
+          build_excon_response(url_map)
+        end
+      end
+
+      class Real
+        def get_url_map(name)
+          api_method = @compute.url_maps.get
+          parameters = {
+            'project' => @project,
+            'urlMap' => name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/get_zone.rb b/lib/fog/google/requests/compute/get_zone.rb
index 3ffe992..8a7c4c2 100644
--- a/lib/fog/google/requests/compute/get_zone.rb
+++ b/lib/fog/google/requests/compute/get_zone.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_zone(zone_name)
           zone = self.data[:zones][zone_name] || {
             "error" => {
@@ -18,13 +16,11 @@ module Fog
               "message" => "The resource 'projects/#{project}/zones/#{zone_name}' was not found"
             }
           }
-          build_response(:body => zone)
+          build_excon_response(zone)
         end
-
       end
 
       class Real
-
         def get_zone(zone_name)
           api_method = @compute.zones.get
           parameters = {
@@ -32,12 +28,9 @@ module Fog
             'zone' => zone_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/get_zone_operation.rb b/lib/fog/google/requests/compute/get_zone_operation.rb
index a119dcf..4e045bf 100644
--- a/lib/fog/google/requests/compute/get_zone_operation.rb
+++ b/lib/fog/google/requests/compute/get_zone_operation.rb
@@ -1,11 +1,9 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def get_zone_operation(zone_name, operation)
-          operation = self.data[:operations][operation]
+         operation = self.data[:operations][operation]
           if operation
             case operation["status"]
             when Fog::Compute::Google::Operation::PENDING_STATE
@@ -30,7 +28,7 @@ module Fog
               }
             }
           end
-          build_response(:body => operation)
+          build_excon_response(operation)
         end
       end
 
@@ -49,8 +47,7 @@ module Fog
             'operation' => operation
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/get_zone_view.rb b/lib/fog/google/requests/compute/get_zone_view.rb
new file mode 100644
index 0000000..cb05eb2
--- /dev/null
+++ b/lib/fog/google/requests/compute/get_zone_view.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def get_zone_view(zone_view)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def get_zone_view(zone_view_name, zone)
+          api_method = @resourceviews.zone_views.get
+          parameters = {
+            'projectName' => @project,
+            'resourceViewName' => zone_view_name,
+            'zone' => zone
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_address.rb b/lib/fog/google/requests/compute/insert_address.rb
index 469219a..48d714d 100644
--- a/lib/fog/google/requests/compute/insert_address.rb
+++ b/lib/fog/google/requests/compute/insert_address.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def insert_address(address_name, region_name, options = {})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def insert_address(address_name, region_name, options = {})
           api_method = @compute.addresses.insert
           parameters = {
@@ -21,8 +17,7 @@ module Fog
           body_object = { 'name' => address_name }
           body_object['description'] = options[:description] if options[:description]
 
-          result = self.build_result(api_method, parameters, body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/insert_backend_service.rb b/lib/fog/google/requests/compute/insert_backend_service.rb
new file mode 100644
index 0000000..b58eda9
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_backend_service.rb
@@ -0,0 +1,63 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_backend_service(backend_service_name, opts ={})
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:backend_services][backend_service_name] = {
+            "kind" => "compute#backendService",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => backend_service_name,
+            "description" => '',
+            "backends" => [
+            {
+              "description" => '',
+              "group" => 'https://www.googleapis.com/resourceviews/v1beta1/projects#{@project}/zones/us-central1-a/zoneViews/name',
+              "balancingMode" => "RATE",
+              "capacityScaler" => 1.1,
+              "maxRate" => 0.5,
+            }],
+            "healthChecks" => [ opts["health_check"] ],
+            "timeoutSec" => 30,
+            "port" => 80,
+            "protocol" => "TCP",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServices/#{backend_service_name}"
+          }
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServces/#{backend_service_name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+         end
+      end
+
+      class Real
+        def insert_backend_service(backend_service_name, opts = {})
+          api_method = @compute.backend_services.insert
+          parameters = {
+            'project' => @project
+          }
+          body_object = { 'name' => backend_service_name }
+          body_object.merge!(opts)
+
+          request(api_method, parameters, body_object=body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_disk.rb b/lib/fog/google/requests/compute/insert_disk.rb
index 00c6fe9..777ab75 100644
--- a/lib/fog/google/requests/compute/insert_disk.rb
+++ b/lib/fog/google/requests/compute/insert_disk.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def insert_disk(disk_name, zone_name, image_name=nil, options={})
           # check that image and zone exist
           image = nil
@@ -38,6 +36,11 @@ module Fog
               "sourceImageId" => image.id
             })
           end
+          if disk_type = options.delete(:type)
+            object["type"] = type
+          else
+            object["type"] = "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/diskTypes/pd-standard"
+          end
           self.data[:disks][disk_name] = object
 
           operation = self.random_operation
@@ -57,13 +60,11 @@ module Fog
             "selfLink" => "#{object["zone"]}/operations/#{operation}"
           }
 
-          build_response(:body => self.data[:operations][operation])
+          build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
-
         def insert_disk(disk_name, zone_name, image_name=nil, opts={})
           api_method = @compute.disks.insert
           parameters = {
@@ -80,17 +81,18 @@ module Fog
           end
 
           body_object = { 'name' => disk_name }
+          body_object['type'] = opts.delete('type')
 
           # According to Google docs, if image name is not present, only one of
           # sizeGb or sourceSnapshot need to be present, one will create blank
           # disk of desired size, other will create disk from snapshot
           if image_name.nil?
-            if opts.has_key?('sourceSnapshot')
+            if opts.key?('sourceSnapshot')
               # New disk from snapshot
               snap = snapshots.get(opts.delete('sourceSnapshot'))
               raise ArgumentError.new('Invalid source snapshot') unless snap
               body_object['sourceSnapshot'] = @api_url + snap.resource_url
-            elsif opts.has_key?('sizeGb')
+            elsif opts.key?('sizeGb')
               # New blank disk
               body_object['sizeGb'] = opts.delete('sizeGb')
             else
@@ -103,13 +105,9 @@ module Fog
           # Merge in any remaining options (only 'description' should remain)
           body_object.merge!(opts)
 
-          result = self.build_result(api_method, parameters,
-                                     body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_firewall.rb b/lib/fog/google/requests/compute/insert_firewall.rb
index 03f0699..f1147a3 100644
--- a/lib/fog/google/requests/compute/insert_firewall.rb
+++ b/lib/fog/google/requests/compute/insert_firewall.rb
@@ -1,17 +1,14 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-        def insert_firewall(firewall_name, allowed, network = @default_network, options = {})
+        def insert_firewall(firewall_name, allowed, network = GOOGLE_COMPUTE_DEFAULT_NETWORK, options = {})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
-        def insert_firewall(firewall_name, allowed, network = @default_network, options = {})
+        def insert_firewall(firewall_name, allowed, network = GOOGLE_COMPUTE_DEFAULT_NETWORK, options = {})
           unless network.start_with? 'http'
             network = "#{@api_url}#{@project}/global/networks/#{network}"
           end
@@ -38,12 +35,9 @@ module Fog
             body_object["targetTags"] = options[:target_tags]
           end
 
-          result = self.build_result(api_method, parameters, body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_forwarding_rule.rb b/lib/fog/google/requests/compute/insert_forwarding_rule.rb
index d8c4df3..f39b615 100644
--- a/lib/fog/google/requests/compute/insert_forwarding_rule.rb
+++ b/lib/fog/google/requests/compute/insert_forwarding_rule.rb
@@ -1,17 +1,48 @@
 module Fog
   module Compute
     class Google
-
       class Mock
+        def insert_forwarding_rule(name, region_name, opts = {})
+          # check that region exists
+          get_region(region_name)
 
-        def insert_forwarding_rule(forwarding_rule_name, region_name)
-          Fog::Mock.not_implemented
-        end
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:forwarding_rules][name] = {
+            "kind" => "compute#forwardingRule",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => name,
+            "description" => '',
+            "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}",
+            "IPAddress" => '',
+            "IPProtocol" => '',
+            "portRange" => '',
+            "target" => opts['target'],
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/forwardingRules/#{name}"
+          }
 
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/forwardingRules/#{name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+        end
       end
 
       class Real
-
         def insert_forwarding_rule(forwarding_rule_name, region_name, opts = {})
           api_method = @compute.forwarding_rules.insert
           parameters = {
@@ -21,9 +52,7 @@ module Fog
           body_object = { 'name' => forwarding_rule_name }
           body_object.merge!(opts)
 
-          result = self.build_result(api_method, parameters,
-                                     body_object=body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object=body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/insert_global_forwarding_rule.rb b/lib/fog/google/requests/compute/insert_global_forwarding_rule.rb
new file mode 100644
index 0000000..02f21b8
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_global_forwarding_rule.rb
@@ -0,0 +1,56 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_global_forwarding_rule(name, opts = {})
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:global_forwarding_rules][name] = {
+            "kind" => "compute#forwardingRule",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => name,
+            "description" => '',
+            "region" => 'global',
+            "IPAddress" => '',
+            "IPProtocol" => '',
+            "portRange" => '',
+            "target" => opts['target'],
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/forwardingRules/#{name}"
+          }
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/forwardingRules/#{name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def insert_global_forwarding_rule(global_forwarding_rule_name, opts = {})
+          api_method = @compute.global_forwarding_rules.insert
+          parameters = {
+            'project' => @project,
+          }
+          body_object = { 'name' => global_forwarding_rule_name, 'region' => 'global' }
+          body_object.merge!(opts)
+
+          request(api_method, parameters,body_object=body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_http_health_check.rb b/lib/fog/google/requests/compute/insert_http_health_check.rb
index 08320d0..7220beb 100644
--- a/lib/fog/google/requests/compute/insert_http_health_check.rb
+++ b/lib/fog/google/requests/compute/insert_http_health_check.rb
@@ -1,17 +1,47 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def insert_http_health_check(name, options={})
-          Fog::Mock.not_implemented
-        end
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:http_health_checks][name] = {
+            "kind" => "compute#httpHealthCheck",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => name,
+            "description" => '',
+            "host" => '0.00.0.0',
+            "requestPath" => '/',
+            "port" => 80,
+            "checkIntervalSec" => 5,
+            "timeoutSec" => 5,
+            "unhealthyThreshold" => 2,
+            "healthyThreshold" => 2,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/#{name}"
+          }
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks/#{name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
 
+          build_excon_response(self.data[:operations][operation])
+        end
       end
 
       class Real
-
         def insert_http_health_check(name, opts={})
           api_method = @compute.http_health_checks.insert
           parameters = {
@@ -21,12 +51,9 @@ module Fog
           body_object = { 'name' => name }
           body_object.merge!(opts)
 
-          result = self.build_result(api_method, parameters, body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_image.rb b/lib/fog/google/requests/compute/insert_image.rb
index 607f79f..6d97c23 100644
--- a/lib/fog/google/requests/compute/insert_image.rb
+++ b/lib/fog/google/requests/compute/insert_image.rb
@@ -1,17 +1,46 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def insert_image(image_name, options={})
-          Fog::Mock.not_implemented
-        end
+          id = Fog::Mock.random_numbers(19).to_s
+          object = {
+            "kind" => "compute#image",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "sourceType" => '',
+            "rawDisk" => {
+              "source" => options ["source"],
+              "shal1Checksum" => '',
+              "containerType" => ''
+            },
+            "status" => "READY",
+            "name" => image_name,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/images/#{image_name}"
+          }
+          self.data[:images][image_name] = object
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "operationType" => "insert",
+            "targetLink" => object["selfLink"],
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
 
+          build_excon_response(self.data[:operations][operation])
+        end
       end
 
       class Real
-
         def insert_image(image_name, options={})
           api_method = @compute.images.insert
 
@@ -22,20 +51,14 @@ module Fog
           body_object = {
             'sourceType'      => 'RAW',
             'name'            => image_name,
-            'rawDisk'         => options.delete('rawDisk')
           }
 
-          # Merge in the remaining params (only 'description' should remain)
+          # Merge in the remaining params 
           body_object.merge!(options)
 
-          result = self.build_result(api_method,
-                                     parameters,
-                                     body_object=body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object=body_object)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_network.rb b/lib/fog/google/requests/compute/insert_network.rb
index 17dfb8a..defc871 100644
--- a/lib/fog/google/requests/compute/insert_network.rb
+++ b/lib/fog/google/requests/compute/insert_network.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def insert_network(network_name, ip_range, options = {})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def insert_network(network_name, ip_range, options = {})
           api_method = @compute.networks.insert
           parameters = {
@@ -25,12 +21,9 @@ module Fog
           body_object['description'] = options[:description] if options[:description]
           body_object['gatewayIPv4'] = options[:gateway_ipv4] if options[:gateway_ipv4]
 
-          result = self.build_result(api_method, parameters, body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_region_view.rb b/lib/fog/google/requests/compute/insert_region_view.rb
new file mode 100644
index 0000000..4472d67
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_region_view.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_region_view(region_view_name, region_name)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def insert_region_view(region_view_name, region_name, opts = {})
+          api_method = @resourceviews.region_views.insert
+          parameters = {
+            'projectName' => @project,
+            'region' => region_name
+          }
+          body_object = { 'name' => region_view_name }
+          body_object.merge!(opts)
+
+          request(api_method, parameters, body_object=body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_route.rb b/lib/fog/google/requests/compute/insert_route.rb
index eac2e31..16108d8 100644
--- a/lib/fog/google/requests/compute/insert_route.rb
+++ b/lib/fog/google/requests/compute/insert_route.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def insert_route(name, network, dest_range, priority, options = {})
           Fog::Mock.not_implemented
@@ -28,11 +27,9 @@ module Fog
           body_object['nextHopGateway'] = options[:next_hop_gateway] if options[:next_hop_gateway]
           body_object['nextHopIp'] = options[:next_hop_ip] if options[:next_hop_ip]
 
-          result = self.build_result(api_method, parameters, body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_server.rb b/lib/fog/google/requests/compute/insert_server.rb
index 5ce835e..0176fef 100644
--- a/lib/fog/google/requests/compute/insert_server.rb
+++ b/lib/fog/google/requests/compute/insert_server.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         include Shared
 
@@ -25,14 +24,12 @@ module Fog
         end
 
         def insert_server(server_name, zone_name, options={}, *deprecated_args)
-
           # check that zone exists
           get_zone(zone_name)
 
           if options['disks'].nil? or options['disks'].empty?
             raise ArgumentError.new "Empty value for field 'disks'. Boot disk must be specified"
           end
-
           id = Fog::Mock.random_numbers(19).to_s
           self.data[:servers][server_name] = {
             "kind" => "compute#instance",
@@ -90,9 +87,8 @@ module Fog
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/operations/#{operation}"
           }
 
-          build_response(:body => self.data[:operations][operation])
+          build_excon_response(self.data[:operations][operation])
         end
-
       end
 
       class Real
@@ -131,23 +127,25 @@ module Fog
 
           body_object['machineType'] = @api_url + @project + "/zones/#{zone_name}/machineTypes/#{options.delete 'machineType'}"
           network = nil
-          if options.has_key? 'network'
+          if options.key? 'network'
             network = options.delete 'network'
-          elsif @default_network
-            network = @default_network
+          else
+            network = GOOGLE_COMPUTE_DEFAULT_NETWORK
           end
 
           # ExternalIP is default value for server creation
           access_config = {'type' => 'ONE_TO_ONE_NAT', 'name' => 'External NAT'}
           # leave natIP undefined to use an IP from a shared ephemeral IP address pool
-          if options.has_key? 'externalIp'
+          if options.key? 'externalIp'
             access_config['natIP'] = options.delete 'externalIp'
+            # If set to 'false', that would mean user does no want to allocate an external IP
+            access_config = nil if access_config['natIP'] == false
           end
 
           networkInterfaces = []
           if ! network.nil?
             networkInterface = { 'network' => @api_url + @project + "/global/networks/#{network}" }
-            networkInterface['accessConfigs'] = [access_config]
+            networkInterface['accessConfigs'] = [access_config] if access_config
             networkInterfaces <<  networkInterface
           end
 
@@ -155,17 +153,22 @@ module Fog
             'automaticRestart' => false,
             'onHostMaintenance' => "MIGRATE"
           }
-          if options.has_key? 'auto_restart'
+          if options.key? 'auto_restart'
             scheduling['automaticRestart'] = options.delete 'auto_restart'
             scheduling['automaticRestart'] = scheduling['automaticRestart'].class == TrueClass
           end
-          if options.has_key? 'on_host_maintenance'
+          if options.key? 'on_host_maintenance'
             ohm = options.delete 'on_host_maintenance'
             scheduling['onHostMaintenance'] = (ohm.respond_to?("upcase") &&
                     ohm.upcase == "MIGRATE" && "MIGRATE") || "TERMINATE"
           end
           body_object['scheduling'] = scheduling
 
+          # @see https://developers.google.com/compute/docs/networking#canipforward
+          if options.key? 'can_ip_forward'
+            body_object['canIpForward'] = options.delete 'can_ip_forward'
+          end
+
           # TODO: add other networks
           body_object['networkInterfaces'] = networkInterfaces
 
@@ -180,9 +183,7 @@ module Fog
 
           body_object.merge!(options) # Adds in all remaining options that weren't explicitly handled.
 
-          result = self.build_result(api_method, parameters,
-                                     body_object=body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object=body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/insert_snapshot.rb b/lib/fog/google/requests/compute/insert_snapshot.rb
index 5e8c83a..9c32c76 100644
--- a/lib/fog/google/requests/compute/insert_snapshot.rb
+++ b/lib/fog/google/requests/compute/insert_snapshot.rb
@@ -1,19 +1,14 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def insert_snapshot(snap_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def insert_snapshot(disk_name, zone_name, project=@project, opts={})
-
           # This is unfortunate, since we might be called from 2 contexts
           # 1. disk.snapshot <-- here validation of disk_name is not needed
           # 2. snapshot.create <-- here we must validate the disk_name
@@ -35,15 +30,11 @@ module Fog
           body_object = { 'name' => snap_name }
 
           # Merge in any remaining options (description)
-          body_object.merge(opts)
+          body_object.merge!(opts)
 
-          result = self.build_result(api_method, parameters,
-                                     body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/insert_target_http_proxy.rb b/lib/fog/google/requests/compute/insert_target_http_proxy.rb
new file mode 100644
index 0000000..a5effc4
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_target_http_proxy.rb
@@ -0,0 +1,52 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_target_http_proxy(name, options={})
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:target_http_proxies][name] = {
+            "kind" => "compute#targetHttpProxy",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => name,
+            "description" => '',
+            "urlMap" => options["urlMap"],
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/#{name}"
+          }
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies/#{name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def insert_target_http_proxy(name, opts={})
+          api_method = @compute.target_http_proxies.insert
+          parameters = {
+            'project' => @project
+          }
+          body_object = { 'name' => name }
+          body_object.merge!(opts)
+
+          request(api_method, parameters, body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_target_instance.rb b/lib/fog/google/requests/compute/insert_target_instance.rb
new file mode 100644
index 0000000..bf21616
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_target_instance.rb
@@ -0,0 +1,55 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_target_instance(target_instance, zone_name, opts = {})
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:target_instances][target_instance] = {
+            "kind" => "compute#targetInstance",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => target_instance,
+            "description" => '',
+            "natPolicy" => '',
+            "zone" => zone_name,
+            "instance" => opts['instance'],
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/targetInstances/#{target_instance}"
+          }
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/targetInstances/#{target_instance}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def insert_target_instance(target_instance_name, zone_name, opts = {})
+          api_method = @compute.target_instances.insert
+          parameters = {
+            'project' => @project,
+            'zone' => zone_name,
+          }
+          body_object = { 'name' => target_pool_name }
+          body_object.merge!(opts)
+
+          request(api_method, parameters, body_object=body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_target_pool.rb b/lib/fog/google/requests/compute/insert_target_pool.rb
index f5c1b66..7480cb5 100644
--- a/lib/fog/google/requests/compute/insert_target_pool.rb
+++ b/lib/fog/google/requests/compute/insert_target_pool.rb
@@ -1,17 +1,46 @@
 module Fog
   module Compute
     class Google
-
       class Mock
+        def insert_target_pool(name, region_name, opts = {})
+          # check that region exists
+          get_region(region_name)
 
-        def insert_target_pool(target_pool_name, region_name)
-          Fog::Mock.not_implemented
-        end
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:target_pools][name] = {
+            "kind" => "compute#targetPools",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => name,
+            "description" => '',
+            "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}",
+            "instances" => opts['instances'],
+            "healthChecks" => opts['healthChecks'],
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/targetPools/#{name}"
+          }
 
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "region" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/targetPools/#{name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+        end
       end
 
       class Real
-
         def insert_target_pool(target_pool_name, region_name, opts = {})
           api_method = @compute.target_pools.insert
           parameters = {
@@ -21,9 +50,7 @@ module Fog
           body_object = { 'name' => target_pool_name }
           body_object.merge!(opts)
 
-          result = self.build_result(api_method, parameters,
-                                     body_object=body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object=body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/insert_url_map.rb b/lib/fog/google/requests/compute/insert_url_map.rb
new file mode 100644
index 0000000..d3554f7
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_url_map.rb
@@ -0,0 +1,55 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_url_map(url_map_name, opts)
+          id = Fog::Mock.random_numbers(19).to_s
+          self.data[:url_maps][url_map_name] = {
+            "kind" => "compute#urlMap",
+            "id" => id,
+            "creationTimestamp" => Time.now.iso8601,
+            "name" => url_map_name,
+            "description" => '',
+            "hostRules" => [],
+            "pathMatchers" => [],
+            "tests" => [],
+            "defaultService" => opts['defaultService'],
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps/#{url_map_name}"
+          }
+
+          operation = self.random_operation
+          self.data[:operations][operation] = {
+            "kind" => "compute#operation",
+            "id" => Fog::Mock.random_numbers(19).to_s,
+            "name" => operation,
+            "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global",
+            "operationType" => "insert",
+            "targetLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps/#{url_map_name}",
+            "targetId" => id,
+            "status" => Fog::Compute::Google::Operation::PENDING_STATE,
+            "user" => "123456789012-qwertyuiopasdfghjkl1234567890qwe at developer.gserviceaccount.com",
+            "progress" => 0,
+            "insertTime" => Time.now.iso8601,
+            "startTime" => Time.now.iso8601,
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/operations/#{operation}"
+          }
+
+          build_excon_response(self.data[:operations][operation])
+        end
+      end
+
+      class Real
+        def insert_url_map(url_map_name, opts = {})
+          api_method = @compute.url_maps.insert
+          parameters = {
+            'project' => @project,
+          }
+          body_object = { 'name' => url_map_name }
+          body_object.merge!(opts)
+
+          request(api_method, parameters, body_object=body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/insert_zone_view.rb b/lib/fog/google/requests/compute/insert_zone_view.rb
new file mode 100644
index 0000000..72ca0a6
--- /dev/null
+++ b/lib/fog/google/requests/compute/insert_zone_view.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def insert_zone_view(zone_view_name, zone_name)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def insert_zone_view(zone_view_name, zone_name, opts = {})
+          api_method = @resourceviews.zone_views.insert
+          parameters = {
+            'projectName' => @project,
+            'zone' => zone_name
+#            'zone' => zone_name
+          }
+          body_object = { 'name' => zone_view_name }
+          body_object.merge!(opts)
+
+          request(api_method, parameters, body_object=body_object)
+        end
+      end
+    end
+  end
+end
+
diff --git a/lib/fog/google/requests/compute/list_addresses.rb b/lib/fog/google/requests/compute/list_addresses.rb
index 5b62fb0..484c106 100644
--- a/lib/fog/google/requests/compute/list_addresses.rb
+++ b/lib/fog/google/requests/compute/list_addresses.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_addresses(region_name)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def list_addresses(region_name)
           api_method = @compute.addresses.list
           parameters = {
@@ -19,8 +15,7 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/list_aggregated_addresses.rb b/lib/fog/google/requests/compute/list_aggregated_addresses.rb
index 65d2f95..22635f9 100644
--- a/lib/fog/google/requests/compute/list_aggregated_addresses.rb
+++ b/lib/fog/google/requests/compute/list_aggregated_addresses.rb
@@ -1,25 +1,23 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-        def list_aggregated_addresses
+        def list_aggregated_addresses(options = {})
           Fog::Mock.not_implemented
         end
       end
 
       class Real
-        def list_aggregated_addresses
+        def list_aggregated_addresses(options = {})
           api_method = @compute.addresses.aggregated_list
           parameters = {
             'project' => @project,
           }
+          parameters['filter'] = options[:filter] if options[:filter]
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_aggregated_disk_types.rb b/lib/fog/google/requests/compute/list_aggregated_disk_types.rb
new file mode 100644
index 0000000..5546fa6
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_aggregated_disk_types.rb
@@ -0,0 +1,40 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_aggregated_disk_types(options = {})
+          disk_types_items = {}
+          if options[:filter]
+            disk_type = options[:filter].gsub(/name eq \.\*/, '')
+            self.data[:zones].keys.each do |zone|
+              disk_types = list_disk_types(zone).body['items'].select { |dt| dt['name'] == disk_type } || []
+              disk_types_items["zones/#{zone}"] = { 'diskTypes' => disk_types } unless disk_types.empty?
+            end
+          else
+            self.data[:zones].keys.each do |zone|
+              disk_types = list_disk_types(zone).body['items']
+              disk_types_items["zones/#{zone}"] = { 'diskTypes' => disk_types }
+            end
+          end
+          build_excon_response({
+            'kind' => 'compute#diskTypeAggregatedList',
+            'selfLink' => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/aggregated/diskTypes",
+            'items' => disk_types_items,
+          })
+        end
+      end
+
+      class Real
+        def list_aggregated_disk_types(options = {})
+          api_method = @compute.disk_types.aggregated_list
+          parameters = {
+            'project' => @project,
+          }
+          parameters['filter'] = options[:filter] if options[:filter]
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_aggregated_disks.rb b/lib/fog/google/requests/compute/list_aggregated_disks.rb
new file mode 100644
index 0000000..266e837
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_aggregated_disks.rb
@@ -0,0 +1,40 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_aggregated_disks(options = {})
+          # Create a Hash of unique zones from the disks Array previously filled when disks are created
+          zones = Hash[self.data[:disks].values.map { |disk| ["zones/#{disk['zone'].split('/')[-1]}", {'disks' => [] }] }]
+          if options[:filter]
+            # Look up for the disk name
+            disk = self.data[:disks][options[:filter].gsub(/name eq \.\*/, '')]
+            # Fill the zones Hash with the disk (if it's found)
+            zones["zones/#{disk['zone'].split('/')[-1]}"]['disks'].concat([disk]) if disk
+          else
+            # Fill the zones Hash with the disks attached to each zone
+            self.data[:disks].values.each { |disk| zones["zones/#{disk['zone'].split('/')[-1]}"]['disks'].concat([disk]) }
+          end
+          build_excon_response({
+            "kind" => "compute#diskAggregatedList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/aggregated/disks",
+            "id" => "projects/#{@project}/aggregated/disks",
+            "items" => zones
+
+          })
+        end
+      end
+
+      class Real
+        def list_aggregated_disks(options = {})
+          api_method = @compute.disks.aggregated_list
+          parameters = {
+            'project' => @project,
+          }
+          parameters['filter'] = options[:filter] if options[:filter]
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_aggregated_machine_types.rb b/lib/fog/google/requests/compute/list_aggregated_machine_types.rb
index bdbf08b..5b566aa 100644
--- a/lib/fog/google/requests/compute/list_aggregated_machine_types.rb
+++ b/lib/fog/google/requests/compute/list_aggregated_machine_types.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def list_aggregated_machine_types
           Fog::Mock.not_implemented
@@ -15,11 +14,9 @@ module Fog
             'project' => @project,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_aggregated_servers.rb b/lib/fog/google/requests/compute/list_aggregated_servers.rb
new file mode 100644
index 0000000..e0abd2a
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_aggregated_servers.rb
@@ -0,0 +1,40 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_aggregated_servers(options = {})
+          # Create a Hash of unique zones from the servers Array previously filled when servers are created
+          zones = Hash[self.data[:servers].values.map { |server| ["zones/#{server['zone'].split('/')[-1]}", {'instances' => [] }] }]
+          if options[:filter]
+            # Look up for the server name
+            server = self.data[:servers][options[:filter].gsub(/name eq \.\*/, '')]
+            # Fill the zones Hash with the server (if it's found)
+            zones["zones/#{server['zone'].split('/')[-1]}"]['instances'].concat([server]) if server
+          else
+            # Fill the zones Hash with the servers attached to each zone
+            self.data[:servers].values.each { |server| zones["zones/#{server['zone'].split('/')[-1]}"]['instances'].concat([server]) }
+          end
+          build_excon_response({
+            "kind" => "compute#instanceAggregatedList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/aggregated/instances",
+            "id" => "projects/#{@project}/aggregated/instances",
+            "items" => zones
+
+          })
+        end
+      end
+
+      class Real
+        def list_aggregated_servers(options = {})
+          api_method = @compute.instances.aggregated_list
+          parameters = {
+            'project' => @project,
+          }
+          parameters['filter'] = options[:filter] if options[:filter]
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_backend_services.rb b/lib/fog/google/requests/compute/list_backend_services.rb
new file mode 100644
index 0000000..805e379
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_backend_services.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_backend_services
+          backend_services = self.data[:backend_services].values
+
+          build_excon_response({
+            "kind" => "compute#backendServiceList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/backendServices",
+            "id" => "projects/#{@project}/global/backendServices",
+            "items" => backend_services
+          })
+        end
+      end
+
+      class Real
+        def list_backend_services
+          api_method = @compute.backend_services.list
+          parameters = {
+            'project' => @project,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_disk_types.rb b/lib/fog/google/requests/compute/list_disk_types.rb
new file mode 100644
index 0000000..284d3be
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_disk_types.rb
@@ -0,0 +1,46 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_disk_types(zone)
+          build_excon_response({
+            'kind' => 'compute#diskTypeList',
+            'selfLink' => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}/diskTypes",
+            'items' => [
+              {
+                'kind' => 'compute#diskType',
+                'creationTimestamp' => '2014-06-02T18:07:28.530Z',
+                'name' => 'pd-standard',
+                'description' => 'Standard Persistent Disk',
+                'validDiskSize' => '10GB-10TB',
+                'zone' => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}",
+                'selfLink' => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}/diskTypes/pd-standard",
+              },
+              {
+                'kind' => 'compute#diskType',
+                'creationTimestamp' => '2014-06-02T18:07:28.529Z',
+                'name' => 'pd-ssd',
+                'description' => 'SSD Persistent Disk',
+                'validDiskSize' => '10GB-1TB',
+                "zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}",
+                "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone}/diskTypes/pd-ssd",
+              }
+            ]
+          })
+        end
+      end
+
+      class Real
+        def list_disk_types(zone)
+          api_method = @compute.disk_types.list
+          parameters = {
+            'project' => @project,
+            'zone'    => zone.split('/')[-1],
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_disks.rb b/lib/fog/google/requests/compute/list_disks.rb
index c3ad5ed..ce46aa1 100644
--- a/lib/fog/google/requests/compute/list_disks.rb
+++ b/lib/fog/google/requests/compute/list_disks.rb
@@ -1,23 +1,19 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_disks(zone_name)
           disks = self.data[:disks].values.select{|d| d["zone"].split("/")[-1] == zone_name}
-          build_response(:body => {
+          build_excon_response({
             "kind" => "compute#diskList",
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/disks",
             "id" => "projects/#{@project}/zones/#{zone_name}/disks",
             "items" => disks
           })
         end
-
       end
 
       class Real
-
         def list_disks(zone_name)
           api_method = @compute.disks.list
           parameters = {
@@ -25,12 +21,9 @@ module Fog
             'zone' => zone_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_firewalls.rb b/lib/fog/google/requests/compute/list_firewalls.rb
index 7b0bc61..5131b11 100644
--- a/lib/fog/google/requests/compute/list_firewalls.rb
+++ b/lib/fog/google/requests/compute/list_firewalls.rb
@@ -1,29 +1,22 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_firewalls
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def list_firewalls
           api_method = @compute.firewalls.list
           parameters = {
             'project' => @project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_forwarding_rules.rb b/lib/fog/google/requests/compute/list_forwarding_rules.rb
index fd9d9ef..9f4b138 100644
--- a/lib/fog/google/requests/compute/list_forwarding_rules.rb
+++ b/lib/fog/google/requests/compute/list_forwarding_rules.rb
@@ -1,23 +1,19 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_forwarding_rules(region_name)
           forwarding_rules = self.data[:forwarding_rules].values.select{|d| d["region"].split("/")[-1] == region_name}
-          build_response(:body => {
+          build_excon_response({
             "kind" => "compute#forwardingRuleList",
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/forwardingRules",
             "id" => "projects/#{@project}/regions/#{region_name}/regions",
             "items" => forwarding_rules
           })
         end
-
       end
 
       class Real
-
         def list_forwarding_rules(region_name)
           api_method = @compute.forwarding_rules.list
           parameters = {
@@ -25,12 +21,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_global_forwarding_rules.rb b/lib/fog/google/requests/compute/list_global_forwarding_rules.rb
new file mode 100644
index 0000000..6f11c08
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_global_forwarding_rules.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_global_forwarding_rules(region_name = 'global')
+          global_forwarding_rules = self.data[:global_forwarding_rules].values
+
+          build_excon_response({
+            "kind" => "compute#forwardingRuleList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/forwardingRules",
+            "id" => "projects/#{@project}/global/forwardingRules",
+            "items" => global_forwarding_rules
+          })
+        end
+      end
+
+      class Real
+        def list_global_forwarding_rules(region_name = 'global')
+          api_method = @compute.global_forwarding_rules.list
+          parameters = {
+            'project' => @project,
+            'region' => region_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_global_operations.rb b/lib/fog/google/requests/compute/list_global_operations.rb
index 97a5bf4..8377cee 100644
--- a/lib/fog/google/requests/compute/list_global_operations.rb
+++ b/lib/fog/google/requests/compute/list_global_operations.rb
@@ -1,13 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_global_operations
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -19,8 +16,7 @@ module Fog
             'project' => @project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/list_http_health_checks.rb b/lib/fog/google/requests/compute/list_http_health_checks.rb
index 29a986a..98e5344 100644
--- a/lib/fog/google/requests/compute/list_http_health_checks.rb
+++ b/lib/fog/google/requests/compute/list_http_health_checks.rb
@@ -1,29 +1,29 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_http_health_checks
-          Fog::Mock.not_implemented
+          health_checks = self.data[:http_health_checks].values
+
+          build_excon_response({
+            "kind" => "compute#urlMapList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/httpHealthChecks",
+            "id" => "projects/#{@project}/global/httpHealthChecks",
+            "items" => health_checks
+          })
         end
-
       end
 
       class Real
-
         def list_http_health_checks
           api_method = @compute.http_health_checks.list
           parameters = {
             'project' => @project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_images.rb b/lib/fog/google/requests/compute/list_images.rb
index c5f89b0..09ae880 100644
--- a/lib/fog/google/requests/compute/list_images.rb
+++ b/lib/fog/google/requests/compute/list_images.rb
@@ -1,23 +1,19 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_images(project=@project)
           images = data(project)[:images].values
-          build_response(:body => {
+          build_excon_response({
             "kind" => "compute#imageList",
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{project}/global/images",
             "id" => "projects/#{project}/global/images",
             "items" => images
           })
         end
-
       end
 
       class Real
-
         def list_images(project=nil)
           api_method = @compute.images.list
           project=@project if project.nil?
@@ -25,12 +21,9 @@ module Fog
             'project' => project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_machine_types.rb b/lib/fog/google/requests/compute/list_machine_types.rb
index c680645..eb926c4 100644
--- a/lib/fog/google/requests/compute/list_machine_types.rb
+++ b/lib/fog/google/requests/compute/list_machine_types.rb
@@ -1,24 +1,20 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_machine_types(zone_name)
           get_zone(zone_name)
           machine_types = data[:machine_types][zone_name].values
-          build_response(:body => {
+          build_excon_response({
             "kind" => "compute#machineTypeList",
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/machineTypes",
             "id" => "projects/high-cistern-340/zones/us-central1-a/machineTypes",
             "items" => machine_types
           })
         end
-
       end
 
       class Real
-
         def list_machine_types(zone_name)
           api_method = @compute.machine_types.list
           parameters = {
@@ -26,12 +22,9 @@ module Fog
             'zone' => zone_name,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_networks.rb b/lib/fog/google/requests/compute/list_networks.rb
index 29ee281..2e3daec 100644
--- a/lib/fog/google/requests/compute/list_networks.rb
+++ b/lib/fog/google/requests/compute/list_networks.rb
@@ -1,29 +1,22 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_networks
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def list_networks
           api_method = @compute.networks.list
           parameters = {
             'project' => @project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_region_operations.rb b/lib/fog/google/requests/compute/list_region_operations.rb
index 45a127e..1d1d214 100644
--- a/lib/fog/google/requests/compute/list_region_operations.rb
+++ b/lib/fog/google/requests/compute/list_region_operations.rb
@@ -1,13 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_region_operations(region)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -20,8 +17,7 @@ module Fog
             'project' => @project,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/list_region_view_resources.rb b/lib/fog/google/requests/compute/list_region_view_resources.rb
new file mode 100644
index 0000000..25a4ff8
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_region_view_resources.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_region_view_resources(region_view)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def list_region_view_resources(region_view)
+          api_method = @resourceviews.region_views.list_resources
+          parameters = {
+            'projectName' => @project,
+            'region' => region_view.region,
+            'resourceViewName' => region_view.name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
+
diff --git a/lib/fog/google/requests/compute/list_region_views.rb b/lib/fog/google/requests/compute/list_region_views.rb
new file mode 100644
index 0000000..dfa0bd9
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_region_views.rb
@@ -0,0 +1,23 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_region_views(region_name)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def list_region_views(region_name)
+          api_method = @resourceviews.region_views.list
+          parameters = {
+            'projectName' => @project,
+            'region' => region_name,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_regions.rb b/lib/fog/google/requests/compute/list_regions.rb
index 5de08a4..3d0654e 100644
--- a/lib/fog/google/requests/compute/list_regions.rb
+++ b/lib/fog/google/requests/compute/list_regions.rb
@@ -1,29 +1,85 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_regions
-          Fog::Mock.not_implemented
+          build_excon_response({
+            "kind" => "compute#regionList",
+            "selfLink" => "https://www.googleapis.com/compute/v1/projects/#{@project}/regions",
+            "id" => "projects/#{@project}/regions",
+            "items" => [
+              {
+                "kind" => "compute#region",
+                "selfLink" => "https://www.googleapis.com/compute/v1/projects/#{@project}/regions/asia-east1",
+                "id" => "2699746309412936080",
+                "creationTimestamp" => "2014-01-28T04:12:16.138-08:00",
+                "name" => "asia-east1",
+                "description" => "asia-east1",
+                "status" => "UP",
+                "zones" => [
+                  "https://www.googleapis.com/compute/v1/projects/#{@project}/zones/asia-east1-a",
+                  "https://www.googleapis.com/compute/v1/projects/#{@project}/zones/asia-east1-b"
+                ],
+                "quotas" => [
+                  { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
+                  { "metric" => "DISKS_TOTAL_GB", "limit" => 5120.0, "usage" => 0.0 },
+                  { "metric" => "STATIC_ADDRESSES", "limit" => 7.0, "usage" => 0.0 },
+                  { "metric" => "IN_USE_ADDRESSES", "limit" => 23.0, "usage" => 0.0 }
+                ]
+              },
+              {
+                "kind" => "compute#region",
+                "selfLink" => "https://www.googleapis.com/compute/v1/projects/#{@project}/regions/europe-west1",
+                "id" => "10546209748879352030",
+                "creationTimestamp" => "2014-01-14T18:36:29.094-08:00",
+                "name" => "europe-west1",
+                "description" => "europe-west1",
+                "status" => "UP",
+                "zones" => [
+                  "https://www.googleapis.com/compute/v1/projects/#{@project}/zones/europe-west1-a",
+                  "https://www.googleapis.com/compute/v1/projects/#{@project}/zones/europe-west1-b"
+                ],
+                "quotas" => [
+                  { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
+                  { "metric" => "DISKS_TOTAL_GB", "limit" => 5120.0, "usage" => 0.0 },
+                  { "metric" => "STATIC_ADDRESSES", "limit" => 7.0,  "usage" => 0.0 },
+                  { "metric" => "IN_USE_ADDRESSES", "limit" => 23.0, "usage" => 0.0 }
+                ]
+              },
+              {
+                "kind" => "compute#region",
+                "selfLink" => "https://www.googleapis.com/compute/v1/projects/#{@project}/regions/us-central1",
+                "id" => "17971001795365542305",
+                "creationTimestamp" => "2014-01-14T18:36:29.094-08:00",
+                "name" => "us-central1",
+                "description" => "us-central1",
+                "status" => "UP",
+                "zones" => [
+                  "https://www.googleapis.com/compute/v1/projects/#{@project}/zones/us-central1-a",
+                  "https://www.googleapis.com/compute/v1/projects/#{@project}/zones/us-central1-b"
+                ],
+                "quotas" => [
+                  { "metric" => "CPUS", "limit" => 24.0, "usage" => 0.0 },
+                  { "metric" => "DISKS_TOTAL_GB", "limit" => 5120.0, "usage" => 0.0 },
+                  { "metric" => "STATIC_ADDRESSES", "limit" => 7.0,  "usage" => 0.0 },
+                  { "metric" => "IN_USE_ADDRESSES", "limit" => 23.0, "usage" => 0.0 }
+                ]
+              }
+            ]
+          })
         end
-
       end
 
       class Real
-
         def list_regions
           api_method = @compute.regions.list
           parameters = {
             'project' => @project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_routes.rb b/lib/fog/google/requests/compute/list_routes.rb
index a4eb0b8..44cf763 100644
--- a/lib/fog/google/requests/compute/list_routes.rb
+++ b/lib/fog/google/requests/compute/list_routes.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def list_routes(options = {})
           Fog::Mock.not_implemented
@@ -15,11 +14,9 @@ module Fog
             'project' => @project,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_servers.rb b/lib/fog/google/requests/compute/list_servers.rb
index 4735aeb..f58e029 100644
--- a/lib/fog/google/requests/compute/list_servers.rb
+++ b/lib/fog/google/requests/compute/list_servers.rb
@@ -1,25 +1,21 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_servers(zone_name)
           get_zone(zone_name)
           zone = self.data[:zones][zone_name]
           servers = self.data[:servers].values.select{|s| s["zone"] == zone["selfLink"]}
-          build_response(:body => {
+          build_excon_response({
             "kind" => "compute#instanceList",
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/instances",
             "id" => "projects/#{@project}/zones/#{zone_name}/instances",
             "items" => servers
           })
         end
-
       end
 
       class Real
-
         def list_servers(zone_name)
           api_method = @compute.instances.list
           parameters = {
@@ -27,12 +23,9 @@ module Fog
             'zone' => zone_name,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_snapshots.rb b/lib/fog/google/requests/compute/list_snapshots.rb
index 2c3a982..63a2b2d 100644
--- a/lib/fog/google/requests/compute/list_snapshots.rb
+++ b/lib/fog/google/requests/compute/list_snapshots.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_snapshots
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def list_snapshots(project=nil)
           api_method = @compute.snapshots.list
           project=@project if project.nil?
@@ -19,12 +15,9 @@ module Fog
             'project' => project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_target_http_proxies.rb b/lib/fog/google/requests/compute/list_target_http_proxies.rb
new file mode 100644
index 0000000..105a007
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_target_http_proxies.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_target_http_proxies
+          proxies = self.data[:target_http_proxies].values
+
+          build_excon_response({
+            "kind" => "compute#targetHttpProxyList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/targetHttpProxies",
+            "id" => "projects/#{@project}/global/targetHttpProxies",
+            "items" => proxies
+          })
+        end
+      end
+
+      class Real
+        def list_target_http_proxies
+          api_method = @compute.target_http_proxies.list
+          parameters = {
+            'project' => @project
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
+
diff --git a/lib/fog/google/requests/compute/list_target_instances.rb b/lib/fog/google/requests/compute/list_target_instances.rb
new file mode 100644
index 0000000..fa3ea51
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_target_instances.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_target_instances(zone_name='us-central1-a')
+          zone = self.data[:zones][zone_name]
+          target_instances = self.data[:target_instances].values.select{|s| s["zone"] == zone_name}
+          build_excon_response({
+            "kind" => "compute#targetInstanceList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones/#{zone_name}/targetInstances",
+            "id" => "projects/#{@project}/zones/#{zone_name}/targetInstances",
+            "items" => target_instances
+          })
+        end
+      end
+
+      class Real
+        def list_target_instances(zone_name)
+          api_method = @compute.target_instances.list
+          parameters = {
+            'project' => @project,
+            'zone' => zone_name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_target_pools.rb b/lib/fog/google/requests/compute/list_target_pools.rb
index f9aa036..a747375 100644
--- a/lib/fog/google/requests/compute/list_target_pools.rb
+++ b/lib/fog/google/requests/compute/list_target_pools.rb
@@ -1,17 +1,19 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_target_pools(region_name)
-          Fog::Mock.not_implemented
+          target_pools = self.data[:target_pools].values.select{|d| d["region"].split("/")[-1] == region_name}
+          build_excon_response({
+            "kind" => "compute#forwardingRuleList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/regions/#{region_name}/targetPools",
+            "id" => "projects/#{@project}/regions/#{region_name}/regions",
+            "items" => target_pools
+          })
         end
-
       end
 
       class Real
-
         def list_target_pools(region_name)
           api_method = @compute.target_pools.list
           parameters = {
@@ -19,12 +21,9 @@ module Fog
             'region' => region_name
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/list_url_maps.rb b/lib/fog/google/requests/compute/list_url_maps.rb
new file mode 100644
index 0000000..53aac2e
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_url_maps.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_url_maps
+          url_maps = self.data[:url_maps].values
+
+          build_excon_response({
+            "kind" => "compute#urlMapList",
+            "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/global/urlMaps",
+            "id" => "projects/#{@project}/global/urlMaps",
+            "items" => url_maps
+          })
+        end
+      end
+
+      class Real
+        def list_url_maps
+          api_method = @compute.url_maps.list
+          parameters = {
+            'project' => @project
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_zone_operations.rb b/lib/fog/google/requests/compute/list_zone_operations.rb
index 13898bc..0bc25af 100644
--- a/lib/fog/google/requests/compute/list_zone_operations.rb
+++ b/lib/fog/google/requests/compute/list_zone_operations.rb
@@ -1,13 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_zone_operations(zone)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -20,8 +17,7 @@ module Fog
             'project' => @project,
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/list_zone_view_resources.rb b/lib/fog/google/requests/compute/list_zone_view_resources.rb
new file mode 100644
index 0000000..7521d73
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_zone_view_resources.rb
@@ -0,0 +1,25 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_zone_view_resources(zone_view)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def list_zone_view_resources(zone_view)
+          api_method = @resourceviews.zone_views.list_resources
+          parameters = {
+            'projectName' => @project,
+            'zone' => zone_view.zone,
+            'resourceViewName' => zone_view.name
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
+
diff --git a/lib/fog/google/requests/compute/list_zone_views.rb b/lib/fog/google/requests/compute/list_zone_views.rb
new file mode 100644
index 0000000..ccd2db2
--- /dev/null
+++ b/lib/fog/google/requests/compute/list_zone_views.rb
@@ -0,0 +1,23 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def list_zone_views(zone_name)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def list_zone_views(zone_name)
+          api_method = @resourceviews.zone_views.list
+          parameters = {
+            'projectName' => @project,
+            'zone' => zone_name,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/list_zones.rb b/lib/fog/google/requests/compute/list_zones.rb
index 9ab2429..86d9468 100644
--- a/lib/fog/google/requests/compute/list_zones.rb
+++ b/lib/fog/google/requests/compute/list_zones.rb
@@ -1,35 +1,28 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def list_zones
           zones = self.data[:zones].values
-          build_response(:body => {
+          build_excon_response({
             "kind" => "compute#zoneList",
             "selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{@project}/zones",
             "id" => "projects/#{@project}/zones",
             "items" => zones
           })
         end
-
       end
 
       class Real
-
         def list_zones
           api_method = @compute.zones.list
           parameters = {
             'project' => @project
           }
 
-          result = self.build_result(api_method, parameters)
-          response = self.build_response(result)
+          request(api_method, parameters)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb b/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb
index c338bf9..1e37964 100644
--- a/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb
+++ b/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def remove_target_pool_health_checks(target_pool, health_checks)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def remove_target_pool_health_checks(target_pool, health_checks)
           api_method = @compute.target_pools.remove_health_check
           parameters = {
@@ -20,15 +16,12 @@ module Fog
             'region' => target_pool.region.split('/')[-1]
           }
           body = {
-            'healthChecks' => health_checks.collect { |i| { 'healthCheck' => i } }
+            'healthChecks' => health_checks.map { |i| { 'healthCheck' => i } }
           }
 
-          result = self.build_result(api_method, parameters, body_object=body)
-          self.build_response(result)
+          request(api_method, parameters, body_object=body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/remove_target_pool_instance.rb b/lib/fog/google/requests/compute/remove_target_pool_instance.rb
index 0019431..f0593eb 100644
--- a/lib/fog/google/requests/compute/remove_target_pool_instance.rb
+++ b/lib/fog/google/requests/compute/remove_target_pool_instance.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def set_metadata(instance, zone, fingerprint, metadata={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def remove_target_pool_instances(target_pool, instances)
           api_method = @compute.target_pools.remove_instance
           parameters = {
@@ -20,15 +16,12 @@ module Fog
             'region' => target_pool.region.split('/')[-1]
           }
           body = {
-            'instances' => instances.collect { |i| { 'instance' => i } }
+            'instances' => instances.map { |i| { 'instance' => i } }
           }
 
-          result = self.build_result(api_method, parameters, body_object=body)
-          self.build_response(result)
+          request(api_method, parameters, body_object=body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/remove_target_pool_instances.rb b/lib/fog/google/requests/compute/remove_target_pool_instances.rb
index f882d84..7d31e7c 100644
--- a/lib/fog/google/requests/compute/remove_target_pool_instances.rb
+++ b/lib/fog/google/requests/compute/remove_target_pool_instances.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def remove_target_pool_instances(target_pool, instances)
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def remove_target_pool_instances(target_pool, instances)
           api_method = @compute.target_pools.remove_instance
           parameters = {
@@ -20,15 +16,12 @@ module Fog
             'region' => target_pool.region.split('/')[-1]
           }
           body = {
-            'instances' => instances.collect { |i| { 'instance' => i } }
+            'instances' => instances.map { |i| { 'instance' => i } }
           }
 
-          result = self.build_result(api_method, parameters, body_object=body)
-          self.build_response(result)
+          request(api_method, parameters, body_object=body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/reset_server.rb b/lib/fog/google/requests/compute/reset_server.rb
new file mode 100644
index 0000000..f0bc76e
--- /dev/null
+++ b/lib/fog/google/requests/compute/reset_server.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def reset_server(identity, zone)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def reset_server(identity, zone)
+          api_method = @compute.instances.reset
+          parameters = {
+            'project'  => @project,
+            'instance' => identity,
+            'zone'     => zone.split('/')[-1],
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/set_common_instance_metadata.rb b/lib/fog/google/requests/compute/set_common_instance_metadata.rb
index f760af5..b1f636b 100644
--- a/lib/fog/google/requests/compute/set_common_instance_metadata.rb
+++ b/lib/fog/google/requests/compute/set_common_instance_metadata.rb
@@ -1,12 +1,10 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def set_common_instance_metadata(identity, current_fingerprint, metadata = {})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
@@ -20,11 +18,9 @@ module Fog
             :items => Array(metadata).map { |pair| { :key => pair[0], :value => pair[1] } },
           }
 
-          result = self.build_result(api_method, parameters, body_object)
-          response = self.build_response(result)
+          request(api_method, parameters, body_object)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/set_forwarding_rule_target.rb b/lib/fog/google/requests/compute/set_forwarding_rule_target.rb
index e6cfad6..2c673a2 100644
--- a/lib/fog/google/requests/compute/set_forwarding_rule_target.rb
+++ b/lib/fog/google/requests/compute/set_forwarding_rule_target.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Google
-
       class Mock
         def set_forwarding_rule_target(rule, target)
           Fog::Mock.not_implemented
@@ -9,7 +8,6 @@ module Fog
       end
 
       class Real
-
         def set_forwarding_rule_target(rule, target)
           api_method = @compute.forwarding_rules.set_target
           parameters = {
@@ -21,12 +19,9 @@ module Fog
             'target' => target
           }
 
-          result = self.build_result(api_method, parameters, body_object=body)
-          self.build_response(result)
+          request(api_method, parameters, body_object=body)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb b/lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb
new file mode 100644
index 0000000..0862f08
--- /dev/null
+++ b/lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def set_global_forwarding_rule_target(rule, target)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def set_global_forwarding_rule_target(rule, target)
+          api_method = @compute.global_forwarding_rules.set_target
+          parameters = {
+            'project' => @project,
+            'forwardingRule' => rule.name,
+            'region' => 'global'
+          }
+          body = {
+            'target' => target
+          }
+
+          request(api_method, parameters, body_object=body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/set_metadata.rb b/lib/fog/google/requests/compute/set_metadata.rb
index 5a231d7..8df149d 100644
--- a/lib/fog/google/requests/compute/set_metadata.rb
+++ b/lib/fog/google/requests/compute/set_metadata.rb
@@ -1,17 +1,13 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def set_metadata(instance, zone, fingerprint, metadata={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         # Set an instance metadata
         #
         # ==== Parameters
@@ -35,12 +31,7 @@ module Fog
             'fingerprint' => fingerprint,
             "items" => metadata.to_a.map {|pair| { :key => pair[0], :value => pair[1] } }
           }
-          result = self.build_result(
-            api_method,
-            parameters,
-            body_object=body_object
-          )
-          response = self.build_response(result)
+          request(api_method, parameters, body_object=body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/set_server_disk_auto_delete.rb b/lib/fog/google/requests/compute/set_server_disk_auto_delete.rb
new file mode 100644
index 0000000..95b8875
--- /dev/null
+++ b/lib/fog/google/requests/compute/set_server_disk_auto_delete.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def set_server_disk_auto_delete(identity, zone, auto_delete, device_name)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def set_server_disk_auto_delete(identity, zone, auto_delete, device_name)
+          api_method = @compute.instances.set_disk_auto_delete
+          parameters = {
+            'project'    => @project,
+            'instance'   => identity,
+            'zone'       => zone.split('/')[-1],
+            'autoDelete' => auto_delete,
+            'deviceName' => device_name,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/set_server_scheduling.rb b/lib/fog/google/requests/compute/set_server_scheduling.rb
new file mode 100644
index 0000000..038962a
--- /dev/null
+++ b/lib/fog/google/requests/compute/set_server_scheduling.rb
@@ -0,0 +1,29 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def set_server_scheduling(identity, zone, on_host_maintenance, automatic_restart)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def set_server_scheduling(identity, zone, on_host_maintenance, automatic_restart)
+          api_method = @compute.instances.set_scheduling
+          parameters = {
+            'project'  => @project,
+            'instance' => identity,
+            'zone'     => zone.split('/')[-1],
+          }
+
+          body_object = {
+            'onHostMaintenance' => on_host_maintenance,
+            'automaticRestart'  => automatic_restart,
+          }
+
+          request(api_method, parameters, body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/set_tags.rb b/lib/fog/google/requests/compute/set_tags.rb
index 7df2e03..94ddc38 100644
--- a/lib/fog/google/requests/compute/set_tags.rb
+++ b/lib/fog/google/requests/compute/set_tags.rb
@@ -1,34 +1,22 @@
 module Fog
   module Compute
     class Google
-
       class Mock
-
         def set_tags(instance, zone, tags=[])
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
-        def set_tags(instance, zone, tags=[])
-          me = self.servers.get(instance, zone)
-          fp = me.tags["fingerprint"]
-
+        def set_tags(instance, zone, fingerprint, tags=[])
           api_method = @compute.instances.set_tags
           parameters = {
             'project' => @project,
             'instance' => instance,
             'zone' => zone
           }
-          body_object = { "fingerprint" => fp, "items" => tags }
-          result = self.build_result(
-            api_method,
-            parameters,
-            body_object=body_object
-          )
-          response = self.build_response(result)
+          body_object = { "fingerprint" => fingerprint, "items" => tags }
+          request(api_method, parameters, body_object=body_object)
         end
       end
     end
diff --git a/lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb b/lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb
new file mode 100644
index 0000000..fb02d05
--- /dev/null
+++ b/lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb
@@ -0,0 +1,27 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def set_target_http_proxy_url_map(target_http_proxy, url_map)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def set_target_http_proxy_url_map(target_http_proxy, url_map)
+          api_method = @compute.target_http_proxies.set_url_map
+          parameters = {
+            'project' => @project,
+            'targetHttpProxy' => target_http_proxy.name,
+          }
+          url_map = url_map.self_link unless url_map.class == String
+          body = {
+            'urlMap' => url_map
+          }
+
+          request(api_method, parameters, body_object=body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/update_url_map.rb b/lib/fog/google/requests/compute/update_url_map.rb
new file mode 100644
index 0000000..eb6e0da
--- /dev/null
+++ b/lib/fog/google/requests/compute/update_url_map.rb
@@ -0,0 +1,39 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def update_url_map(url_map, host_rules)
+          Fog::Mock.not_implemented
+        end
+      end
+
+      class Real
+        def update_url_map(url_map, host_rules, path_matchers = nil)
+          api_method = @compute.url_maps.update
+          parameters = {
+            'project' => @project,
+            'urlMap' => url_map.name
+          }
+          
+          # add new properties to the url_map resource
+          if  url_map.hostRules then
+            url_map.hostRules.concat(host_rules)
+          else
+            url_map.hostRules = host_rules
+          end
+
+          # a path matcher can only be created with a host rule that uses it
+          if path_matchers then
+            if url_map.pathMatchers then
+              url_map.pathMatchers.concat(path_matchers)
+            else
+              url_map.pathMatchers = path_matchers
+            end
+          end
+
+          request(api_method, parameters, body_object=url_map)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/compute/validate_url_map.rb b/lib/fog/google/requests/compute/validate_url_map.rb
new file mode 100644
index 0000000..b86c16d
--- /dev/null
+++ b/lib/fog/google/requests/compute/validate_url_map.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class Google
+      class Mock
+        def validate_url_map(url_map)
+          Fog::Mock::not_implemented
+        end
+      end
+
+      class Real
+        def validate_url_map(url_map)
+          api_method = @compute.url_maps.validate
+          parameters = {
+            'project' => @project,
+            'urlMap' => url_map.name
+          }
+          body = { 'resource' => url_map }
+
+          request(api_method, parameters, body_object = body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/dns/create_managed_zone.rb b/lib/fog/google/requests/dns/create_managed_zone.rb
new file mode 100644
index 0000000..a6040ca
--- /dev/null
+++ b/lib/fog/google/requests/dns/create_managed_zone.rb
@@ -0,0 +1,49 @@
+require 'date'
+module Fog
+  module DNS
+    class Google
+
+      class Mock
+        def create_managed_zone(zone_name, dns_name, descr='')
+          id = Fog::Mock.random_numbers(19).to_s
+          object = {
+            "kind" => "dns#managedZone",
+            "id" => id,
+            "creationTime" => DateTime.now.strftime('%FT%T.%LZ'),
+            "name" => zone_name,
+            "dnsName" => dns_name,
+            "description" => descr,
+	    "nameServers" => [
+	      "ns-cloud-e1.googledomains.com.",
+	      "ns-cloud-e2.googledomains.com.",
+	      "ns-cloud-e3.googledomains.com.",
+	      "ns-cloud-e4.googledomains.com.",
+	    ],
+	  }
+          self.data[:managed_zones][:by_name][zone_name] = object
+          self.data[:managed_zones][:by_id][id] = object
+
+          build_excon_response(object)
+        end
+
+      end
+
+      class Real
+        def create_managed_zone(zone_name, dns_name, descr='')
+          api_method = @dns.managed_zones.create
+          parameters = {
+            'project' => @project,
+          }
+
+          body_object = {
+	    'name' => zone_name,
+	    'dnsName' => dns_name,
+	  }
+	  body_object['description'] = descr unless descr.nil?
+
+          request(api_method, parameters, body_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/dns/delete_managed_zone.rb b/lib/fog/google/requests/dns/delete_managed_zone.rb
new file mode 100644
index 0000000..3a1e7c1
--- /dev/null
+++ b/lib/fog/google/requests/dns/delete_managed_zone.rb
@@ -0,0 +1,39 @@
+module Fog
+  module DNS
+    class Google
+
+      class Mock
+        def delete_managed_zone(zone_name_or_id)
+	  if self.data[:managed_zones][:by_name].has_key?(zone_name_or_id)
+            zone_name = zone_name_or_id
+            zone = self.data[:managed_zones][:by_name][zone_name]
+	    zone_id = zone['id']
+	  elsif self.data[:managed_zones][:by_id].has_key?(zone_name_or_id)
+            zone_id = zone_name_or_id
+            zone = self.data[:managed_zones][:by_name][zone_id]
+	    zone_name = zone['name']
+	  else
+	    raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist."
+	  end
+	  self.data[:managed_zones][:by_name].delete(zone_name)
+	  self.data[:managed_zones][:by_id].delete(zone_id)
+
+          build_excon_response(nil)
+        end
+
+      end
+
+      class Real
+        def delete_managed_zone(zone_name_or_id)
+          api_method = @dns.managed_zones.delete
+          parameters = {
+            'project' => @project,
+	    'managedZone' => zone_name_or_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/dns/get_managed_zone.rb b/lib/fog/google/requests/dns/get_managed_zone.rb
new file mode 100644
index 0000000..3ec2881
--- /dev/null
+++ b/lib/fog/google/requests/dns/get_managed_zone.rb
@@ -0,0 +1,31 @@
+module Fog
+  module DNS
+    class Google
+
+      class Mock
+        def get_managed_zone(zone_name_or_id)
+	  if self.data[:managed_zones][:by_name].has_key?(zone_name_or_id)
+            build_excon_response(self.data[:managed_zones][:by_name][zone_name_or_id])
+	  elsif self.data[:managed_zones][:by_id].has_key?(zone_name_or_id)
+            build_excon_response(self.data[:managed_zones][:by_id][zone_name_or_id])
+	  else
+	    raise Fog::Errors::NotFound, "The 'parameters.managedZone' resource named '#{zone_name_or_id}' does not exist."
+	  end
+        end
+
+      end
+
+      class Real
+        def get_managed_zone(zone_name_or_id)
+          api_method = @dns.managed_zones.get
+          parameters = {
+            'project' => @project,
+	    'managedZone' => zone_name_or_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/dns/list_managed_zones.rb b/lib/fog/google/requests/dns/list_managed_zones.rb
new file mode 100644
index 0000000..680f132
--- /dev/null
+++ b/lib/fog/google/requests/dns/list_managed_zones.rb
@@ -0,0 +1,26 @@
+module Fog
+  module DNS
+    class Google
+      class Mock
+        def list_managed_zones()
+          zones = self.data[:managed_zones][:by_id].values
+          build_excon_response({
+	    "kind" => "dns#managedZonesListResponse",
+	    "managedZones" => zones,
+          })
+        end
+      end
+
+      class Real
+        def list_managed_zones()
+          api_method = @dns.managed_zones.list
+          parameters = {
+            'project' => @project,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/monitoring/list_metric_descriptors.rb b/lib/fog/google/requests/monitoring/list_metric_descriptors.rb
new file mode 100644
index 0000000..af111a2
--- /dev/null
+++ b/lib/fog/google/requests/monitoring/list_metric_descriptors.rb
@@ -0,0 +1,191 @@
+module Fog
+  module Google
+    class Monitoring
+      ##
+      # List metric descriptors that match the query. If the query is not set, then all of the metric descriptors
+      # will be returned.
+      #
+      # @see https://developers.google.com/cloud-monitoring/v2beta1/metricDescriptors/list
+      class Real
+        def list_metric_descriptors(options = {})
+          api_method = @monitoring.metric_descriptors.list
+          parameters = {
+            'project' => @project,
+          }
+
+          parameters['count'] = options[:count] if options.key?(:count)
+          parameters['pageToken'] = options[:page_token] if options.key?(:page_token)
+          parameters['query'] = options[:query] if options.key?(:query)
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_metric_descriptors(options = {})
+          body = {
+            'kind' => 'cloudmonitoring#listMetricDescriptorsResponse',
+            'metrics' => [
+              { 'name' => 'compute.googleapis.com/instance/cpu/reserved_cores',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'gauge', 'valueType' => 'double' },
+                'description' => 'Number of cores reserved on the host of the instance.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/cpu/usage_time',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'double' },
+                'description' => 'Delta CPU usage time. Units are seconds. You can get the per-core CPU utilization ratio by performing a rate operation on a point: doubleValue/(end-start), then divide by compute.googleapis.com/instance/cpu/reserved_cores at the corresponding end timestamp.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/disk/read_bytes_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/device_name' },
+                  { 'key' => 'compute.googleapis.com/device_type' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of bytes read from disk.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/disk/read_ops_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/device_name' },
+                  { 'key' => 'compute.googleapis.com/device_type' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of disk read IO operations.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/disk/write_bytes_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/device_name' },
+                  { 'key' => 'compute.googleapis.com/device_type' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => '"compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of bytes written to disk.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/disk/write_ops_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/device_name' },
+                  { 'key' => '"compute.googleapis.com/device_type' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of disk write IO operations.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/network/received_bytes_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/loadbalanced' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of bytes received from network.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/network/received_packets_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/loadbalanced' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of packets received from network.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/network/sent_bytes_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/loadbalanced' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of bytes sent over network.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/network/sent_packets_count',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'compute.googleapis.com/loadbalanced' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'int64' },
+                'description' => 'Delta count of packets sent over network.'
+              },
+              {
+                'name' => 'compute.googleapis.com/instance/uptime',
+                'project' => @project,
+                'labels' => [
+                  { 'key' => 'compute.googleapis.com/instance_name' },
+                  { 'key' => 'cloud.googleapis.com/location' },
+                  { 'key' => 'compute.googleapis.com/resource_id' },
+                  { 'key' => 'compute.googleapis.com/resource_type' },
+                  { 'key' => 'cloud.googleapis.com/service' }
+                ],
+                'typeDescriptor' => { 'metricType' => 'delta', 'valueType' => 'double' },
+                'description' => 'Indicates the VM running time in seconds.'
+              },
+            ]
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/monitoring/list_timeseries.rb b/lib/fog/google/requests/monitoring/list_timeseries.rb
new file mode 100644
index 0000000..3b18cef
--- /dev/null
+++ b/lib/fog/google/requests/monitoring/list_timeseries.rb
@@ -0,0 +1,68 @@
+module Fog
+  module Google
+    class Monitoring
+      ##
+      # List the data points of the time series that match the metric and labels values and that have data points
+      # in the interval
+      #
+      # https://developers.google.com/cloud-monitoring/v2beta1/timeseries
+      class Real
+        def list_timeseries(metric, youngest, options = {})
+          api_method = @monitoring.timeseries.list
+          parameters = {
+            'project' => @project,
+            'metric' => metric,
+            'youngest' => youngest,
+          }
+
+          parameters['count'] = options[:count] if options.key?(:count)
+          parameters['labels'] = options[:labels] if options.key?(:labels)
+          parameters['oldest'] = options[:oldest] if options.key?(:oldest)
+          parameters['pageToken'] = options[:page_token] if options.key?(:page_token)
+          parameters['timespan'] = options[:timespan] if options.key?(:timespan)
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_timeseries(metric, youngest, options = {})
+          body = {
+            'kind' => 'cloudmonitoring#listTimeseriesResponse',
+            'youngest' => youngest,
+            'oldest' => youngest,
+            'timeseries' => [
+              {
+                'timeseriesDesc' => {
+                  'project' => @project,
+                  'metric' => metric,
+                  'labels' => {
+                    'cloud.googleapis.com/service' => 'compute.googleapis.com',
+                    'compute.googleapis.com/resource_type' => 'instance',
+                    'cloud.googleapis.com/location' => 'us-central1-a',
+                    'compute.googleapis.com/resource_id' => Fog::Mock.random_numbers(20).to_s,
+                    'compute.googleapis.com/instance_name' => Fog::Mock.random_hex(40),
+                  },
+                },
+                'points' => [
+                  {
+                    'start' => '2014-07-17T20:06:58.000Z',
+                    'end' => '2014-07-17T20:07:58.000Z',
+                    'doubleValue' => 60.0
+                  },
+                  {
+                    'start' => '2014-07-17T20:05:58.000Z',
+                    'end' => '2014-07-17T20:06:58.000Z',
+                    'doubleValue' => 60.0
+                  },
+                ],
+              }
+            ]
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb b/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb
new file mode 100644
index 0000000..60bfd27
--- /dev/null
+++ b/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb
@@ -0,0 +1,87 @@
+module Fog
+  module Google
+    class Monitoring
+      ##
+      # List the descriptors of the time series that match the metric and labels values and that have data points
+      # in the interval.
+      #
+      # @see https://developers.google.com/cloud-monitoring/v2beta1/timeseriesDescriptors/list
+      class Real
+        def list_timeseries_descriptors(metric, youngest, options = {})
+          api_method = @monitoring.timeseries_descriptors.list
+          parameters = {
+            'project' => @project,
+            'metric' => metric,
+            'youngest' => youngest,
+          }
+
+          parameters['count'] = options[:count] if options.key?(:count)
+          parameters['labels'] = options[:labels] if options.key?(:labels)
+          parameters['oldest'] = options[:oldest] if options.key?(:oldest)
+          parameters['pageToken'] = options[:page_token] if options.key?(:page_token)
+          parameters['timespan'] = options[:timespan] if options.key?(:timespan)
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_timeseries_descriptors(metric, youngest, options = {})
+          body = {
+            'kind' => 'cloudmonitoring#listTimeseriesDescriptorsResponse',
+            'youngest' => youngest,
+            'oldest' => youngest,
+            'timeseries' => [
+              {
+                'project' => @project,
+                'metric' => metric,
+                'labels' => {
+                  'cloud.googleapis.com/service' => 'compute.googleapis.com',
+                  'compute.googleapis.com/resource_type' => 'instance',
+                  'cloud.googleapis.com/location' => 'us-central1-a',
+                  'compute.googleapis.com/resource_id' => Fog::Mock.random_numbers(20).to_s,
+                  'compute.googleapis.com/instance_name' => Fog::Mock.random_hex(40),
+                },
+              },
+              {
+                'project' => @project,
+                'metric' => metric,
+                'labels' => {
+                  'cloud.googleapis.com/service' => 'compute.googleapis.com',
+                  'compute.googleapis.com/resource_type' => 'instance',
+                  'cloud.googleapis.com/location' => 'us-central1-a',
+                  'compute.googleapis.com/resource_id' => Fog::Mock.random_numbers(20).to_s,
+                  'compute.googleapis.com/instance_name' => Fog::Mock.random_hex(40),
+                 },
+              },
+              {
+                'project' => @project,
+                'metric' => metric,
+                'labels' => {
+                  'cloud.googleapis.com/service' => 'compute.googleapis.com',
+                  'compute.googleapis.com/resource_type' => 'instance',
+                  'cloud.googleapis.com/location' => 'us-central1-a',
+                  'compute.googleapis.com/resource_id' => Fog::Mock.random_numbers(20).to_s,
+                  'compute.googleapis.com/instance_name' => Fog::Mock.random_hex(40),
+                 },
+              },
+              {
+                'project' => @project,
+                'metric' => metric,
+                'labels' => {
+                  'cloud.googleapis.com/service' => 'compute.googleapis.com',
+                  'compute.googleapis.com/resource_type' => 'instance',
+                  'cloud.googleapis.com/location' => 'us-central1-a',
+                  'compute.googleapis.com/resource_id' => Fog::Mock.random_numbers(20).to_s,
+                  'compute.googleapis.com/instance_name' => Fog::Mock.random_hex(40),
+                 },
+              },
+            ]
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/clone_instance.rb b/lib/fog/google/requests/sql/clone_instance.rb
new file mode 100644
index 0000000..308ade4
--- /dev/null
+++ b/lib/fog/google/requests/sql/clone_instance.rb
@@ -0,0 +1,84 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Creates a Cloud SQL instance as a clone of the source instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/clone
+
+      class Real
+        def clone_instance(instance_id, destination_name, options = {})
+          # The @sql.instances.clone method is overrided by the standard Ruby clone method
+          # so we cannot call it because it will just clone the @sql.instances instance.
+          # Instead we need to find the proper method trough the discovered_methods.
+          api_method = @sql.instances.discovered_methods.find { |x| x.id == 'sql.instances.clone' }
+          parameters = {
+            'project' => @project,
+          }
+
+          body = {
+            'cloneContext' => {
+              'kind' => 'sql#cloneContext',
+              'sourceInstanceName' => instance_id,
+              'destinationInstanceName' => destination_name,
+            }
+          }
+
+          if options[:log_position]
+            body['cloneContext']['binLogCoordinates'] = {
+              'kind' => 'sql#binLogCoordinates',
+              'binLogFileName' => options[:log_filename],
+              'binLogPosition' => options[:log_position],
+            }
+          end
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def clone_instance(instance_id, destination_name, options = {})
+          self.data[:instances][destination_name] = self.data[:instances][instance_id]
+          self.data[:instances][destination_name]['instance'] = destination_name
+          self.data[:ssl_certs][destination_name] = {}
+          self.data[:backup_runs][destination_name] = {}
+
+          operation = self.random_operation
+          self.data[:operations][destination_name] ||= {}
+          self.data[:operations][destination_name][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => destination_name,
+            'operation' => operation,
+            'operationType' => 'CREATE',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'CLONE',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesClone',
+            'operation' => operation,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/delete_instance.rb b/lib/fog/google/requests/sql/delete_instance.rb
new file mode 100644
index 0000000..d662fb8
--- /dev/null
+++ b/lib/fog/google/requests/sql/delete_instance.rb
@@ -0,0 +1,67 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Deletes a Cloud SQL instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/delete
+
+      class Real
+        def delete_instance(instance_id)
+          api_method = @sql.instances.delete
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def delete_instance(instance_id)
+          if self.data[:instances].has_key?(instance_id)
+            self.data[:instances].delete(instance_id)
+            self.data[:ssl_certs].delete(instance_id)
+            self.data[:backup_runs].delete(instance_id)
+
+            operation = self.random_operation
+            self.data[:operations][instance_id] ||= {}
+            self.data[:operations][instance_id][operation] = {
+              'kind' => 'sql#instanceOperation',
+              'instance' => instance_id,
+              'operation' => operation,
+              'operationType' => 'DELETE',
+              'state' => Fog::Google::SQL::Operation::PENDING_STATE,
+              'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+              'enqueuedTime' => Time.now.iso8601,
+            }
+
+            body = {
+              'kind' => 'sql#instancesDelete',
+              'operation' => operation,
+            }
+            status = 200
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/delete_ssl_cert.rb b/lib/fog/google/requests/sql/delete_ssl_cert.rb
new file mode 100644
index 0000000..07cc1b0
--- /dev/null
+++ b/lib/fog/google/requests/sql/delete_ssl_cert.rb
@@ -0,0 +1,68 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Deletes a SSL certificate. The change will not take effect until the instance is restarted.
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/delete
+
+      class Real
+        def delete_ssl_cert(instance_id, sha1_fingerprint)
+          api_method = @sql.ssl_certs.delete
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+            'sha1Fingerprint' => sha1_fingerprint,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def delete_ssl_cert(instance_id, sha1_fingerprint)
+          if self.data[:ssl_certs].has_key?(instance_id)
+            self.data[:ssl_certs][instance_id].delete(sha1_fingerprint)
+
+            operation = self.random_operation
+            self.data[:operations][instance_id] ||= {}
+            self.data[:operations][instance_id][operation] = {
+              'kind' => 'sql#instanceOperation',
+              'instance' => instance_id,
+              'operation' => operation,
+              'operationType' => 'UPDATE',
+              'state' => Fog::Google::SQL::Operation::DONE_STATE,
+              'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+              'enqueuedTime' => Time.now.iso8601,
+              'startTime' => Time.now.iso8601,
+              'endTime' => Time.now.iso8601,
+            }
+
+            body = {
+              'kind' => 'sql#sslCertsDelete',
+              'operation' => operation,
+            }
+            status = 200
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/export_instance.rb b/lib/fog/google/requests/sql/export_instance.rb
new file mode 100644
index 0000000..8bce35d
--- /dev/null
+++ b/lib/fog/google/requests/sql/export_instance.rb
@@ -0,0 +1,56 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/export
+
+      class Real
+        def export_instance(instance_id, uri, options = {})
+          api_method = @sql.instances.export
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          body = {
+            'exportContext' => {
+              'kind' => 'sql#exportContext',
+              'uri' => uri,
+              'database' => Array(options[:databases]),
+              'table' => Array(options[:tables]),
+            }
+          }
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def export_instance(instance_id, uri, options = {})
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'EXPORT',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesExport',
+            'operation' => operation,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/get_backup_run.rb b/lib/fog/google/requests/sql/get_backup_run.rb
new file mode 100644
index 0000000..d7edb4d
--- /dev/null
+++ b/lib/fog/google/requests/sql/get_backup_run.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Retrieves a resource containing information about a backup run
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/backupRuns/get
+
+      class Real
+        def get_backup_run(instance_id, backup_configuration_id, due_time)
+          api_method = @sql.backup_runs.get
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+            'backupConfiguration' => backup_configuration_id,
+            'dueTime' => due_time,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def get_backup_run(instance_id, backup_configuration_id, due_time)
+          Fog::Mock.not_implemented
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/get_instance.rb b/lib/fog/google/requests/sql/get_instance.rb
new file mode 100644
index 0000000..2b84b2d
--- /dev/null
+++ b/lib/fog/google/requests/sql/get_instance.rb
@@ -0,0 +1,48 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Retrieves a resource containing information about a Cloud SQL instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/get
+
+      class Real
+        def get_instance(instance_id)
+          api_method = @sql.instances.get
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def get_instance(instance_id)
+          if self.data[:instances].has_key?(instance_id)
+            body = self.data[:instances][instance_id]
+            status = 200
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/get_operation.rb b/lib/fog/google/requests/sql/get_operation.rb
new file mode 100644
index 0000000..87043d6
--- /dev/null
+++ b/lib/fog/google/requests/sql/get_operation.rb
@@ -0,0 +1,66 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Retrieves an instance operation that has been performed on an instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/operations/get
+
+      class Real
+        def get_operation(instance_id, operation_id)
+          api_method = @sql.operations.get
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+            'operation' => operation_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def get_operation(instance_id, operation_id)
+          if self.data[:operations].has_key?(instance_id)
+            if self.data[:operations][instance_id].has_key?(operation_id)
+              body = self.data[:operations][instance_id][operation_id]
+              status = 200
+            else
+              body = {
+                'error' => {
+                  'errors' => [
+                    {
+                      'domain' => 'global',
+                      'reason' => 'operationDoesNotExist',
+                      'message' => 'The Cloud SQL instance operation does not exist.',
+                    }
+                  ],
+                  'code' => 404,
+                  'message' => 'The Cloud SQL instance operation does not exist.',
+                }
+              }
+              status = 404
+            end
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/get_ssl_cert.rb b/lib/fog/google/requests/sql/get_ssl_cert.rb
new file mode 100644
index 0000000..f4783ef
--- /dev/null
+++ b/lib/fog/google/requests/sql/get_ssl_cert.rb
@@ -0,0 +1,66 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Retrieves a particular SSL certificate (does not include the private key)
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/get
+
+      class Real
+        def get_ssl_cert(instance_id, sha1_fingerprint)
+          api_method = @sql.ssl_certs.get
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+            'sha1Fingerprint' => sha1_fingerprint,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def get_ssl_cert(instance_id, sha1_fingerprint)
+          if self.data[:ssl_certs].has_key?(instance_id)
+            if self.data[:ssl_certs][instance_id].has_key?(sha1_fingerprint)
+              body = self.data[:ssl_certs][instance_id][sha1_fingerprint]
+              status = 200
+            else
+              body = {
+                'error' => {
+                  'errors' => [
+                    {
+                      'domain' => 'global',
+                      'reason' => 'sslCertificateDoesNotExist',
+                      'message' => 'The SSL certificate does not exist.',
+                    }
+                  ],
+                  'code' => 404,
+                  'message' => 'The SSL certificate does not exist.',
+                }
+              }
+              status = 404
+            end
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/import_instance.rb b/lib/fog/google/requests/sql/import_instance.rb
new file mode 100644
index 0000000..f817b6b
--- /dev/null
+++ b/lib/fog/google/requests/sql/import_instance.rb
@@ -0,0 +1,55 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/import
+
+      class Real
+        def import_instance(instance_id, uri, options = {})
+          api_method = @sql.instances.import
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          body = {
+            'importContext' => {
+              'kind' => 'sql#importContext',
+              'uri' => Array(uri),
+              'database' => options[:database],
+            }
+          }
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def import_instance(instance_id, uri, options = {})
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'IMPORT',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesImport',
+            'operation' => operation,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/insert_instance.rb b/lib/fog/google/requests/sql/insert_instance.rb
new file mode 100644
index 0000000..8daf54f
--- /dev/null
+++ b/lib/fog/google/requests/sql/insert_instance.rb
@@ -0,0 +1,165 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Creates a new Cloud SQL instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/insert
+
+      class Real
+        def insert_instance(name, tier, options = {})
+          api_method = @sql.instances.insert
+          parameters = {
+            'project' => @project,
+          }
+
+          body = {
+            'project' => @project,
+            'instance' => name,
+            'settings' => {
+              'tier' => tier,
+            }
+          }
+
+          if options[:region]
+            body['region'] = options[:region]
+          end
+          if options[:activation_policy]
+            body['settings']['activationPolicy'] = options[:activation_policy]
+          end
+          if options[:autorized_gae_applications]
+            body['settings']['authorizedGaeApplications'] = Array(options[:autorized_gae_applications])
+          end
+          if options[:backup_configuration]
+            body['settings']['backupConfiguration'] = options[:backup_configuration]
+          end
+          if options[:ip_configuration_authorized_networks]
+            body['settings']['ipConfiguration'] ||= {}
+            body['settings']['ipConfiguration']['authorizedNetworks'] = Array(options[:ip_configuration_authorized_networks])
+          end
+          if options[:ip_configuration_enabled]
+            body['settings']['ipConfiguration'] ||= {}
+            body['settings']['ipConfiguration']['enabled'] = options[:ip_configuration_enabled]
+          end
+          if options[:ip_configuration_require_ssl]
+            body['settings']['ipConfiguration'] ||= {}
+            body['settings']['ipConfiguration']['requireSsl'] = options[:ip_configuration_require_ssl]
+          end
+          if options[:location_preference_zone_follow_gae_application]
+            body['settings']['locationPreference'] ||= {}
+            body['settings']['locationPreference']['followGaeApplication'] = options[:location_preference_zone_follow_gae_application]
+          end
+          if options[:location_preference_zone]
+            body['settings']['locationPreference'] ||= {}
+            body['settings']['locationPreference']['zone'] = options[:location_preference_zone]
+          end
+          if options[:pricing_plan]
+            body['settings']['pricingPlan'] = options[:pricing_plan]
+          end
+          if options[:replication_type]
+            body['settings']['replicationType'] = options[:replication_type]
+          end
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def insert_instance(name, tier, options = {})
+          data = {
+            'kind' => 'sql#instance',
+            'instance' => name,
+            'etag' => Fog::Mock.random_base64(32),
+            'project' => @project,
+            'state' => Fog::Google::SQL::Instance::RUNNABLE_STATE ,
+            'databaseVersion' => 'MYSQL_5_5',
+            'region' => options[:region] || 'us-central',
+            'currentDiskSize' => '86245269',
+            'maxDiskSize' => '268435456000',
+            'settings' => {
+              'kind' => 'sql#settings',
+              'settingsVersion' => '1',
+              'tier' => tier,
+              'backupConfiguration' => [
+                {
+                  'kind' => 'sql#backupConfiguration',
+                  'startTime' => '04:00',
+                  'enabled' => false,
+                  'id' => Fog::Mock.random_hex(32),
+                  'binaryLogEnabled' => false
+                }
+              ],
+              'pricingPlan' => options[:pricing_plan] || 'PER_USE',
+              'replicationType' => options[:replication_type] || 'SYNCHRONOUS',
+              'activationPolicy' => options[:activation_policy] || 'ON_DEMAND',
+              'ipConfiguration' => {
+                'enabled' => false,
+              },
+              'locationPreference' => {
+                'kind' => 'sql#locationPreference',
+              }
+             },
+            'serverCaCert' => {
+              'kind' => 'sql#sslCert',
+              'instance' => name,
+              'sha1Fingerprint' => Fog::Mock.random_hex(40),
+              'commonName' => 'C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA',
+              'certSerialNumber' => '0',
+              'cert' => "-----BEGIN CERTIFICATE-----\nMIIDITCCAgmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBIMSMwIQYDVQQDExpHb29n\nbGUgQ2xvdWQgU1FMIFNlcnZlciBDQTEUMBIGA1UEChMLR29vZ2xlLCBJbmMxCzAJ\nBgNVBAYTAlVTMB4XDTE0MDYwNDA1MjkxMVoXDTI0MDYwMTA1MjkxMVowSDEjMCEG\nA1UEAxMaR29vZ2xlIENsb3VkIFNRTCBTZXJ2ZXIgQ0ExFDASBgNVBAoTC0dvb2ds\nZSwgSW5jMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBALlRjq3zccH5ed6NMfCFcTYd9XxYXyvLurxxjDIA6A7/ymVM9qdQC0uckf7C\nsi4uMi2yfK+PHZ0jXC+g0uPx5RTm+nbKl4I++VOh2g [...]
+              'createTime' => Time.now.iso8601,
+              'expirationTime' => Time.now.iso8601,
+            }
+          }
+
+          if options[:autorized_gae_applications]
+            data['settings']['authorizedGaeApplications'] = Array(options[:autorized_gae_applications])
+          end
+          if options[:backup_configuration]
+            data['settings']['backupConfiguration'] = options[:backup_configuration]
+          end
+          if options[:ip_configuration_authorized_networks]
+            data['settings']['ipConfiguration']['authorizedNetworks'] = Array(options[:ip_configuration_authorized_networks])
+          end
+          if options[:ip_configuration_enabled]
+            data['settings']['ipConfiguration']['enabled'] = options[:ip_configuration_enabled]
+          end
+          if options[:ip_configuration_require_ssl]
+            data['settings']['ipConfiguration']['requireSsl'] = options[:ip_configuration_require_ssl]
+          end
+          if options[:location_preference_zone_follow_gae_application]
+            data['settings']['locationPreference']['followGaeApplication'] = options[:location_preference_zone_follow_gae_application]
+          end
+          if options[:location_preference_zone]
+            data['settings']['locationPreference']['zone'] = options[:location_preference_zone]
+          end
+
+          self.data[:instances][name] = data
+          self.data[:ssl_certs][name] = {}
+          self.data[:backup_runs][name] = {}
+
+          operation = self.random_operation
+          self.data[:operations][name] ||= {}
+          self.data[:operations][name][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => name,
+            'operation' => operation,
+            'operationType' => 'CREATE',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesInsert',
+            'operation' => operation,
+          }
+          status = 200
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/insert_ssl_cert.rb b/lib/fog/google/requests/sql/insert_ssl_cert.rb
new file mode 100644
index 0000000..3b4639e
--- /dev/null
+++ b/lib/fog/google/requests/sql/insert_ssl_cert.rb
@@ -0,0 +1,80 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Creates an SSL certificate. The new certificate will not be usable until the instance is restarted.
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/insert
+
+      class Real
+        def insert_ssl_cert(instance_id, common_name)
+          api_method = @sql.ssl_certs.insert
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          body = {
+            'commonName' => common_name
+          }
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def insert_ssl_cert(instance_id, common_name)
+          if self.data[:ssl_certs].has_key?(instance_id)
+            sha1_fingerprint = Fog::Mock.random_hex(40)
+            data = {
+              'kind' => 'sql#sslCert',
+              'instance' => instance_id,
+              'sha1Fingerprint' => sha1_fingerprint,
+              'commonName' => common_name,
+              'certSerialNumber' => Fog::Mock.random_numbers(9),
+              'cert' => "-----BEGIN CERTIFICATE-----\nMIIC/zCCAeegAwIBAgIELAk5vzANBgkqhkiG9w0BAQUFADBNMSgwJgYDVQQDEx9H\nb29nbGUgQ2xvdWQgU1FMIENsaWVudCBDQSB0ZXN0MRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwHhcNMTQwNjA0MDY1MjAwWhcNMjQwNjAxMDY1MjAw\nWjAyMQ0wCwYDVQQDEwR0ZXN0MRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UE\nBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9G9ZG19n978EW\n5bQ/TM1Fnb4fd/FRT8XMs2D5C7+dKLEgbeUOvZQt4EsQ6cC+UVhoK7N6DvnXAZ1M\ng+B159Xlqjv8Mh5RihfGjPCdlw2pF7Pu68LyYghvQL [...]
+              'createTime' => Time.now.iso8601,
+              'expirationTime' => Time.now.iso8601,
+            }
+            self.data[:ssl_certs][instance_id][sha1_fingerprint] = data
+            body = {
+              'kind' => 'sql#sslCertsInsert',
+              'serverCaCert' => {
+                'kind' => 'sql#sslCert',
+                'instance' => instance_id,
+                'sha1Fingerprint' => Fog::Mock.random_hex(40),
+                'commonName' => 'C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA',
+                'certSerialNumber' => '0',
+                'cert' => "-----BEGIN CERTIFICATE-----\nMIIDITCCAgmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBIMSMwIQYDVQQDExpHb29n\nbGUgQ2xvdWQgU1FMIFNlcnZlciBDQTEUMBIGA1UEChMLR29vZ2xlLCBJbmMxCzAJ\nBgNVBAYTAlVTMB4XDTE0MDYwNDA1MjkxMVoXDTI0MDYwMTA1MjkxMVowSDEjMCEG\nA1UEAxMaR29vZ2xlIENsb3VkIFNRTCBTZXJ2ZXIgQ0ExFDASBgNVBAoTC0dvb2ds\nZSwgSW5jMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBALlRjq3zccH5ed6NMfCFcTYd9XxYXyvLurxxjDIA6A7/ymVM9qdQC0uckf7C\nsi4uMi2yfK+PHZ0jXC+g0uPx5RTm+nbKl4I++VOh [...]
+                'createTime' => Time.now.iso8601,
+                'expirationTime' => Time.now.iso8601,
+              },
+              'clientCert' => {
+                'certInfo' => data,
+                'certPrivateKey' => "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAvRvWRtfZ/e/BFuW0P0zNRZ2+H3fxUU/FzLNg+Qu/nSixIG3l\nDr2ULeBLEOnAvlFYaCuzeg751wGdTIPgdefV5ao7/DIeUYoXxozwnZcNqRez7uvC\n8mIIb0C4Yu8objXmjfhQXir43FvZNIueADPFG9mv5MQMDLV5tZBrYHNfqpFJcgcX\n59VKCiOQ4b8PyJ8YCNZEv1VJJJPZL9Kv6Mj626BP77korQ6vqR40RcKyEHEuj8/Q\n2B4WVcgw5EyIe7y1zNCREEU9UogPJPuIcFyN1gaj0WUSOB9SpmEkiCr2bXIut0mz\nP6x4rV5BoqRRdZcNIEqn6TPIBt+n5WiEwTyPewIDAQABAoIBAH89e6+vDL4P05vU\ncrMkufldac9CpNxREIXrLBRmE0 [...]
+              }
+            }
+            status = 200
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/list_backup_runs.rb b/lib/fog/google/requests/sql/list_backup_runs.rb
new file mode 100644
index 0000000..17606be
--- /dev/null
+++ b/lib/fog/google/requests/sql/list_backup_runs.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Lists all backup runs associated with a given instance and configuration in the
+      # reverse chronological order of the enqueued time
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/backupRuns/list
+
+      class Real
+        def list_backup_runs(instance_id, backup_configuration_id)
+          api_method = @sql.backup_runs.list
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+            'backupConfiguration' => backup_configuration_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_backup_runs(instance_id, backup_configuration_id)
+          Fog::Mock.not_implemented
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/list_flags.rb b/lib/fog/google/requests/sql/list_flags.rb
new file mode 100644
index 0000000..ac34a9d
--- /dev/null
+++ b/lib/fog/google/requests/sql/list_flags.rb
@@ -0,0 +1,143 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # List all available database flags for Google Cloud SQL instances
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/flags/list
+
+      class Real
+        def list_flags
+          api_method = @sql.flags.list
+          parameters = {}
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_flags
+          body = {
+            'kind' => 'sql#flagsList',
+            'items' => [
+              {
+                'kind' => 'sql#flag',
+                'name' => 'log_output',
+                'type' => 'STRING',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'allowedStringValues' => ['TABLE', 'NONE'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'general_log',
+                'type' => 'BOOLEAN',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'log_queries_not_using_indexes',
+                'type' => 'BOOLEAN',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'log_bin_trust_function_creators',
+                'type' => 'BOOLEAN',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'slow_query_log',
+                'type' => 'BOOLEAN',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'read_only',
+                'type' => 'BOOLEAN',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'max_allowed_packet',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '16384',
+                'maxValue' => '1073741824',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'long_query_time',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '0',
+                'maxValue' => '30000000',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'group_concat_max_len',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '4',
+                'maxValue' => '17179869184',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'wait_timeout',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '1',
+                'maxValue' => '31536000',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'innodb_lock_wait_timeout',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '1',
+                'maxValue' => '1073741824',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'lower_case_table_names',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '0',
+                'maxValue' => '2',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'innodb_flush_log_at_trx_commit',
+                'type' => 'INTEGER',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'minValue' => '0',
+                'maxValue' => '2',
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'skip_show_database',
+                'type' => 'NONE',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'event_scheduler',
+                'type' => 'BOOLEAN',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+              },
+              {
+                'kind' => 'sql#flag',
+                'name' => 'character_set_server',
+                'type' => 'STRING',
+                'appliesTo' => ['MYSQL_5_5', 'MYSQL_5_6'],
+                'allowedStringValues' => ['utf8', 'utf8mb4'],
+              },
+            ]
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/list_instances.rb b/lib/fog/google/requests/sql/list_instances.rb
new file mode 100644
index 0000000..beb81d2
--- /dev/null
+++ b/lib/fog/google/requests/sql/list_instances.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Lists instances under a given project in the alphabetical order of the instance name
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/list
+
+      class Real
+        def list_instances
+          api_method = @sql.instances.list
+          parameters = {
+            'project' => @project,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_instances
+          body = {
+            'kind' => 'sql#instancesList',
+            'items' => self.data[:instances].values,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/list_operations.rb b/lib/fog/google/requests/sql/list_operations.rb
new file mode 100644
index 0000000..6150594
--- /dev/null
+++ b/lib/fog/google/requests/sql/list_operations.rb
@@ -0,0 +1,52 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Lists all instance operations that have been performed on the given Cloud SQL instance
+      # in the reverse chronological order of the start time
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/operations/list
+
+      class Real
+        def list_operations(instance_id)
+          api_method = @sql.operations.list
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_operations(instance_id)
+          if self.data[:operations].has_key?(instance_id)
+            body = {
+              'kind' => 'sql#operationsList',
+              'items' => self.data[:operations][instance_id].values,
+            }
+            status = 200
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/list_ssl_certs.rb b/lib/fog/google/requests/sql/list_ssl_certs.rb
new file mode 100644
index 0000000..3e62842
--- /dev/null
+++ b/lib/fog/google/requests/sql/list_ssl_certs.rb
@@ -0,0 +1,51 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Lists all of the current SSL certificates for the instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/list
+
+      class Real
+        def list_ssl_certs(instance_id)
+          api_method = @sql.ssl_certs.list
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_ssl_certs(instance_id)
+          if self.data[:ssl_certs].has_key?(instance_id)
+            body = {
+              'kind' => 'sql#sslCertsList',
+              'items' => self.data[:ssl_certs][instance_id].values,
+            }
+            status = 200
+          else
+            body = {
+              'error' => {
+                'errors' => [
+                  {
+                    'domain' => 'global',
+                    'reason' => 'notAuthorized',
+                    'message' => 'The client is not authorized to make this request.',
+                  }
+                ],
+                'code' => 403,
+                'message' => 'The client is not authorized to make this request.',
+             }
+            }
+            status = 403
+          end
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/list_tiers.rb b/lib/fog/google/requests/sql/list_tiers.rb
new file mode 100644
index 0000000..cd6d9a9
--- /dev/null
+++ b/lib/fog/google/requests/sql/list_tiers.rb
@@ -0,0 +1,82 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Lists all available service tiers for Google Cloud SQL
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/tiers/list
+
+      class Real
+        def list_tiers
+          api_method = @sql.tiers.list
+          parameters = {
+            'project' => @project,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def list_tiers
+          body = {
+            'kind' => 'sql#tiersList',
+            'items' => [
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D0',
+                'RAM'       => '134217728',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central', 'europe-west1', 'asia-east1'],
+              },
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D1',
+                'RAM'       => '536870912',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central', 'europe-west1', 'asia-east1'],
+              },
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D2',
+                'RAM'       => '1073741824',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central', 'europe-west1', 'asia-east1'],
+              },
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D4',
+                'RAM'       => '2147483648',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central', 'europe-west1', 'asia-east1'],
+              },
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D8',
+                'RAM'       => '4294967296',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central', 'europe-west1', 'asia-east1'],
+              },
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D16',
+                'RAM'       => '8589934592',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central', 'europe-west1', 'asia-east1'],
+              },
+              {
+                'kind'      => 'sql#tier',
+                'tier'      => 'D32',
+                'RAM'       => '17179869184',
+                'DiskQuota' => '268435456000',
+                'region'    => ['us-central'],
+              },
+            ]
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/reset_instance_ssl_config.rb b/lib/fog/google/requests/sql/reset_instance_ssl_config.rb
new file mode 100644
index 0000000..bf39d84
--- /dev/null
+++ b/lib/fog/google/requests/sql/reset_instance_ssl_config.rb
@@ -0,0 +1,49 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Deletes all client certificates and generates a new server SSL certificate for the instance.
+      # The changes will not take effect until the instance is restarted. Existing instances without
+      # a server certificate will need to call this once to set a server certificate
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/resetSslConfig
+
+      class Real
+        def reset_instance_ssl_config(instance_id)
+          api_method = @sql.instances.reset_ssl_config
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def reset_instance_ssl_config(instance_id)
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'UPDATE',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesResetSslConfig',
+            'operation' => operation,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/restart_instance.rb b/lib/fog/google/requests/sql/restart_instance.rb
new file mode 100644
index 0000000..0cd77cd
--- /dev/null
+++ b/lib/fog/google/requests/sql/restart_instance.rb
@@ -0,0 +1,47 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Restarts a Cloud SQL instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/restart
+
+      class Real
+        def restart_instance(instance_id)
+          api_method = @sql.instances.restart
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def restart_instance(instance_id)
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'RESTART',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesRestart',
+            'operation' => operation,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/restore_instance_backup.rb b/lib/fog/google/requests/sql/restore_instance_backup.rb
new file mode 100644
index 0000000..73a3135
--- /dev/null
+++ b/lib/fog/google/requests/sql/restore_instance_backup.rb
@@ -0,0 +1,30 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Restores a backup of a Cloud SQL instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/restoreBackup
+
+      class Real
+        def restore_instance_backup(identity, backup_configuration, due_time)
+          api_method = @sql.instances.reset_ssl_config
+          parameters = {
+            'project' => @project,
+            'instance' => identity,
+            'backupConfiguration' => backup_configuration,
+            'dueTime' => due_time,
+          }
+
+          request(api_method, parameters)
+        end
+      end
+
+      class Mock
+        def restore_instance_backup(identity, backup_configuration, due_time)
+          Fog::Mock.not_implemented
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/set_instance_root_password.rb b/lib/fog/google/requests/sql/set_instance_root_password.rb
new file mode 100644
index 0000000..6be9426
--- /dev/null
+++ b/lib/fog/google/requests/sql/set_instance_root_password.rb
@@ -0,0 +1,54 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Sets the password for the root user
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/setRootPassword
+
+      class Real
+        def set_instance_root_password(instance_id, password)
+          api_method = @sql.instances.set_root_password
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          body = {
+            'setRootPasswordContext' => {
+              'kind' => 'sql#setRootUserContext',
+              'password' => password,
+            }
+          }
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def set_instance_root_password(instance_id, password)
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'INJECT_USER',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesSetRootPassword',
+            'operation' => operation,
+          }
+
+          build_excon_response(body)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/requests/sql/update_instance.rb b/lib/fog/google/requests/sql/update_instance.rb
new file mode 100644
index 0000000..360188c
--- /dev/null
+++ b/lib/fog/google/requests/sql/update_instance.rb
@@ -0,0 +1,132 @@
+module Fog
+  module Google
+    class SQL
+      ##
+      # Updates settings of a Cloud SQL instance
+      #
+      # @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/update
+
+      class Real
+        def update_instance(instance_id, settings_version, tier, options = {})
+          api_method = @sql.instances.update
+          parameters = {
+            'project' => @project,
+            'instance' => instance_id,
+          }
+
+          body = {
+            'project' => @project,
+            'instance' => instance_id,
+            'settings' => {
+              'settingsVersion' => settings_version,
+              'tier' => tier,
+            }
+          }
+
+          if options[:activation_policy]
+            body['settings']['activationPolicy'] = options[:activation_policy]
+          end
+          if options[:autorized_gae_applications]
+            body['settings']['authorizedGaeApplications'] = Array(options[:autorized_gae_applications])
+          end
+          if options[:backup_configuration]
+            body['settings']['backupConfiguration'] = options[:backup_configuration]
+          end
+          if options[:ip_configuration_authorized_networks]
+            body['settings']['ipConfiguration'] ||= {}
+            body['settings']['ipConfiguration']['authorizedNetworks'] = Array(options[:ip_configuration_authorized_networks])
+          end
+          if options[:ip_configuration_enabled]
+            body['settings']['ipConfiguration'] ||= {}
+            body['settings']['ipConfiguration']['enabled'] = options[:ip_configuration_enabled]
+          end
+          if options[:ip_configuration_require_ssl]
+            body['settings']['ipConfiguration'] ||= {}
+            body['settings']['ipConfiguration']['requireSsl'] = options[:ip_configuration_require_ssl]
+          end
+          if options[:location_preference_zone_follow_gae_application]
+            body['settings']['locationPreference'] ||= {}
+            body['settings']['locationPreference']['followGaeApplication'] = options[:location_preference_zone_follow_gae_application]
+          end
+          if options[:location_preference_zone]
+            body['settings']['locationPreference'] ||= {}
+            body['settings']['locationPreference']['zone'] = options[:location_preference_zone]
+          end
+          if options[:pricing_plan]
+            body['settings']['pricingPlan'] = options[:pricing_plan]
+          end
+          if options[:replication_type]
+            body['settings']['replicationType'] = options[:replication_type]
+          end
+
+          request(api_method, parameters, body)
+        end
+      end
+
+      class Mock
+        def update_instance(instance_id, settings_version, tier, options = {})
+          data = self.data[:instances][instance_id]
+          data['tier'] = tier
+          if options[:activation_policy]
+            data['settings']['activationPolicy'] = options[:activation_policy]
+          end
+          if options[:autorized_gae_applications]
+            data['settings']['authorizedGaeApplications'] = Array(options[:autorized_gae_applications])
+          end
+          if options[:backup_configuration]
+            data['settings']['backupConfiguration'] = options[:backup_configuration]
+          end
+          if options[:ip_configuration_authorized_networks]
+            data['settings']['ipConfiguration'] ||= {}
+            data['settings']['ipConfiguration']['authorizedNetworks'] = Array(options[:ip_configuration_authorized_networks])
+          end
+          if options[:ip_configuration_enabled]
+            data['settings']['ipConfiguration'] ||= {}
+            data['settings']['ipConfiguration']['enabled'] = options[:ip_configuration_enabled]
+          end
+          if options[:ip_configuration_require_ssl]
+            data['settings']['ipConfiguration'] ||= {}
+            data['settings']['ipConfiguration']['requireSsl'] = options[:ip_configuration_require_ssl]
+          end
+          if options[:location_preference_zone_follow_gae_application]
+            data['settings']['locationPreference'] ||= {}
+            data['settings']['locationPreference']['followGaeApplication'] = options[:location_preference_zone_follow_gae_application]
+          end
+          if options[:location_preference_zone]
+            data['settings']['locationPreference'] ||= {}
+            data['settings']['locationPreference']['zone'] = options[:location_preference_zone]
+          end
+          if options[:pricing_plan]
+            data['settings']['pricingPlan'] = options[:pricing_plan]
+          end
+          if options[:replication_type]
+            data['settings']['replicationType'] = options[:replication_type]
+          end
+          self.data[:instances][instance_id] = data
+
+          operation = self.random_operation
+          self.data[:operations][instance_id] ||= {}
+          self.data[:operations][instance_id][operation] = {
+            'kind' => 'sql#instanceOperation',
+            'instance' => instance_id,
+            'operation' => operation,
+            'operationType' => 'UPDATE',
+            'state' => Fog::Google::SQL::Operation::DONE_STATE,
+            'userEmailAddress' => 'google_client_email at developer.gserviceaccount.com',
+            'enqueuedTime' => Time.now.iso8601,
+            'startTime' => Time.now.iso8601,
+            'endTime' => Time.now.iso8601,
+          }
+
+          body = {
+            'kind' => 'sql#instancesUpdate',
+            'operation' => operation,
+          }
+          status = 200
+
+          build_excon_response(body, status)
+        end
+      end
+    end
+  end
+end
\ No newline at end of file
diff --git a/lib/fog/google/requests/storage/copy_object.rb b/lib/fog/google/requests/storage/copy_object.rb
index b8eb5a6..f18effe 100644
--- a/lib/fog/google/requests/storage/copy_object.rb
+++ b/lib/fog/google/requests/storage/copy_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         require 'fog/google/parsers/storage/copy_object'
 
         # Copy an object from one Google Storage bucket to another
@@ -36,11 +35,9 @@ module Fog
             :path     => CGI.escape(target_object_name)
           })
         end
-
       end
 
       class Mock
-
         def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
           response = Excon::Response.new
           source_bucket = self.data[:buckets][source_bucket_name]
@@ -65,7 +62,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/delete_bucket.rb b/lib/fog/google/requests/storage/delete_bucket.rb
index 101acbb..cdd3c5a 100644
--- a/lib/fog/google/requests/storage/delete_bucket.rb
+++ b/lib/fog/google/requests/storage/delete_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Delete an Google Storage bucket
         #
         # ==== Parameters
@@ -19,11 +18,9 @@ module Fog
             :method   => 'DELETE'
           })
         end
-
       end
 
       class Mock
-
         def delete_bucket(bucket_name)
           response = Excon::Response.new
           if self.data[:buckets][bucket_name].nil?
@@ -38,9 +35,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/storage/delete_object.rb b/lib/fog/google/requests/storage/delete_object.rb
index 3343751..85068d2 100644
--- a/lib/fog/google/requests/storage/delete_object.rb
+++ b/lib/fog/google/requests/storage/delete_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Delete an object from Google Storage
         #
         # ==== Parameters
@@ -22,11 +21,9 @@ module Fog
             :path       => CGI.escape(object_name)
           })
         end
-
       end
 
       class Mock
-
         def delete_object(bucket_name, object_name)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -43,7 +40,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_bucket.rb b/lib/fog/google/requests/storage/get_bucket.rb
index 212e735..5bf9427 100644
--- a/lib/fog/google/requests/storage/get_bucket.rb
+++ b/lib/fog/google/requests/storage/get_bucket.rb
@@ -3,7 +3,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         require 'fog/google/parsers/storage/get_bucket'
 
         # List information about objects in an Google Storage bucket
@@ -51,11 +50,9 @@ module Fog
             :query    => options
           })
         end
-
       end
 
       class Mock
-
         def get_bucket(bucket_name, options = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -103,7 +100,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_bucket_acl.rb b/lib/fog/google/requests/storage/get_bucket_acl.rb
index b6930cc..4a2b5c5 100644
--- a/lib/fog/google/requests/storage/get_bucket_acl.rb
+++ b/lib/fog/google/requests/storage/get_bucket_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         require 'fog/google/parsers/storage/access_control_list'
 
         # Get access control list for an Google Storage bucket
@@ -40,11 +39,9 @@ module Fog
             :query      => {'acl' => nil}
           })
         end
-
       end
 
       class Mock
-
         def get_bucket_acl(bucket_name)
           response = Excon::Response.new
           if acl = self.data[:acls][:bucket][bucket_name]
@@ -56,7 +53,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_object.rb b/lib/fog/google/requests/storage/get_object.rb
index a2ac287..fb89ed7 100644
--- a/lib/fog/google/requests/storage/get_object.rb
+++ b/lib/fog/google/requests/storage/get_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Get an object from Google Storage
         #
         # ==== Parameters
@@ -57,11 +56,9 @@ module Fog
             :path           => CGI.escape(object_name),
           }))
         end
-
       end
 
       class Mock
-
         def get_object(bucket_name, object_name, options = {}, &block)
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -105,7 +102,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_object_acl.rb b/lib/fog/google/requests/storage/get_object_acl.rb
index 0023ad8..2f70a7e 100644
--- a/lib/fog/google/requests/storage/get_object_acl.rb
+++ b/lib/fog/google/requests/storage/get_object_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         require 'fog/google/parsers/storage/access_control_list'
 
         # Get access control list for an Google Storage object
@@ -51,11 +50,9 @@ module Fog
             :query      => query
           })
         end
-
       end
 
       class Mock
-
         def get_object_acl(bucket_name, object_name)
           response = Excon::Response.new
           if acl = self.data[:acls][:object][bucket_name] && self.data[:acls][:object][bucket_name][object_name]
@@ -67,7 +64,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_object_http_url.rb b/lib/fog/google/requests/storage/get_object_http_url.rb
index e6b0fbf..b11a331 100644
--- a/lib/fog/google/requests/storage/get_object_http_url.rb
+++ b/lib/fog/google/requests/storage/get_object_http_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Google
-
       module GetObjectHttpUrl
-
         def get_object_http_url(bucket_name, object_name, expires)
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -18,11 +16,9 @@ module Fog
             :path     => "#{bucket_name}/#{object_name}"
           }, expires)
         end
-
       end
 
       class Real
-
         # Get an expiring object http url from S3
         #
         # ==== Parameters
@@ -38,13 +34,10 @@ module Fog
         # http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectHttpUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectHttpUrl
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_object_https_url.rb b/lib/fog/google/requests/storage/get_object_https_url.rb
index 07f7ad2..9bb9226 100644
--- a/lib/fog/google/requests/storage/get_object_https_url.rb
+++ b/lib/fog/google/requests/storage/get_object_https_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Google
-
       module GetObjectHttpsUrl
-
         def get_object_https_url(bucket_name, object_name, expires)
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -18,11 +16,9 @@ module Fog
             :path     => "#{bucket_name}/#{object_name}"
           }, expires)
         end
-
       end
 
       class Real
-
         # Get an expiring object https url from Google Storage
         #
         # ==== Parameters
@@ -38,13 +34,10 @@ module Fog
         # http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectHttpsUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectHttpsUrl
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_object_torrent.rb b/lib/fog/google/requests/storage/get_object_torrent.rb
index 08c51be..98d8e40 100644
--- a/lib/fog/google/requests/storage/get_object_torrent.rb
+++ b/lib/fog/google/requests/storage/get_object_torrent.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Get torrent for an Google Storage object
         #
         # ==== Parameters
@@ -40,7 +39,6 @@ module Fog
             :query      => {'torrent' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_object_url.rb b/lib/fog/google/requests/storage/get_object_url.rb
index 40f085a..ebfb437 100644
--- a/lib/fog/google/requests/storage/get_object_url.rb
+++ b/lib/fog/google/requests/storage/get_object_url.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Get an expiring object url from Google Storage
         #
         # ==== Parameters
@@ -21,16 +20,13 @@ module Fog
           Fog::Logger.deprecation("Fog::Storage::Google => ##{get_object_url} is deprecated, use ##{get_object_https_url} instead[/] [light_black](#{caller.first})")
           get_object_https_url(bucket_name, object_name, expires)
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_object_url(bucket_name, object_name, expires)
           Fog::Logger.deprecation("Fog::Storage::Google => ##{get_object_url} is deprecated, use ##{get_object_https_url} instead[/] [light_black](#{caller.first})")
           get_object_https_url(bucket_name, object_name, expires)
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/get_service.rb b/lib/fog/google/requests/storage/get_service.rb
index bbbb2f9..ea7913f 100644
--- a/lib/fog/google/requests/storage/get_service.rb
+++ b/lib/fog/google/requests/storage/get_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         require 'fog/google/parsers/storage/get_service'
 
         # List information about Google Storage buckets for authorized user
@@ -23,15 +22,12 @@ module Fog
             :host     => @host,
             :idempotent => true,
             :method   => 'GET',
-            :parser   => Fog::Parsers::Storage::Google::GetService.new,
-            :url      => @host
+            :parser   => Fog::Parsers::Storage::Google::GetService.new
           })
         end
-
       end
 
       class Mock
-
         def get_service
           response = Excon::Response.new
           response.headers['Status'] = 200
@@ -46,7 +42,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/head_object.rb b/lib/fog/google/requests/storage/head_object.rb
index 16e0352..8fa7e6d 100644
--- a/lib/fog/google/requests/storage/head_object.rb
+++ b/lib/fog/google/requests/storage/head_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Get headers for an object from Google Storage
         #
         # ==== Parameters
@@ -47,17 +46,14 @@ module Fog
             :query    => query
           })
         end
-
       end
 
       class Mock
-
         def head_object(bucket_name, object_name, options = {})
           response = get_object(bucket_name, object_name, options)
           response.body = nil
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/put_bucket.rb b/lib/fog/google/requests/storage/put_bucket.rb
index 6980aad..29b74ad 100644
--- a/lib/fog/google/requests/storage/put_bucket.rb
+++ b/lib/fog/google/requests/storage/put_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Create an Google Storage bucket
         #
         # ==== Parameters
@@ -34,11 +33,9 @@ DATA
             :method     => 'PUT'
           })
         end
-
       end
 
       class Mock
-
         def put_bucket(bucket_name, options = {})
           acl = options['x-goog-acl'] || 'private'
           if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
@@ -68,7 +65,6 @@ DATA
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/put_bucket_acl.rb b/lib/fog/google/requests/storage/put_bucket_acl.rb
index f168d38..7fb0673 100644
--- a/lib/fog/google/requests/storage/put_bucket_acl.rb
+++ b/lib/fog/google/requests/storage/put_bucket_acl.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class Google
-
       class Mock
         def put_bucket_acl(bucket_name, acl)
           Fog::Mock.not_implemented
@@ -9,10 +8,8 @@ module Fog
       end
 
       class Real
-
         # Change access control list for an Google Storage bucket
         def put_bucket_acl(bucket_name, acl)
-
           data = <<-DATA
 <AccessControlList>
   <Owner>
@@ -34,8 +31,7 @@ DATA
           })
         end
 
-
-      private
+        private
 
         def tag(name, value)
           "<#{name}>#{value}</#{name}>"
@@ -56,9 +52,7 @@ DATA
             tag('Entry', scope_tag(entry['Scope']) + tag('Permission', entry['Permission']))
           end.join("\n")
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/google/requests/storage/put_object.rb b/lib/fog/google/requests/storage/put_object.rb
index ec5ceff..a061c9d 100644
--- a/lib/fog/google/requests/storage/put_object.rb
+++ b/lib/fog/google/requests/storage/put_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Create an object in an Google Storage bucket
         #
         # ==== Parameters
@@ -36,11 +35,9 @@ module Fog
             :path       => CGI.escape(object_name)
           })
         end
-
       end
 
       class Mock
-
         def put_object(bucket_name, object_name, data, options = {})
           acl = options['x-goog-acl'] || 'private'
           if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
@@ -86,7 +83,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/put_object_acl.rb b/lib/fog/google/requests/storage/put_object_acl.rb
index 3dfd479..7b1e3f6 100644
--- a/lib/fog/google/requests/storage/put_object_acl.rb
+++ b/lib/fog/google/requests/storage/put_object_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # TODO: move this methods to helper to use them with put_bucket_acl request
         def tag(name, value)
           "<#{name}>#{value}</#{name}>"
@@ -25,7 +24,6 @@ module Fog
         end
 
         def put_object_acl(bucket_name, object_name, acl)
-
           data = <<-DATA
 <AccessControlList>
   <Owner>
@@ -46,9 +44,7 @@ DATA
             :query    => {'acl' => nil},
             :path     => CGI.escape(object_name)
           })
-
         end
-
       end
     end
   end
diff --git a/lib/fog/google/requests/storage/put_object_url.rb b/lib/fog/google/requests/storage/put_object_url.rb
index 6674a45..796ffe4 100644
--- a/lib/fog/google/requests/storage/put_object_url.rb
+++ b/lib/fog/google/requests/storage/put_object_url.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Google
       class Real
-
         # Get an expiring object url from Google Storage for putting an object
         #
         # ==== Parameters
@@ -28,11 +27,9 @@ module Fog
             :path     => "#{bucket_name}/#{object_name}"
           }, expires)
         end
-
       end
 
       class Mock
-
         def put_object_url(bucket_name, object_name, expires, headers = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -47,7 +44,6 @@ module Fog
             :path     => "#{bucket_name}/#{object_name}"
           }, expires)
         end
-
       end
     end
   end
diff --git a/lib/fog/google/sql.rb b/lib/fog/google/sql.rb
new file mode 100644
index 0000000..9d36d00
--- /dev/null
+++ b/lib/fog/google/sql.rb
@@ -0,0 +1,132 @@
+require 'fog/google/core'
+
+module Fog
+  module Google
+    class SQL < Fog::Service
+      requires :google_project
+      recognizes :google_client_email, :google_key_location, :google_key_string, :google_client,
+                 :app_name, :app_version
+
+      GOOGLE_SQL_API_VERSION    = 'v1beta3'
+      GOOGLE_SQL_BASE_URL       = 'https://www.googleapis.com/sql/'
+      GOOGLE_SQL_API_SCOPE_URLS = %w(https://www.googleapis.com/auth/sqlservice.admin
+                                     https://www.googleapis.com/auth/cloud-platform)
+
+      ##
+      # MODELS
+      model_path 'fog/google/models/sql'
+
+      # Backup Run
+      model :backup_run
+      collection :backup_runs
+
+      # Flag
+      model :flag
+      collection :flags
+
+      # Instance
+      model :instance
+      collection :instances
+
+      # Operation
+      model :operation
+      collection :operations
+
+      # SSL Certificate
+      model :ssl_cert
+      collection :ssl_certs
+
+      # Tier
+      model :tier
+      collection :tiers
+
+      ##
+      # REQUESTS
+      request_path 'fog/google/requests/sql'
+
+      # Backup Run
+      request :get_backup_run
+      request :list_backup_runs
+
+      # Flag
+      request :list_flags
+
+      # Instance
+      request :clone_instance
+      request :delete_instance
+      request :export_instance
+      request :get_instance
+      request :import_instance
+      request :insert_instance
+      request :list_instances
+      request :reset_instance_ssl_config
+      request :restart_instance
+      request :restore_instance_backup
+      request :set_instance_root_password
+      request :update_instance
+
+      # Operation
+      request :get_operation
+      request :list_operations
+
+      # SSL Certificate
+      request :delete_ssl_cert
+      request :get_ssl_cert
+      request :insert_ssl_cert
+      request :list_ssl_certs
+
+      # Tier
+      request :list_tiers
+
+      class Mock
+        include Fog::Google::Shared
+
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_SQL_API_VERSION, GOOGLE_SQL_BASE_URL)
+        end
+
+        def self.data
+          @data ||= Hash.new do |hash, key|
+            hash[key] = {
+              :backup_runs => {},
+              :instances => {},
+              :operations => {},
+              :ssl_certs => {},
+            }
+          end
+        end
+
+        def self.reset
+          @data = nil
+        end
+
+        def data
+          self.class.data[project]
+        end
+
+        def reset_data
+          self.class.data.delete(project)
+        end
+
+        def random_operation
+          "operation-#{Fog::Mock.random_numbers(13)}-#{Fog::Mock.random_hex(13)}-#{Fog::Mock.random_hex(8)}"
+        end
+      end
+
+      class Real
+        include Fog::Google::Shared
+
+        attr_accessor :client
+        attr_reader :sql
+
+        def initialize(options)
+          shared_initialize(options[:google_project], GOOGLE_SQL_API_VERSION, GOOGLE_SQL_BASE_URL)
+          options.merge!(:google_api_scope_url => GOOGLE_SQL_API_SCOPE_URLS.join(' '))
+
+          @client = initialize_google_client(options)
+          @sql = @client.discovered_api('sqladmin', api_version)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/google/storage.rb b/lib/fog/google/storage.rb
index 3b330fd..94cc7f0 100644
--- a/lib/fog/google/storage.rb
+++ b/lib/fog/google/storage.rb
@@ -3,9 +3,8 @@ require 'fog/google/core'
 module Fog
   module Storage
     class Google < Fog::Service
-
       requires :google_storage_access_key_id, :google_storage_secret_access_key
-      recognizes :host, :port, :scheme, :persistent
+      recognizes :host, :port, :scheme, :persistent, :path_style
 
       model_path 'fog/google/models/storage'
       collection  :directories
@@ -34,8 +33,6 @@ module Fog
       request :put_object_url
 
       module Utils
-
-
         def http_url(params, expires)
           "http://" << host_path_query(params, expires)
         end
@@ -63,7 +60,7 @@ module Fog
 
         def request_params(params)
           subdomain = params[:host].split(".#{@host}").first
-          unless subdomain =~ /^(?!goog)(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
+          if @path_style or subdomain !~ /^(?!goog)(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
             if subdomain =~ /_/
               # https://github.com/fog/fog/pull/1258#issuecomment-10248620.
               Fog::Logger.warning("fog: the specified google storage bucket name (#{subdomain}) is not DNS compliant (only characters a through z, digits 0 through 9, and the hyphen).")
@@ -74,8 +71,9 @@ module Fog
               # - Bucket names cannot be represented as an IP address in dotted-decimal notation (for example, 192.168.5.4).
               # - Bucket names cannot begin with the "goog" prefix.
               # - Also, for DNS compliance, you should not have a period adjacent to another period or dash. For example, ".." or "-." or ".-" are not acceptable.
-              Fog::Logger.warning("fog: the specified google storage bucket name (#{subdomain}) is not a valid dns name.  See: https://developers.google.com/storage/docs/bucketnaming")
+              Fog::Logger.warning("fog: the specified google storage bucket name (#{subdomain}) is not a valid dns name.  See: https://developers.google.com/storage/docs/bucketnaming") unless @path_style
             end
+
             params[:host] = params[:host].split("#{subdomain}.")[-1]
             if params[:path]
               params[:path] = "#{subdomain}/#{params[:path]}"
@@ -93,7 +91,6 @@ module Fog
           params[:port]   ||= @port
           params
         end
-
       end
 
       class Mock
@@ -191,10 +188,8 @@ module Fog
         def signature(params)
           "foo"
         end
-
       end
 
-
       class Real
         include Utils
 
@@ -226,6 +221,7 @@ module Fog
           @persistent = options.fetch(:persistent, true)
           @port       = options[:port]        || 443
           @scheme     = options[:scheme]      || 'https'
+          @path_style = options[:path_style]  || false
         end
 
         def reload
diff --git a/lib/fog/hp/block_storage.rb b/lib/fog/hp/block_storage.rb
index 9789066..34723df 100644
--- a/lib/fog/hp/block_storage.rb
+++ b/lib/fog/hp/block_storage.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module HP
     class BlockStorage < Fog::Service
-
       requires    :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :credentials, :hp_service_type
       recognizes  :persistent, :connection_options
@@ -34,7 +33,6 @@ module Fog
       request :list_snapshots
 
       module Utils
-
         def compute
           @compute ||= Fog::Compute.new(
             :provider       => 'HP',
@@ -47,7 +45,6 @@ module Fog
             :connection_options => @connection_options
           )
         end
-
       end
 
       class Mock
@@ -85,7 +82,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -168,7 +164,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/block_storage_v2.rb b/lib/fog/hp/block_storage_v2.rb
index 904be49..95605d2 100644
--- a/lib/fog/hp/block_storage_v2.rb
+++ b/lib/fog/hp/block_storage_v2.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module HP
     class BlockStorageV2 < Fog::Service
-
       requires    :hp_access_key, :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :credentials, :hp_service_type
       recognizes  :persistent, :connection_options
@@ -40,7 +39,6 @@ module Fog
       request :restore_volume_backup
 
       module Utils
-
         def compute
           @compute ||= Fog::Compute.new(
             :provider       => 'HP',
@@ -54,7 +52,6 @@ module Fog
             :connection_options => @connection_options
           )
         end
-
       end
 
       class Mock
@@ -85,7 +82,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -100,7 +96,7 @@ module Fog
           ### Set an option to use the style of authentication desired; :v1 or :v2 (default)
           auth_version = options[:hp_auth_version] || :v2
           ### Pass the service name for block storage to the authentication call
-          options[:hp_service_type] ||= "Block Storage"
+          options[:hp_service_type] ||= "volume"
           @hp_tenant_id = options[:hp_tenant_id]
           @hp_avl_zone  = options[:hp_avl_zone]
 
@@ -157,7 +153,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/cdn.rb b/lib/fog/hp/cdn.rb
index 1f8da9b..464c20a 100644
--- a/lib/fog/hp/cdn.rb
+++ b/lib/fog/hp/cdn.rb
@@ -4,7 +4,6 @@ require 'fog/cdn'
 module Fog
   module CDN
     class HP < Fog::Service
-
       requires    :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :hp_cdn_uri, :credentials, :hp_service_type
       recognizes  :hp_use_upass_auth_style, :hp_auth_version, :user_agent
@@ -23,7 +22,6 @@ module Fog
       request :delete_container
 
       module Utils
-
       end
 
       class Mock
@@ -60,7 +58,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -151,7 +148,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/compute.rb b/lib/fog/hp/compute.rb
index 50286bc..fdd270c 100644
--- a/lib/fog/hp/compute.rb
+++ b/lib/fog/hp/compute.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module Compute
     class HP < Fog::Service
-
       requires    :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :credentials, :hp_service_type
       recognizes  :hp_use_upass_auth_style, :hp_auth_version, :user_agent
@@ -83,7 +82,6 @@ module Fog
       request :update_server
 
       module Utils
-
         # extract windows password from log
         def extract_password_from_log(log_text)
           encrypted_text = ""
@@ -121,7 +119,6 @@ module Fog
           from_base64 = Base64.decode64(encrypted_text)
           private_key.private_decrypt(from_base64).strip
         end
-
       end
 
       class Mock
@@ -169,7 +166,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -250,7 +246,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/compute_v2.rb b/lib/fog/hp/compute_v2.rb
index a7abc7f..7d68889 100644
--- a/lib/fog/hp/compute_v2.rb
+++ b/lib/fog/hp/compute_v2.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module Compute
     class HPV2 < Fog::Service
-
       requires    :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :credentials, :hp_service_type
       recognizes  :hp_use_upass_auth_style, :hp_auth_version, :user_agent
@@ -83,7 +82,6 @@ module Fog
       request :update_server
 
       module Utils
-
         # extract windows password from log
         def extract_password_from_log(log_text)
           encrypted_text = ""
@@ -121,7 +119,6 @@ module Fog
           from_base64 = Base64.decode64(encrypted_text)
           private_key.private_decrypt(from_base64).strip
         end
-
       end
 
       class Mock
@@ -226,7 +223,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -248,7 +244,7 @@ module Fog
           ### Set an option to use the style of authentication desired; :v1 or :v2 (default)
           auth_version = options[:hp_auth_version] || :v2
           ### Pass the service name for compute via the options hash
-          options[:hp_service_type] ||= "Compute"
+          options[:hp_service_type] ||= "compute"
           @hp_tenant_id = options[:hp_tenant_id]
 
           ### Make the authentication call
@@ -304,7 +300,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/core.rb b/lib/fog/hp/core.rb
index 4971656..7c2d303 100644
--- a/lib/fog/hp/core.rb
+++ b/lib/fog/hp/core.rb
@@ -4,7 +4,6 @@ require 'fog/hp/simple_http_instrumentor'
 
 module Fog
   module HP
-
     # define a specific version for the HP Provider
     unless const_defined?(:VERSION)
       VERSION = '0.0.22'
@@ -255,21 +254,22 @@ module Fog
       raise "Unable to parse service catalog." unless body
       service_catalog = {}
       body.each do |s|
-        name = s["name"]
-        next if name.nil?
-        name = name.to_sym
+        type = s["type"]
+        next if type.nil?
+        type = type.to_sym
         next if s['endpoints'].nil?
-        service_catalog[name] = {}
+        service_catalog[type] = {}
+        service_catalog[type]['name'] = s['name']
         s['endpoints'].each do |ep|
           next if ep['region'].nil?
           next if ep['publicURL'].nil?
           next if ep['publicURL'].empty?
-          service_catalog[name][ep['region'].to_sym] = ep['publicURL']
+          service_catalog[type][ep['region'].to_sym] = ep['publicURL']
         end
       end
       return service_catalog
     end
-
+    #//http://10.23.67.66:9696/
     def self.get_endpoint_url(service_catalog, service_type, avl_zone)
       return nil if service_type.nil?
       service_type = service_type.to_sym
@@ -279,6 +279,7 @@ module Fog
           return service_catalog[service_type][avl_zone]
         end
       end
+
       raise "Unable to retrieve endpoint service url for availability zone '#{avl_zone}' from service catalog. "
     end
 
@@ -346,8 +347,6 @@ module Fog
         end
         mac_add.join(':')
       end
-
     end
-
   end
 end
diff --git a/lib/fog/hp/dns.rb b/lib/fog/hp/dns.rb
index 6397711..0d0ee7e 100644
--- a/lib/fog/hp/dns.rb
+++ b/lib/fog/hp/dns.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module HP
     class DNS < Fog::Service
-
       requires   :hp_access_key, :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes :hp_auth_uri, :credentials, :hp_service_type
       recognizes :persistent, :connection_options
@@ -31,7 +30,6 @@ module Fog
       request :update_record
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -56,7 +54,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -70,7 +67,7 @@ module Fog
           ### Set an option to use the style of authentication desired; :v1 or :v2 (default)
           auth_version        = options[:hp_auth_version] || :v2
           ### Pass the service name for object storage to the authentication call
-          options[:hp_service_type] ||= "DNS"
+          options[:hp_service_type] ||= "hpext:dns"
           @hp_tenant_id       = options[:hp_tenant_id]
           @hp_avl_zone        = options[:hp_avl_zone]
 
@@ -127,9 +124,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/docs/connect.md b/lib/fog/hp/docs/connect.md
index 2c83243..ff202f5 100755
--- a/lib/fog/hp/docs/connect.md
+++ b/lib/fog/hp/docs/connect.md
@@ -39,12 +39,12 @@ Where `SERVICE-NAME` can be [Compute](https://github.com/fog/fog/blob/master/lib
 
 **Note**: You must use the `:hp_access_key` parameter rather than the now-deprecated `:hp_account_id` parameter you might have used in previous versions of the HP Cloud Services Extensions to Ruby Fog.
 
-You can find the values the access key, secret key, and other values by clicking the [`API Keys`](https://console.hpcloud.com/account/api_keys) button in the [Console Dashboard](https://console.hpcloud.com/dashboard).
+You can find the values the access key, secret key, and other values by clicking the Manage Access Keys drop down in the [Console Dashboard](https://horizon.hpcloud.com/landing).
 
 
 ## Availability Zones
 
-You cannot specify an availability zone if you have not activated it.  To activate an availability zone, go to the [Management Console dashboard](https://console.hpcloud.com/) and click the `**Activate`** button.  You are required to set an availability zone to establish a connection; there is no default availability zone value.
+You cannot specify an availability zone if you have not activated it.  To activate an availability zone, go to the [Management Console dashboard](https://horizon.hpcloud.com/) and click the `**Activate**` button.  You are required to set an availability zone to establish a connection; there is no default availability zone value.
 
 The current usable availability zones for the compute service:
 
diff --git a/lib/fog/hp/lb.rb b/lib/fog/hp/lb.rb
index e066d20..9be34ce 100644
--- a/lib/fog/hp/lb.rb
+++ b/lib/fog/hp/lb.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module HP
     class LB < Fog::Service
-
       requires    :hp_access_key, :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :credentials, :hp_service_type
       recognizes  :persistent, :connection_options
@@ -41,8 +40,6 @@ module Fog
       request       :update_load_balancer_node
 
       class Mock
-
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -91,13 +88,11 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
         attr_reader :credentials
 
-
         def initialize(options={})
           @hp_access_key = options[:hp_access_key]
           @hp_secret_key      = options[:hp_secret_key]
@@ -106,7 +101,7 @@ module Fog
           ### Set an option to use the style of authentication desired; :v1 or :v2 (default)
           auth_version        = options[:hp_auth_version] || :v2
           ### Pass the service name for object storage to the authentication call
-          options[:hp_service_type] ||= "Load Balancer"
+          options[:hp_service_type] ||= "hpext:lbaas"
           @hp_tenant_id       = options[:hp_tenant_id]
           @hp_avl_zone        = options[:hp_avl_zone]
 
@@ -162,9 +157,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage/bootable_volumes.rb b/lib/fog/hp/models/block_storage/bootable_volumes.rb
index f40eb17..e6bb9a1 100644
--- a/lib/fog/hp/models/block_storage/bootable_volumes.rb
+++ b/lib/fog/hp/models/block_storage/bootable_volumes.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/block_storage/volume'
 module Fog
   module HP
     class BlockStorage
-
       class BootableVolumes < Fog::Collection
-
         model Fog::HP::BlockStorage::Volume
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::HP::BlockStorage::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage/snapshot.rb b/lib/fog/hp/models/block_storage/snapshot.rb
index 39c4dcf..773ae97 100644
--- a/lib/fog/hp/models/block_storage/snapshot.rb
+++ b/lib/fog/hp/models/block_storage/snapshot.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module HP
     class BlockStorage
-
       class Snapshot < Fog::Model
-
         identity  :id
 
         attribute :name,                 :aliases => 'displayName'
@@ -48,9 +46,7 @@ module Fog
           merge_attributes(data.body['snapshot'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage/snapshots.rb b/lib/fog/hp/models/block_storage/snapshots.rb
index c0a7135..c2ab459 100644
--- a/lib/fog/hp/models/block_storage/snapshots.rb
+++ b/lib/fog/hp/models/block_storage/snapshots.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/block_storage/snapshot'
 module Fog
   module HP
     class BlockStorage
-
       class Snapshots < Fog::Collection
-
         model Fog::HP::BlockStorage::Snapshot
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::HP::BlockStorage::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage/volume.rb b/lib/fog/hp/models/block_storage/volume.rb
index 88a3427..177df84 100644
--- a/lib/fog/hp/models/block_storage/volume.rb
+++ b/lib/fog/hp/models/block_storage/volume.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module HP
     class BlockStorage
-
       class Volume < Fog::Model
-
         identity  :id
 
         attribute :name,                 :aliases => 'displayName'
@@ -94,9 +92,7 @@ module Fog
           merge_attributes(data.body['volume'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage/volumes.rb b/lib/fog/hp/models/block_storage/volumes.rb
index a9db397..3160c6d 100644
--- a/lib/fog/hp/models/block_storage/volumes.rb
+++ b/lib/fog/hp/models/block_storage/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/block_storage/volume'
 module Fog
   module HP
     class BlockStorage
-
       class Volumes < Fog::Collection
-
         model Fog::HP::BlockStorage::Volume
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::HP::BlockStorage::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage_v2/snapshot.rb b/lib/fog/hp/models/block_storage_v2/snapshot.rb
index 07baaca..38b49c4 100644
--- a/lib/fog/hp/models/block_storage_v2/snapshot.rb
+++ b/lib/fog/hp/models/block_storage_v2/snapshot.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module HP
     class BlockStorageV2
-
       class Snapshot < Fog::Model
-
         identity  :id
 
         attribute :name,                 :aliases => 'display_name'
@@ -68,9 +66,7 @@ module Fog
           merge_attributes(data.body['snapshot'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage_v2/snapshots.rb b/lib/fog/hp/models/block_storage_v2/snapshots.rb
index ad02174..423d17d 100644
--- a/lib/fog/hp/models/block_storage_v2/snapshots.rb
+++ b/lib/fog/hp/models/block_storage_v2/snapshots.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/block_storage_v2/snapshot'
 module Fog
   module HP
     class BlockStorageV2
-
       class Snapshots < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::BlockStorageV2::Snapshot
@@ -35,9 +33,7 @@ module Fog
         rescue Fog::HP::BlockStorageV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage_v2/volume.rb b/lib/fog/hp/models/block_storage_v2/volume.rb
index 528d167..e56d823 100644
--- a/lib/fog/hp/models/block_storage_v2/volume.rb
+++ b/lib/fog/hp/models/block_storage_v2/volume.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module HP
     class BlockStorageV2
-
       class Volume < Fog::Model
-
         identity  :id
 
         attribute :name,                 :aliases => 'display_name'
@@ -55,7 +53,7 @@ module Fog
         def in_use?
           self.status == 'in-use'
         end
-        alias :attached? :in_use?
+        alias_method :attached?, :in_use?
 
         def backing_up?
           self.status == 'backing-up'
@@ -131,9 +129,7 @@ module Fog
           merge_attributes(data.body['volume'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage_v2/volume_backup.rb b/lib/fog/hp/models/block_storage_v2/volume_backup.rb
index 65a1b91..499b302 100644
--- a/lib/fog/hp/models/block_storage_v2/volume_backup.rb
+++ b/lib/fog/hp/models/block_storage_v2/volume_backup.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module HP
     class BlockStorageV2
-
       class VolumeBackup < Fog::Model
-
         identity  :id
 
         attribute :name
@@ -50,9 +48,7 @@ module Fog
           merge_attributes(service.create_volume_backup(volume_id, attributes).body['backup'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage_v2/volume_backups.rb b/lib/fog/hp/models/block_storage_v2/volume_backups.rb
index c0c527f..22949ad 100644
--- a/lib/fog/hp/models/block_storage_v2/volume_backups.rb
+++ b/lib/fog/hp/models/block_storage_v2/volume_backups.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/block_storage_v2/volume_backup'
 module Fog
   module HP
     class BlockStorageV2
-
       class VolumeBackups < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::BlockStorageV2::VolumeBackup
@@ -34,9 +32,7 @@ module Fog
         rescue Fog::HP::BlockStorageV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/block_storage_v2/volumes.rb b/lib/fog/hp/models/block_storage_v2/volumes.rb
index 7e38731..6ec4729 100644
--- a/lib/fog/hp/models/block_storage_v2/volumes.rb
+++ b/lib/fog/hp/models/block_storage_v2/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/block_storage_v2/volume'
 module Fog
   module HP
     class BlockStorageV2
-
       class Volumes < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::BlockStorageV2::Volume
@@ -34,9 +32,7 @@ module Fog
         rescue Fog::HP::BlockStorageV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/address.rb b/lib/fog/hp/models/compute/address.rb
index d8d9156..a6b44d2 100644
--- a/lib/fog/hp/models/compute/address.rb
+++ b/lib/fog/hp/models/compute/address.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HP
-
       class Address < Fog::Model
-
         identity  :id
 
         attribute :ip
@@ -62,9 +60,7 @@ module Fog
           end
           self.instance_id = nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/addresses.rb b/lib/fog/hp/models/compute/addresses.rb
index 1d75e62..d156300 100644
--- a/lib/fog/hp/models/compute/addresses.rb
+++ b/lib/fog/hp/models/compute/addresses.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/address'
 module Fog
   module Compute
     class HP
-
       class Addresses < Fog::Collection
-
         model Fog::Compute::HP::Address
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::Compute::HP::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/flavor.rb b/lib/fog/hp/models/compute/flavor.rb
index ebf47f7..731af3d 100644
--- a/lib/fog/hp/models/compute/flavor.rb
+++ b/lib/fog/hp/models/compute/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HP
-
       class Flavor < Fog::Model
-
         identity :id
 
         attribute :disk
@@ -16,9 +14,7 @@ module Fog
         #def bits
         #  64
         #end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/flavors.rb b/lib/fog/hp/models/compute/flavors.rb
index e20b152..4ddfe53 100644
--- a/lib/fog/hp/models/compute/flavors.rb
+++ b/lib/fog/hp/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/flavor'
 module Fog
   module Compute
     class HP
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::HP::Flavor
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::HP::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/image.rb b/lib/fog/hp/models/compute/image.rb
index cd78d5b..efafbc1 100644
--- a/lib/fog/hp/models/compute/image.rb
+++ b/lib/fog/hp/models/compute/image.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/metadata'
 module Fog
   module Compute
     class HP
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -68,9 +66,7 @@ module Fog
         def ready?
           status == 'ACTIVE'
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/images.rb b/lib/fog/hp/models/compute/images.rb
index 9ce22f1..7bf4a4b 100644
--- a/lib/fog/hp/models/compute/images.rb
+++ b/lib/fog/hp/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/image'
 module Fog
   module Compute
     class HP
-
       class Images < Fog::Collection
-
         model Fog::Compute::HP::Image
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::Compute::HP::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/key_pair.rb b/lib/fog/hp/models/compute/key_pair.rb
index 95204cf..8722545 100644
--- a/lib/fog/hp/models/compute/key_pair.rb
+++ b/lib/fog/hp/models/compute/key_pair.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HP
-
       class KeyPair < Fog::Model
-
         identity  :name
 
         attribute :fingerprint
@@ -45,9 +43,8 @@ module Fog
         end
 
         def writable?
-          !!(private_key && ENV.has_key?('HOME'))
+          !!(private_key && ENV.key?('HOME'))
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute/key_pairs.rb b/lib/fog/hp/models/compute/key_pairs.rb
index ba4c2af..ae6413c 100644
--- a/lib/fog/hp/models/compute/key_pairs.rb
+++ b/lib/fog/hp/models/compute/key_pairs.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/key_pair'
 module Fog
   module Compute
     class HP
-
       class KeyPairs < Fog::Collection
-
         model Fog::Compute::HP::KeyPair
 
         def all
@@ -24,7 +22,6 @@ module Fog
         rescue Fog::Compute::HP::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute/meta.rb b/lib/fog/hp/models/compute/meta.rb
index df8f7f4..265ecbb 100644
--- a/lib/fog/hp/models/compute/meta.rb
+++ b/lib/fog/hp/models/compute/meta.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class HP
       class Meta < Fog::Model
-
         include Fog::Compute::HP::MetaParent
 
         identity :key
@@ -22,7 +21,6 @@ module Fog
           service.update_meta(collection_name, @parent.id, key, value)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute/metadata.rb b/lib/fog/hp/models/compute/metadata.rb
index f7c911b..454f0d5 100644
--- a/lib/fog/hp/models/compute/metadata.rb
+++ b/lib/fog/hp/models/compute/metadata.rb
@@ -7,9 +7,7 @@ require 'fog/hp/models/compute/server'
 module Fog
   module Compute
     class HP
-
       class Metadata < Fog::Collection
-
         model Fog::Compute::HP::Meta
 
         include Fog::Compute::HP::MetaParent
@@ -56,7 +54,6 @@ module Fog
           service.update_metadata(collection_name, @parent.id, meta_hash(data))
         end
 
-
         private
         def meta_hash(data=nil)
           if data.nil?
@@ -71,9 +68,7 @@ module Fog
           end
           data
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute/security_group.rb b/lib/fog/hp/models/compute/security_group.rb
index d6e6d9a..d6d025a 100644
--- a/lib/fog/hp/models/compute/security_group.rb
+++ b/lib/fog/hp/models/compute/security_group.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HP
-
       class SecurityGroup < Fog::Model
-
         identity  :id
 
         attribute :name
diff --git a/lib/fog/hp/models/compute/security_groups.rb b/lib/fog/hp/models/compute/security_groups.rb
index f8f40a0..3cabbf4 100644
--- a/lib/fog/hp/models/compute/security_groups.rb
+++ b/lib/fog/hp/models/compute/security_groups.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/security_group'
 module Fog
   module Compute
     class HP
-
       class SecurityGroups < Fog::Collection
-
         model Fog::Compute::HP::SecurityGroup
 
         def all
@@ -22,7 +20,6 @@ module Fog
         rescue Fog::Compute::HP::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute/server.rb b/lib/fog/hp/models/compute/server.rb
index 5821211..853f1cf 100644
--- a/lib/fog/hp/models/compute/server.rb
+++ b/lib/fog/hp/models/compute/server.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/metadata'
 module Fog
   module Compute
     class HP
-
       class Server < Fog::Compute::Server
-
         identity :id
 
         attribute :addresses
@@ -289,10 +287,7 @@ module Fog
         def adminPass=(new_admin_pass)
           @password = new_admin_pass
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/hp/models/compute/servers.rb b/lib/fog/hp/models/compute/servers.rb
index a0de0f1..b115a8f 100644
--- a/lib/fog/hp/models/compute/servers.rb
+++ b/lib/fog/hp/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute/server'
 module Fog
   module Compute
     class HP
-
       class Servers < Fog::Collection
-
         model Fog::Compute::HP::Server
 
         def all
@@ -28,9 +26,7 @@ module Fog
         rescue Fog::Compute::HP::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/address.rb b/lib/fog/hp/models/compute_v2/address.rb
index 711b541..d55a00f 100644
--- a/lib/fog/hp/models/compute_v2/address.rb
+++ b/lib/fog/hp/models/compute_v2/address.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HPV2
-
       class Address < Fog::Model
-
         identity  :id
 
         attribute :ip
@@ -62,9 +60,7 @@ module Fog
           end
           self.instance_id = nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/addresses.rb b/lib/fog/hp/models/compute_v2/addresses.rb
index 139c44b..f88e3d3 100644
--- a/lib/fog/hp/models/compute_v2/addresses.rb
+++ b/lib/fog/hp/models/compute_v2/addresses.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/address'
 module Fog
   module Compute
     class HPV2
-
       class Addresses < Fog::Collection
-
         model Fog::Compute::HPV2::Address
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::Compute::HPV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/availability_zone.rb b/lib/fog/hp/models/compute_v2/availability_zone.rb
index 48893f8..f3d1548 100644
--- a/lib/fog/hp/models/compute_v2/availability_zone.rb
+++ b/lib/fog/hp/models/compute_v2/availability_zone.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HPV2
-
       class AvailabilityZone < Fog::Model
-
         identity :name, :aliases => 'zoneName'
 
         attribute   :zoneState
@@ -14,9 +12,7 @@ module Fog
         def available?
           zoneState['available']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/availability_zones.rb b/lib/fog/hp/models/compute_v2/availability_zones.rb
index caf9608..9ae0507 100644
--- a/lib/fog/hp/models/compute_v2/availability_zones.rb
+++ b/lib/fog/hp/models/compute_v2/availability_zones.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/availability_zone'
 module Fog
   module Compute
     class HPV2
-
       class AvailabilityZones < Fog::Collection
-
         model Fog::Compute::HPV2::AvailabilityZone
 
         def all
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::Compute::HPV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/flavor.rb b/lib/fog/hp/models/compute_v2/flavor.rb
index e0f0055..1f394c3 100644
--- a/lib/fog/hp/models/compute_v2/flavor.rb
+++ b/lib/fog/hp/models/compute_v2/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HPV2
-
       class Flavor < Fog::Model
-
         identity :id
 
         attribute   :name
@@ -14,9 +12,7 @@ module Fog
         attribute   :cores, :aliases => 'vcpus'
         attribute   :ephemeral_disk, :aliases => 'OS-FLV-EXT-DATA:ephemeral'
         attribute   :links
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/flavors.rb b/lib/fog/hp/models/compute_v2/flavors.rb
index 014b82e..1e87a51 100644
--- a/lib/fog/hp/models/compute_v2/flavors.rb
+++ b/lib/fog/hp/models/compute_v2/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/flavor'
 module Fog
   module Compute
     class HPV2
-
       class Flavors < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::HPV2::Flavor
@@ -34,9 +32,7 @@ module Fog
         rescue Fog::Compute::HPV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/image.rb b/lib/fog/hp/models/compute_v2/image.rb
index 31e316a..734e55b 100644
--- a/lib/fog/hp/models/compute_v2/image.rb
+++ b/lib/fog/hp/models/compute_v2/image.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/metadata'
 module Fog
   module Compute
     class HPV2
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -45,43 +43,40 @@ module Fog
 
         # The following are built-in metadata for each image, exposed as helpers
         def bootable_volume?
-          m = @metadata.detect {|md| md.key == 'com.hp__1__bootable_volume'}
+          m = @metadata.find {|md| md.key == 'com.hp__1__bootable_volume'}
           m.value unless m.nil?
         end
 
         def provider
-          m = @metadata.detect {|md| md.key == 'com.hp__1__provider'}
+          m = @metadata.find {|md| md.key == 'com.hp__1__provider'}
           m.value unless m.nil?
         end
 
         def os_distro
-          m = @metadata.detect {|md| md.key == 'com.hp__1__os_distro'}
+          m = @metadata.find {|md| md.key == 'com.hp__1__os_distro'}
           m.value unless m.nil?
         end
 
         def os_version
-          m = @metadata.detect {|md| md.key == 'com.hp__1__os_version'}
+          m = @metadata.find {|md| md.key == 'com.hp__1__os_version'}
           m.value unless m.nil?
         end
 
         def license
-          m = @metadata.detect {|md| md.key == 'hp_image_license'}
+          m = @metadata.find {|md| md.key == 'hp_image_license'}
           m.value unless m.nil?
         end
 
         def type
-          m = @metadata.detect {|md| md.key == 'com.hp__1__image_type'}
+          m = @metadata.find {|md| md.key == 'com.hp__1__image_type'}
           m.value unless m.nil?
         end
 
         def architecture
-          m = @metadata.detect {|md| md.key == 'architecture'}
+          m = @metadata.find {|md| md.key == 'architecture'}
           m.value unless m.nil?
         end
-
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/images.rb b/lib/fog/hp/models/compute_v2/images.rb
index 1c0c081..6423883 100644
--- a/lib/fog/hp/models/compute_v2/images.rb
+++ b/lib/fog/hp/models/compute_v2/images.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/image'
 module Fog
   module Compute
     class HPV2
-
       class Images < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::HPV2::Image
@@ -35,9 +33,7 @@ module Fog
         rescue Fog::Compute::HPV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/key_pair.rb b/lib/fog/hp/models/compute_v2/key_pair.rb
index 4936ed2..7b80a14 100644
--- a/lib/fog/hp/models/compute_v2/key_pair.rb
+++ b/lib/fog/hp/models/compute_v2/key_pair.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class HPV2
-
       class KeyPair < Fog::Model
-
         identity  :name
 
         attribute :fingerprint
@@ -45,9 +43,8 @@ module Fog
         end
 
         def writable?
-          !!(private_key && ENV.has_key?('HOME'))
+          !!(private_key && ENV.key?('HOME'))
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute_v2/key_pairs.rb b/lib/fog/hp/models/compute_v2/key_pairs.rb
index ce80c61..e8bb4cd 100644
--- a/lib/fog/hp/models/compute_v2/key_pairs.rb
+++ b/lib/fog/hp/models/compute_v2/key_pairs.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/key_pair'
 module Fog
   module Compute
     class HPV2
-
       class KeyPairs < Fog::Collection
-
         model Fog::Compute::HPV2::KeyPair
 
         def all
@@ -24,7 +22,6 @@ module Fog
         rescue Fog::Compute::HPV2::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute_v2/meta.rb b/lib/fog/hp/models/compute_v2/meta.rb
index ea276b2..16044f6 100644
--- a/lib/fog/hp/models/compute_v2/meta.rb
+++ b/lib/fog/hp/models/compute_v2/meta.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class HPV2
       class Meta < Fog::Model
-
         include Fog::Compute::HPV2::MetaParent
 
         identity :key
@@ -22,7 +21,6 @@ module Fog
           service.update_meta(collection_name, @parent.id, key, value)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute_v2/meta_parent.rb b/lib/fog/hp/models/compute_v2/meta_parent.rb
index 1020bfb..4931806 100644
--- a/lib/fog/hp/models/compute_v2/meta_parent.rb
+++ b/lib/fog/hp/models/compute_v2/meta_parent.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       module MetaParent
-
         def parent
           @parent
         end
@@ -26,7 +25,6 @@ module Fog
           metas.each { |meta| hash.store(meta.key, meta.value) }
           hash
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/compute_v2/metadata.rb b/lib/fog/hp/models/compute_v2/metadata.rb
index 88fc265..9b5640c 100644
--- a/lib/fog/hp/models/compute_v2/metadata.rb
+++ b/lib/fog/hp/models/compute_v2/metadata.rb
@@ -7,9 +7,7 @@ require 'fog/hp/models/compute_v2/server'
 module Fog
   module Compute
     class HPV2
-
       class Metadata < Fog::Collection
-
         model Fog::Compute::HPV2::Meta
 
         include Fog::Compute::HPV2::MetaParent
@@ -56,7 +54,6 @@ module Fog
           service.update_metadata(collection_name, @parent.id, meta_hash(data))
         end
 
-
         private
         def meta_hash(data=nil)
           if data.nil?
@@ -71,9 +68,7 @@ module Fog
           end
           data
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/server.rb b/lib/fog/hp/models/compute_v2/server.rb
index 1ab4b02..9b709eb 100644
--- a/lib/fog/hp/models/compute_v2/server.rb
+++ b/lib/fog/hp/models/compute_v2/server.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/metadata'
 module Fog
   module Compute
     class HPV2
-
       class Server < Fog::Compute::Server
-
         identity  :id
 
         attribute :addresses
@@ -330,10 +328,7 @@ module Fog
           return '' if net.first.nil?
           net.first[0]
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/hp/models/compute_v2/servers.rb b/lib/fog/hp/models/compute_v2/servers.rb
index e00b509..7150df2 100644
--- a/lib/fog/hp/models/compute_v2/servers.rb
+++ b/lib/fog/hp/models/compute_v2/servers.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/compute_v2/server'
 module Fog
   module Compute
     class HPV2
-
       class Servers < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::HPV2::Server
@@ -48,9 +46,7 @@ module Fog
         rescue Fog::Compute::HPV2::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/compute_v2/volume_attachment.rb b/lib/fog/hp/models/compute_v2/volume_attachment.rb
index 45cda0d..34fbaf4 100644
--- a/lib/fog/hp/models/compute_v2/volume_attachment.rb
+++ b/lib/fog/hp/models/compute_v2/volume_attachment.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class HPV2
       class VolumeAttachment < Fog::Model
-
         identity  :id
 
         attribute :server_id, :aliases => 'serverId'
@@ -30,9 +29,9 @@ module Fog
           service.detach_volume(server_id, volume_id)
           true
         end
-        alias :detach :destroy
+        alias_method :detach, :destroy
 
-      private
+        private
         def server
           collection.server
         end
diff --git a/lib/fog/hp/models/compute_v2/volume_attachments.rb b/lib/fog/hp/models/compute_v2/volume_attachments.rb
index a2e33ab..3152611 100644
--- a/lib/fog/hp/models/compute_v2/volume_attachments.rb
+++ b/lib/fog/hp/models/compute_v2/volume_attachments.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class HPV2
       class VolumeAttachments < Fog::Collection
-
         model Fog::Compute::HPV2::VolumeAttachment
 
         attr_accessor :server
diff --git a/lib/fog/hp/models/dns/domain.rb b/lib/fog/hp/models/dns/domain.rb
index ff5d04d..04af968 100644
--- a/lib/fog/hp/models/dns/domain.rb
+++ b/lib/fog/hp/models/dns/domain.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class DNS
-
       class Domain < Fog::Model
         identity :id
 
@@ -48,7 +47,6 @@ module Fog
           merge_attributes(service.update_domain(id, attributes).body)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/dns/domains.rb b/lib/fog/hp/models/dns/domains.rb
index 4f1aa98..ddc5af3 100644
--- a/lib/fog/hp/models/dns/domains.rb
+++ b/lib/fog/hp/models/dns/domains.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/dns/domain'
 module Fog
   module HP
     class DNS
-
       class Domains < Fog::Collection
-
         model Fog::HP::DNS::Domain
 
         def all
@@ -21,7 +19,6 @@ module Fog
         rescue Fog::HP::DNS::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/dns/record.rb b/lib/fog/hp/models/dns/record.rb
index cce958a..f4f6200 100644
--- a/lib/fog/hp/models/dns/record.rb
+++ b/lib/fog/hp/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class DNS
-
       class Record < Fog::Model
         identity :id
 
@@ -52,7 +51,6 @@ module Fog
           merge_attributes(service.update_record(self.domain_id, id, attributes).body)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/dns/records.rb b/lib/fog/hp/models/dns/records.rb
index 7752e4d..377948d 100644
--- a/lib/fog/hp/models/dns/records.rb
+++ b/lib/fog/hp/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/dns/record'
 module Fog
   module HP
     class DNS
-
       class Records < Fog::Collection
-
         model Fog::HP::DNS::Record
 
         attr_accessor :domain
@@ -25,7 +23,6 @@ module Fog
         rescue Fog::HP::DNS::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/algorithm.rb b/lib/fog/hp/models/lb/algorithm.rb
index c7ba60f..751d86a 100644
--- a/lib/fog/hp/models/lb/algorithm.rb
+++ b/lib/fog/hp/models/lb/algorithm.rb
@@ -17,7 +17,6 @@ module Fog
         def save
           raise Fog::HP::LB::NotFound.new('Operation not allowed.')
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/algorithms.rb b/lib/fog/hp/models/lb/algorithms.rb
index 6a97a2c..e9726ce 100644
--- a/lib/fog/hp/models/lb/algorithms.rb
+++ b/lib/fog/hp/models/lb/algorithms.rb
@@ -14,12 +14,11 @@ module Fog
 
         def get(name)
           data = service.list_algorithms.body['algorithms']
-          algorithm = data.detect {|algo| algo['name'] == name}
+          algorithm = data.find {|algo| algo['name'] == name}
           new(algorithm)
         rescue Fog::HP::LB::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/load_balancer.rb b/lib/fog/hp/models/lb/load_balancer.rb
index cc64141..6ed91b1 100644
--- a/lib/fog/hp/models/lb/load_balancer.rb
+++ b/lib/fog/hp/models/lb/load_balancer.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class LB
-
       class LoadBalancer < Fog::Model
         identity  :id
 
@@ -72,7 +71,7 @@ module Fog
 
         def nodes_to_hash
           if nodes
-            nodes.collect do |node|
+            nodes.map do |node|
               { 'address' => node.address, 'port' => node.port, 'condition' => node.condition }
             end
           end
diff --git a/lib/fog/hp/models/lb/load_balancers.rb b/lib/fog/hp/models/lb/load_balancers.rb
index 490e1e8..5e9a409 100644
--- a/lib/fog/hp/models/lb/load_balancers.rb
+++ b/lib/fog/hp/models/lb/load_balancers.rb
@@ -19,7 +19,6 @@ module Fog
         rescue Fog::HP::LB::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/node.rb b/lib/fog/hp/models/lb/node.rb
index a6d4800..df91aad 100644
--- a/lib/fog/hp/models/lb/node.rb
+++ b/lib/fog/hp/models/lb/node.rb
@@ -4,7 +4,6 @@ module Fog
   module HP
     class LB
       class Node < Fog::Model
-
         identity  :id
 
         attribute :address
@@ -46,7 +45,6 @@ module Fog
           service.update_load_balancer_node(load_balancer.id, id, condition)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/nodes.rb b/lib/fog/hp/models/lb/nodes.rb
index 443e83a..4358016 100644
--- a/lib/fog/hp/models/lb/nodes.rb
+++ b/lib/fog/hp/models/lb/nodes.rb
@@ -5,7 +5,6 @@ module Fog
   module HP
     class LB
       class Nodes < Fog::Collection
-
         model Fog::HP::LB::Node
 
         attr_accessor :load_balancer
@@ -23,7 +22,6 @@ module Fog
         rescue Fog::HP::LB::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/protocol.rb b/lib/fog/hp/models/lb/protocol.rb
index 2ff0bdb..dc44c89 100644
--- a/lib/fog/hp/models/lb/protocol.rb
+++ b/lib/fog/hp/models/lb/protocol.rb
@@ -18,7 +18,6 @@ module Fog
         def save
           raise Fog::HP::LB::NotFound.new('Operation not allowed.')
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/protocols.rb b/lib/fog/hp/models/lb/protocols.rb
index dbb94a3..465ce66 100644
--- a/lib/fog/hp/models/lb/protocols.rb
+++ b/lib/fog/hp/models/lb/protocols.rb
@@ -14,12 +14,11 @@ module Fog
 
         def get(name)
           data = service.list_protocols.body['protocols']
-          protocol = data.detect {|p| p['name'] == name}
+          protocol = data.find {|p| p['name'] == name}
           new(protocol)
         rescue Fog::HP::LB::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/virtual_ip.rb b/lib/fog/hp/models/lb/virtual_ip.rb
index f52b1a9..177c2f8 100644
--- a/lib/fog/hp/models/lb/virtual_ip.rb
+++ b/lib/fog/hp/models/lb/virtual_ip.rb
@@ -27,7 +27,6 @@ module Fog
         def load_balancer
           collection.load_balancer
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/lb/virtual_ips.rb b/lib/fog/hp/models/lb/virtual_ips.rb
index 95d84e3..fda504b 100644
--- a/lib/fog/hp/models/lb/virtual_ips.rb
+++ b/lib/fog/hp/models/lb/virtual_ips.rb
@@ -5,7 +5,6 @@ module Fog
   module HP
     class LB
       class VirtualIps < Fog::Collection
-
         model Fog::HP::LB::VirtualIp
 
         attr_accessor :load_balancer
@@ -21,12 +20,11 @@ module Fog
           requires :load_balancer
 
           data = service.list_load_balancer_virtual_ips(load_balancer.id).body['virtualIps']
-          vip = data.detect {|vip| vip['id'].to_s == vip_id}
+          vip = data.find {|vip| vip['id'].to_s == vip_id}
           new(vip)
         rescue Fog::HP::LB::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/meta_parent.rb b/lib/fog/hp/models/meta_parent.rb
index 108e595..02ef7cb 100644
--- a/lib/fog/hp/models/meta_parent.rb
+++ b/lib/fog/hp/models/meta_parent.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       module MetaParent
-
         def parent
           @parent
         end
@@ -26,7 +25,6 @@ module Fog
           metas.each { |meta| hash.store(meta.key, meta.value) }
           hash
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/floating_ip.rb b/lib/fog/hp/models/network/floating_ip.rb
index d59405b..fc705c2 100644
--- a/lib/fog/hp/models/network/floating_ip.rb
+++ b/lib/fog/hp/models/network/floating_ip.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class FloatingIp < Fog::Model
         identity :id
 
@@ -38,7 +37,6 @@ module Fog
           merge_attributes(service.create_floating_ip(floating_network_id, attributes).body['floatingip'])
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/floating_ips.rb b/lib/fog/hp/models/network/floating_ips.rb
index 5a75d4a..872096e 100644
--- a/lib/fog/hp/models/network/floating_ips.rb
+++ b/lib/fog/hp/models/network/floating_ips.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/floating_ip'
 module Fog
   module HP
     class Network
-
       class FloatingIps < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::FloatingIp
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/network.rb b/lib/fog/hp/models/network/network.rb
index 63b4cfc..cfeaeb4 100644
--- a/lib/fog/hp/models/network/network.rb
+++ b/lib/fog/hp/models/network/network.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class Network < Fog::Model
         identity :id
 
@@ -49,7 +48,6 @@ module Fog
           merge_attributes(service.update_network(id, attributes).body['network'])
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/networks.rb b/lib/fog/hp/models/network/networks.rb
index fc574ce..976da9f 100644
--- a/lib/fog/hp/models/network/networks.rb
+++ b/lib/fog/hp/models/network/networks.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/network'
 module Fog
   module HP
     class Network
-
       class Networks < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::Network
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/port.rb b/lib/fog/hp/models/network/port.rb
index 7c33566..3124860 100644
--- a/lib/fog/hp/models/network/port.rb
+++ b/lib/fog/hp/models/network/port.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class Port < Fog::Model
         identity :id
 
@@ -46,8 +45,6 @@ module Fog
           merge_attributes(service.update_port(id, attributes).body['port'])
           true
         end
-
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/ports.rb b/lib/fog/hp/models/network/ports.rb
index 4fc32ba..d2399a4 100644
--- a/lib/fog/hp/models/network/ports.rb
+++ b/lib/fog/hp/models/network/ports.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/port'
 module Fog
   module HP
     class Network
-
       class Ports < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::Port
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/router.rb b/lib/fog/hp/models/network/router.rb
index 131e8a8..5f612bc 100644
--- a/lib/fog/hp/models/network/router.rb
+++ b/lib/fog/hp/models/network/router.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class Router < Fog::Model
         identity :id
 
@@ -59,7 +58,6 @@ module Fog
           merge_attributes(service.update_router(id, attributes).body['router'])
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/routers.rb b/lib/fog/hp/models/network/routers.rb
index 236e45e..89b8192 100644
--- a/lib/fog/hp/models/network/routers.rb
+++ b/lib/fog/hp/models/network/routers.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/router'
 module Fog
   module HP
     class Network
-
       class Routers < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::Router
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/security_group.rb b/lib/fog/hp/models/network/security_group.rb
index 6e20ecc..7bfd348 100644
--- a/lib/fog/hp/models/network/security_group.rb
+++ b/lib/fog/hp/models/network/security_group.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class SecurityGroup < Fog::Model
         identity :id
 
@@ -23,7 +22,6 @@ module Fog
           merge_attributes(service.create_security_group(attributes).body['security_group'])
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/security_group_rule.rb b/lib/fog/hp/models/network/security_group_rule.rb
index b8f192d..60b4a6e 100644
--- a/lib/fog/hp/models/network/security_group_rule.rb
+++ b/lib/fog/hp/models/network/security_group_rule.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class SecurityGroupRule < Fog::Model
         identity :id
 
@@ -28,7 +27,6 @@ module Fog
           merge_attributes(service.create_security_group_rule(security_group_id, direction, attributes).body['security_group_rule'])
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/security_group_rules.rb b/lib/fog/hp/models/network/security_group_rules.rb
index f960779..ecdebf6 100644
--- a/lib/fog/hp/models/network/security_group_rules.rb
+++ b/lib/fog/hp/models/network/security_group_rules.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/security_group_rule'
 module Fog
   module HP
     class Network
-
       class SecurityGroupRules < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::SecurityGroupRule
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/security_groups.rb b/lib/fog/hp/models/network/security_groups.rb
index c2fe1b4..76b8647 100644
--- a/lib/fog/hp/models/network/security_groups.rb
+++ b/lib/fog/hp/models/network/security_groups.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/security_group'
 module Fog
   module HP
     class Network
-
       class SecurityGroups < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::SecurityGroup
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/subnet.rb b/lib/fog/hp/models/network/subnet.rb
index 69406a8..ed8b40a 100644
--- a/lib/fog/hp/models/network/subnet.rb
+++ b/lib/fog/hp/models/network/subnet.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module HP
     class Network
-
       class Subnet < Fog::Model
         identity :id
 
@@ -42,7 +41,6 @@ module Fog
           merge_attributes(service.update_subnet(id, attributes).body['subnet'])
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/network/subnets.rb b/lib/fog/hp/models/network/subnets.rb
index 7e233a1..a305a77 100644
--- a/lib/fog/hp/models/network/subnets.rb
+++ b/lib/fog/hp/models/network/subnets.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/network/subnet'
 module Fog
   module HP
     class Network
-
       class Subnets < Fog::Collection
-
         attribute :filters
 
         model Fog::HP::Network::Subnet
@@ -29,7 +27,6 @@ module Fog
         rescue Fog::HP::Network::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/storage/directories.rb b/lib/fog/hp/models/storage/directories.rb
index 5db1dc6..35b0503 100644
--- a/lib/fog/hp/models/storage/directories.rb
+++ b/lib/fog/hp/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/storage/directory'
 module Fog
   module Storage
     class HP
-
       class Directories < Fog::Collection
-
         model Fog::Storage::HP::Directory
 
         def all
@@ -67,9 +65,7 @@ module Fog
           end
           directory
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/directory.rb b/lib/fog/hp/models/storage/directory.rb
index a03f57c..f92fd54 100644
--- a/lib/fog/hp/models/storage/directory.rb
+++ b/lib/fog/hp/models/storage/directory.rb
@@ -5,9 +5,7 @@ require 'fog/hp/models/storage/metadata'
 module Fog
   module Storage
     class HP
-
       class Directory < Fog::Model
-
         identity  :key,               :aliases => 'name'
 
         attribute :bytes,             :aliases => 'X-Container-Bytes-Used'
@@ -301,9 +299,7 @@ module Fog
           end
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/file.rb b/lib/fog/hp/models/storage/file.rb
index 7c234bf..dd5ff3b 100644
--- a/lib/fog/hp/models/storage/file.rb
+++ b/lib/fog/hp/models/storage/file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class HP
-
       class File < Fog::Model
-
         identity  :key,             :aliases => 'name'
 
         attribute :content_length,  :aliases => ['bytes', 'Content-Length'], :type => :integer
@@ -101,9 +99,7 @@ module Fog
         def directory=(new_directory)
           @directory = new_directory
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/files.rb b/lib/fog/hp/models/storage/files.rb
index e628bb2..7aa3618 100644
--- a/lib/fog/hp/models/storage/files.rb
+++ b/lib/fog/hp/models/storage/files.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/storage/file'
 module Fog
   module Storage
     class HP
-
       class Files < Fog::Collection
-
         attribute :directory
         attribute :limit
         attribute :marker
@@ -35,7 +33,7 @@ module Fog
           end
         end
 
-        alias :each_file_this_page :each
+        alias_method :each_file_this_page, :each
         def each
           if !block_given?
             self
@@ -125,9 +123,7 @@ module Fog
           requires :directory
           super({ :directory => directory }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/meta.rb b/lib/fog/hp/models/storage/meta.rb
index 6c348dc..623c7d6 100644
--- a/lib/fog/hp/models/storage/meta.rb
+++ b/lib/fog/hp/models/storage/meta.rb
@@ -5,7 +5,6 @@ module Fog
   module Storage
     class HP
       class Meta < Fog::Model
-
         include Fog::Storage::HP::MetaParent
 
         identity :key
@@ -22,7 +21,6 @@ module Fog
             true
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/storage/meta_parent.rb b/lib/fog/hp/models/storage/meta_parent.rb
index b45cc03..acae253 100644
--- a/lib/fog/hp/models/storage/meta_parent.rb
+++ b/lib/fog/hp/models/storage/meta_parent.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       module MetaParent
-
         def parent
           @parent
         end
@@ -16,7 +15,6 @@ module Fog
           metas.each { |meta| hash.store(meta.key, meta.value) }
           hash
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/models/storage/metadata.rb b/lib/fog/hp/models/storage/metadata.rb
index d29a05f..bb05cd8 100644
--- a/lib/fog/hp/models/storage/metadata.rb
+++ b/lib/fog/hp/models/storage/metadata.rb
@@ -5,9 +5,7 @@ require 'fog/hp/models/storage/meta'
 module Fog
   module Storage
     class HP
-
       class Metadata < Fog::Collection
-
         model Fog::Storage::HP::Meta
 
         include Fog::Storage::HP::MetaParent
@@ -59,7 +57,6 @@ module Fog
           end
         end
 
-
         private
         def meta_hash(data=nil)
           if data.nil?
@@ -74,9 +71,7 @@ module Fog
           end
           data
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/shared_directories.rb b/lib/fog/hp/models/storage/shared_directories.rb
index c105b68..d0bcdcb 100644
--- a/lib/fog/hp/models/storage/shared_directories.rb
+++ b/lib/fog/hp/models/storage/shared_directories.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/storage/shared_directory'
 module Fog
   module Storage
     class HP
-
       class SharedDirectories < Fog::Collection
-
         model Fog::Storage::HP::SharedDirectory
 
         def all
@@ -47,9 +45,7 @@ module Fog
         rescue Fog::Storage::HP::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/shared_directory.rb b/lib/fog/hp/models/storage/shared_directory.rb
index fed94c1..8de71a6 100644
--- a/lib/fog/hp/models/storage/shared_directory.rb
+++ b/lib/fog/hp/models/storage/shared_directory.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/storage/shared_files'
 module Fog
   module Storage
     class HP
-
       class SharedDirectory < Fog::Model
-
         identity  :url
 
         attribute :bytes, :aliases => 'X-Container-Bytes-Used'
@@ -33,7 +31,6 @@ module Fog
           false
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/shared_file.rb b/lib/fog/hp/models/storage/shared_file.rb
index a1e1bee..8832950 100644
--- a/lib/fog/hp/models/storage/shared_file.rb
+++ b/lib/fog/hp/models/storage/shared_file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class HP
-
       class SharedFile < Fog::Model
-
         identity  :key,             :aliases => 'name'
         attribute :url
 
@@ -61,7 +59,6 @@ module Fog
           @shared_directory = new_shared_directory
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/models/storage/shared_files.rb b/lib/fog/hp/models/storage/shared_files.rb
index da65392..5039013 100644
--- a/lib/fog/hp/models/storage/shared_files.rb
+++ b/lib/fog/hp/models/storage/shared_files.rb
@@ -4,9 +4,7 @@ require 'fog/hp/models/storage/shared_file'
 module Fog
   module Storage
     class HP
-
       class SharedFiles < Fog::Collection
-
         attribute :shared_directory
 
         model Fog::Storage::HP::SharedFile
@@ -56,9 +54,7 @@ module Fog
           requires :shared_directory
           super({ :shared_directory => shared_directory }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/network.rb b/lib/fog/hp/network.rb
index 994e233..24748ea 100644
--- a/lib/fog/hp/network.rb
+++ b/lib/fog/hp/network.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module HP
     class Network < Fog::Service
-
       requires    :hp_access_key, :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :credentials, :hp_service_type
       recognizes  :persistent, :connection_options
@@ -66,7 +65,6 @@ module Fog
       request :update_subnet
 
       module Utils
-
       end
 
       class Mock
@@ -113,7 +111,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -128,7 +125,7 @@ module Fog
           ### Set an option to use the style of authentication desired; :v1 or :v2 (default)
           auth_version = options[:hp_auth_version] || :v2
           ### Pass the service name for network to the authentication call
-          options[:hp_service_type] ||= "Networking"
+          options[:hp_service_type] ||= "network"
           @hp_tenant_id = options[:hp_tenant_id]
           @hp_avl_zone  = options[:hp_avl_zone]
 
@@ -137,6 +134,7 @@ module Fog
             # Call the control services authentication
             credentials = Fog::HP.authenticate_v2(options, @connection_options)
             # the CS service catalog returns the network endpoint
+
             @hp_network_uri = credentials[:endpoint_url]
             @credentials = credentials
           else
@@ -155,6 +153,7 @@ module Fog
           @port   = uri.port
           @scheme = uri.scheme
 
+
           @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
         end
 
@@ -164,13 +163,19 @@ module Fog
 
         def request(params, parse_json = true, &block)
           begin
+            if @path == "/"
+              #helion network @path is "/"
+              @calculated_path = "v2.0/#{params[:path]}"
+            else
+               @calculated_path = "#{@path}/v2.0/#{params[:path]}"
+            end
             response = @connection.request(params.merge!({
               :headers  => {
                 'Content-Type' => 'application/json',
                 'Accept'       => 'application/json',
                 'X-Auth-Token' => @auth_token
               }.merge!(params[:headers] || {}),
-              :path     => "#{@path}/v2.0/#{params[:path]}"
+              :path     => @calculated_path
             }), &block)
           rescue Excon::Errors::HTTPStatusError => error
             raise case error
@@ -189,10 +194,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/hp/requests/block_storage/create_snapshot.rb b/lib/fog/hp/requests/block_storage/create_snapshot.rb
index eb117f7..1f3d08e 100644
--- a/lib/fog/hp/requests/block_storage/create_snapshot.rb
+++ b/lib/fog/hp/requests/block_storage/create_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Create a new block storage snapshot
         #
         # ==== Parameters
@@ -44,11 +43,9 @@ module Fog
             :path     => "os-snapshots"
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def create_snapshot(name, description, volume_id, options={})
           response = Excon::Response.new
           if self.data[:volumes][volume_id]
@@ -70,7 +67,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/create_volume.rb b/lib/fog/hp/requests/block_storage/create_volume.rb
index 9ee592e..8fb9952 100644
--- a/lib/fog/hp/requests/block_storage/create_volume.rb
+++ b/lib/fog/hp/requests/block_storage/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Create a new block storage volume
         #
         # ==== Parameters
@@ -50,11 +49,9 @@ module Fog
             :path     => "os-volumes"
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def create_volume(name, description, size, options={})
           if options['snapshotId'] && options['imageRef']
             raise Fog::Errors::BadRequest.new("Snapshot and image cannot be specified together.")
@@ -81,7 +78,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/delete_snapshot.rb b/lib/fog/hp/requests/block_storage/delete_snapshot.rb
index 6b18f3a..ccfa9e9 100644
--- a/lib/fog/hp/requests/block_storage/delete_snapshot.rb
+++ b/lib/fog/hp/requests/block_storage/delete_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Delete an existing block storage snapshot
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_snapshot(snapshot_id)
           response = Excon::Response.new
           if self.data[:snapshots][snapshot_id]
@@ -32,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/delete_volume.rb b/lib/fog/hp/requests/block_storage/delete_volume.rb
index 00ff202..3460b9f 100644
--- a/lib/fog/hp/requests/block_storage/delete_volume.rb
+++ b/lib/fog/hp/requests/block_storage/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Delete an existing block storage volume
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_volume(volume_id)
           response = Excon::Response.new
           if self.data[:volumes][volume_id]
@@ -32,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/get_bootable_volume_details.rb b/lib/fog/hp/requests/block_storage/get_bootable_volume_details.rb
index f77af01..a857003 100644
--- a/lib/fog/hp/requests/block_storage/get_bootable_volume_details.rb
+++ b/lib/fog/hp/requests/block_storage/get_bootable_volume_details.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Get details for existing block storage bootable volume
         #
         # ==== Parameters
@@ -33,11 +32,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_bootable_volume_details(volume_id)
           unless volume_id
             raise ArgumentError.new('volume_id is required')
@@ -50,10 +47,8 @@ module Fog
           else
             raise Fog::HP::BlockStorage::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/get_snapshot_details.rb b/lib/fog/hp/requests/block_storage/get_snapshot_details.rb
index beecefd..8152014 100644
--- a/lib/fog/hp/requests/block_storage/get_snapshot_details.rb
+++ b/lib/fog/hp/requests/block_storage/get_snapshot_details.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Get details for existing block storage snapshot
         #
         # ==== Parameters
@@ -28,11 +27,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_snapshot_details(snapshot_id)
           unless snapshot_id
             raise ArgumentError.new('snapshot_id is required')
@@ -45,10 +42,8 @@ module Fog
           else
             raise Fog::HP::BlockStorage::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/get_volume_details.rb b/lib/fog/hp/requests/block_storage/get_volume_details.rb
index 0eff5b6..7237a5a 100644
--- a/lib/fog/hp/requests/block_storage/get_volume_details.rb
+++ b/lib/fog/hp/requests/block_storage/get_volume_details.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # Get details for existing block storage volume
         #
         # ==== Parameters
@@ -32,11 +31,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_volume_details(volume_id)
           unless volume_id
             raise ArgumentError.new('volume_id is required')
@@ -49,10 +46,8 @@ module Fog
           else
             raise Fog::HP::BlockStorage::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/list_bootable_volumes.rb b/lib/fog/hp/requests/block_storage/list_bootable_volumes.rb
index 8621aed..caa47a3 100644
--- a/lib/fog/hp/requests/block_storage/list_bootable_volumes.rb
+++ b/lib/fog/hp/requests/block_storage/list_bootable_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # List existing block storage bootbale volumes
         #
         # ==== Parameters
@@ -32,11 +31,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_bootable_volumes
           response = Excon::Response.new
           volumes = []
@@ -47,7 +44,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/list_snapshots.rb b/lib/fog/hp/requests/block_storage/list_snapshots.rb
index b90a38e..83f5596 100644
--- a/lib/fog/hp/requests/block_storage/list_snapshots.rb
+++ b/lib/fog/hp/requests/block_storage/list_snapshots.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # List existing block storage snapshots
         #
         # ==== Parameters
@@ -27,11 +26,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_snapshots
           response = Excon::Response.new
           snapshots = []
@@ -42,7 +39,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage/list_volumes.rb b/lib/fog/hp/requests/block_storage/list_volumes.rb
index 0f84c31..6cb1f0a 100644
--- a/lib/fog/hp/requests/block_storage/list_volumes.rb
+++ b/lib/fog/hp/requests/block_storage/list_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorage
       class Real
-
         # List existing block storage volumes
         #
         # ==== Parameters
@@ -31,11 +30,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_volumes
           response = Excon::Response.new
           volumes = []
@@ -46,7 +43,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/create_snapshot.rb b/lib/fog/hp/requests/block_storage_v2/create_snapshot.rb
index 70e4ab0..fe2c6df 100644
--- a/lib/fog/hp/requests/block_storage_v2/create_snapshot.rb
+++ b/lib/fog/hp/requests/block_storage_v2/create_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Create a new block storage snapshot
         # The snapshot is created in the same availability_zone as the specified volume
         #
@@ -44,11 +43,9 @@ module Fog
             :path     => 'snapshots'
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def create_snapshot(volume_id, options={})
           response = Excon::Response.new
           if self.data[:volumes][volume_id]
@@ -70,7 +67,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/create_volume.rb b/lib/fog/hp/requests/block_storage_v2/create_volume.rb
index e996dfc..7067408 100644
--- a/lib/fog/hp/requests/block_storage_v2/create_volume.rb
+++ b/lib/fog/hp/requests/block_storage_v2/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Create a new block storage volume
         #
         # ==== Parameters
@@ -52,11 +51,9 @@ module Fog
             :path     => 'volumes'
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def create_volume(options={})
           if options['snapshot_id'] && options['imageRef'] && options['source_volid']
             raise Fog::Errors::BadRequest.new('The snapshot_id, imageRef and the source_volid parameters are mutually exclusive, and only one should be specified in the request.')
@@ -84,7 +81,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/create_volume_backup.rb b/lib/fog/hp/requests/block_storage_v2/create_volume_backup.rb
index 4889bc4..e95faa2 100644
--- a/lib/fog/hp/requests/block_storage_v2/create_volume_backup.rb
+++ b/lib/fog/hp/requests/block_storage_v2/create_volume_backup.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Create a new block storage volume backup
         #
         # ==== Parameters
@@ -38,11 +37,9 @@ module Fog
             :path     => 'backups'
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def create_volume_backup(volume_id, options={})
           response = Excon::Response.new
           tenant_id = Fog::Mock.random_numbers(14).to_s
@@ -77,7 +74,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/delete_snapshot.rb b/lib/fog/hp/requests/block_storage_v2/delete_snapshot.rb
index 15cfd8b..572c0d8 100644
--- a/lib/fog/hp/requests/block_storage_v2/delete_snapshot.rb
+++ b/lib/fog/hp/requests/block_storage_v2/delete_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Delete an existing block storage snapshot
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_snapshot(snapshot_id)
           response = Excon::Response.new
           if self.data[:snapshots][snapshot_id]
@@ -32,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/delete_volume.rb b/lib/fog/hp/requests/block_storage_v2/delete_volume.rb
index b87ae8b..b026320 100644
--- a/lib/fog/hp/requests/block_storage_v2/delete_volume.rb
+++ b/lib/fog/hp/requests/block_storage_v2/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Delete an existing block storage volume
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_volume(volume_id)
           response = Excon::Response.new
           if self.data[:volumes][volume_id]
@@ -32,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/delete_volume_backup.rb b/lib/fog/hp/requests/block_storage_v2/delete_volume_backup.rb
index a571960..d3a2345 100644
--- a/lib/fog/hp/requests/block_storage_v2/delete_volume_backup.rb
+++ b/lib/fog/hp/requests/block_storage_v2/delete_volume_backup.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Delete an existing block storage volume backup
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_volume_backup(backup_id)
           response = Excon::Response.new
           if self.data[:volume_backups][backup_id]
@@ -32,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/get_snapshot_details.rb b/lib/fog/hp/requests/block_storage_v2/get_snapshot_details.rb
index 8ba2525..aa38a97 100644
--- a/lib/fog/hp/requests/block_storage_v2/get_snapshot_details.rb
+++ b/lib/fog/hp/requests/block_storage_v2/get_snapshot_details.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Get details for existing block storage snapshot
         #
         # ==== Parameters
@@ -28,11 +27,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_snapshot_details(snapshot_id)
           unless snapshot_id
             raise ArgumentError.new('snapshot_id is required')
@@ -45,10 +42,8 @@ module Fog
           else
             raise Fog::HP::BlockStorageV2::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/get_volume_backup_details.rb b/lib/fog/hp/requests/block_storage_v2/get_volume_backup_details.rb
index 279312e..f945578 100644
--- a/lib/fog/hp/requests/block_storage_v2/get_volume_backup_details.rb
+++ b/lib/fog/hp/requests/block_storage_v2/get_volume_backup_details.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Get details for existing block storage volume backup
         #
         # ==== Parameters
@@ -32,11 +31,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_volume_backup_details(backup_id)
           response = Excon::Response.new
           if backup = self.data[:volume_backups][backup_id]
@@ -46,10 +43,8 @@ module Fog
           else
             raise Fog::HP::BlockStorageV2::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/get_volume_details.rb b/lib/fog/hp/requests/block_storage_v2/get_volume_details.rb
index 4683156..0c2bfd2 100644
--- a/lib/fog/hp/requests/block_storage_v2/get_volume_details.rb
+++ b/lib/fog/hp/requests/block_storage_v2/get_volume_details.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Get details for existing block storage volume
         #
         # ==== Parameters
@@ -32,11 +31,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_volume_details(volume_id)
           unless volume_id
             raise ArgumentError.new('volume_id is required')
@@ -49,10 +46,8 @@ module Fog
           else
             raise Fog::HP::BlockStorageV2::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/list_snapshots.rb b/lib/fog/hp/requests/block_storage_v2/list_snapshots.rb
index 81ac53b..f60009a 100644
--- a/lib/fog/hp/requests/block_storage_v2/list_snapshots.rb
+++ b/lib/fog/hp/requests/block_storage_v2/list_snapshots.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # List existing block storage snapshots
         #
         # ==== Parameters
@@ -33,11 +32,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_snapshots(options={})
           response = Excon::Response.new
           snapshots = []
@@ -51,7 +48,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/list_snapshots_detail.rb b/lib/fog/hp/requests/block_storage_v2/list_snapshots_detail.rb
index 8db74da..919bfdf 100644
--- a/lib/fog/hp/requests/block_storage_v2/list_snapshots_detail.rb
+++ b/lib/fog/hp/requests/block_storage_v2/list_snapshots_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # List existing block storage snapshots with details
         #
         # ==== Parameters
@@ -33,11 +32,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_snapshots_detail(options={})
           response = Excon::Response.new
           snapshots = []
@@ -48,7 +45,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/list_volume_backups.rb b/lib/fog/hp/requests/block_storage_v2/list_volume_backups.rb
index 89054dd..79f5ccc 100644
--- a/lib/fog/hp/requests/block_storage_v2/list_volume_backups.rb
+++ b/lib/fog/hp/requests/block_storage_v2/list_volume_backups.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # List existing block storage volume backups
         #
         # ==== Parameters
@@ -28,11 +27,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_volume_backups(options = {})
           response = Excon::Response.new
           backups = []
@@ -46,7 +43,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/list_volume_backups_detail.rb b/lib/fog/hp/requests/block_storage_v2/list_volume_backups_detail.rb
index 8ad031c..2525996 100644
--- a/lib/fog/hp/requests/block_storage_v2/list_volume_backups_detail.rb
+++ b/lib/fog/hp/requests/block_storage_v2/list_volume_backups_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # List details about existing block storage volume backups
         #
         # ==== Parameters
@@ -37,11 +36,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_volume_backups_detail(options = {})
           response = Excon::Response.new
           backups = []
@@ -52,7 +49,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/list_volumes.rb b/lib/fog/hp/requests/block_storage_v2/list_volumes.rb
index 654dd51..fe035d3 100644
--- a/lib/fog/hp/requests/block_storage_v2/list_volumes.rb
+++ b/lib/fog/hp/requests/block_storage_v2/list_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # List existing block storage volumes
         #
         # ==== Parameters
@@ -37,11 +36,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_volumes(options = {})
           response = Excon::Response.new
           volumes = []
@@ -55,7 +52,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/list_volumes_detail.rb b/lib/fog/hp/requests/block_storage_v2/list_volumes_detail.rb
index cac7733..1abafed 100644
--- a/lib/fog/hp/requests/block_storage_v2/list_volumes_detail.rb
+++ b/lib/fog/hp/requests/block_storage_v2/list_volumes_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # List details about existing block storage volumes
         #
         # ==== Parameters
@@ -38,11 +37,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_volumes_detail(options = {})
           response = Excon::Response.new
           volumes = []
@@ -53,7 +50,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/restore_volume_backup.rb b/lib/fog/hp/requests/block_storage_v2/restore_volume_backup.rb
index e741e1f..4c59ba1 100644
--- a/lib/fog/hp/requests/block_storage_v2/restore_volume_backup.rb
+++ b/lib/fog/hp/requests/block_storage_v2/restore_volume_backup.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Restore an existing block storage volume backup to an existing or new volume
         #
         # If a volume is specified, that volume will be overwritten with the backup data from the backup.
@@ -32,11 +31,9 @@ module Fog
             :path     => "backups/#{backup_id}/restore"
           )
         end
-
       end
 
       class Mock # :nodoc:all
-
         def restore_volume_backup(backup_id, options={})
           volume_id = options['volume_id']
 
@@ -91,7 +88,6 @@ module Fog
           }
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/update_snapshot.rb b/lib/fog/hp/requests/block_storage_v2/update_snapshot.rb
index 8394e40..23d9a71 100644
--- a/lib/fog/hp/requests/block_storage_v2/update_snapshot.rb
+++ b/lib/fog/hp/requests/block_storage_v2/update_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Update an existing block storage snapshot
         #
         # ==== Parameters
@@ -40,11 +39,9 @@ module Fog
             :path     => "snapshots/#{snapshot_id}"
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def update_snapshot(snapshot_id, options={})
           unless snapshot_id
             raise ArgumentError.new('snapshot_id is required')
@@ -60,10 +57,8 @@ module Fog
           else
             raise Fog::HP::BlockStorageV2::NotFound
           end
-
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/block_storage_v2/update_volume.rb b/lib/fog/hp/requests/block_storage_v2/update_volume.rb
index 432ba8b..d05d9e0 100644
--- a/lib/fog/hp/requests/block_storage_v2/update_volume.rb
+++ b/lib/fog/hp/requests/block_storage_v2/update_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class BlockStorageV2
       class Real
-
         # Update an existing block storage volume
         #
         # ==== Parameters
@@ -45,11 +44,9 @@ module Fog
             :path     => "volumes/#{volume_id}"
           )
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def update_volume(volume_id, options={})
           response = Excon::Response.new
           if volume = self.data[:volumes][volume_id]
@@ -64,7 +61,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/cdn/delete_container.rb b/lib/fog/hp/requests/cdn/delete_container.rb
index 3ff4be9..ef4b21a 100644
--- a/lib/fog/hp/requests/cdn/delete_container.rb
+++ b/lib/fog/hp/requests/cdn/delete_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class HP
       class Real
-
         # Delete an existing container
         #
         # ==== Parameters
@@ -16,7 +15,6 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
@@ -32,7 +30,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/cdn/get_containers.rb b/lib/fog/hp/requests/cdn/get_containers.rb
index 6e78c26..53dd541 100644
--- a/lib/fog/hp/requests/cdn/get_containers.rb
+++ b/lib/fog/hp/requests/cdn/get_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class HP
       class Real
-
         # List existing cdn-enabled storage containers
         #
         # ==== Parameters
@@ -24,11 +23,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_containers(options = {})
           response = Excon::Response.new
           data = self.data[:cdn_containers].map {|_,v| v}
@@ -36,9 +33,7 @@ module Fog
           response.status = 200
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/cdn/head_container.rb b/lib/fog/hp/requests/cdn/head_container.rb
index c9c0434..14601a8 100644
--- a/lib/fog/hp/requests/cdn/head_container.rb
+++ b/lib/fog/hp/requests/cdn/head_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class HP
       class Real
-
         # List cdn properties for a container
         #
         # ==== Parameters
@@ -24,7 +23,6 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
@@ -44,7 +42,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/cdn/post_container.rb b/lib/fog/hp/requests/cdn/post_container.rb
index fd99c59..f102622 100644
--- a/lib/fog/hp/requests/cdn/post_container.rb
+++ b/lib/fog/hp/requests/cdn/post_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class HP
       class Real
-
         # modify CDN properties for a container
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
@@ -46,7 +44,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/cdn/put_container.rb b/lib/fog/hp/requests/cdn/put_container.rb
index 66eda20..ec96dbe 100644
--- a/lib/fog/hp/requests/cdn/put_container.rb
+++ b/lib/fog/hp/requests/cdn/put_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class HP
       class Real
-
         # enable CDN for a container
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
@@ -47,7 +45,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/allocate_address.rb b/lib/fog/hp/requests/compute/allocate_address.rb
index 9627a1f..cc1cca5 100644
--- a/lib/fog/hp/requests/compute/allocate_address.rb
+++ b/lib/fog/hp/requests/compute/allocate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Acquires a floating IP address
         #
         # ==== Returns
@@ -14,7 +13,6 @@ module Fog
         #       * 'instance_id'<~String> - Id of the associated server instance
         #       * 'fixed_ip'<~String> - Fixed IP of the address
         def allocate_address
-
           request(
             :body     => nil,
             :expects  => 200,
@@ -22,11 +20,9 @@ module Fog
             :path     => 'os-floating-ips.json'
           )
         end
-
       end
 
       class Mock
-
         def allocate_address
           response = Excon::Response.new
           response.status = 200
@@ -42,7 +38,6 @@ module Fog
           response.body = { 'floating_ip' => data }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/associate_address.rb b/lib/fog/hp/requests/compute/associate_address.rb
index cf9c838..14bce3b 100644
--- a/lib/fog/hp/requests/compute/associate_address.rb
+++ b/lib/fog/hp/requests/compute/associate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Associate a floating IP address with existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'addFloatingIp' => { 'server' => server_id, 'address' => ip_address }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def associate_address(server_id, ip_address)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -35,7 +32,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/attach_volume.rb b/lib/fog/hp/requests/compute/attach_volume.rb
index 7635b6d..103865d 100644
--- a/lib/fog/hp/requests/compute/attach_volume.rb
+++ b/lib/fog/hp/requests/compute/attach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Attach a block storage volume to an existing server
         #
         # ==== Parameters
@@ -31,11 +30,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def attach_volume(server_id, volume_id, device)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -71,7 +68,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/change_password_server.rb b/lib/fog/hp/requests/compute/change_password_server.rb
index 677b6bc..67d87b6 100644
--- a/lib/fog/hp/requests/compute/change_password_server.rb
+++ b/lib/fog/hp/requests/compute/change_password_server.rb
@@ -2,19 +2,16 @@ module Fog
   module Compute
     class HP
       class Real
-
         def change_password_server(server_id, admin_password)
           body = { 'changePassword' => { 'adminPass' => admin_password }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def change_password_server(server_id, admin_password)
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if admin_password
               response.body = { 'changePassword' => { 'adminPass' => admin_password }}
             end
@@ -26,7 +23,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/confirm_resized_server.rb b/lib/fog/hp/requests/compute/confirm_resized_server.rb
index 78df7df..ba9ecc9 100644
--- a/lib/fog/hp/requests/compute/confirm_resized_server.rb
+++ b/lib/fog/hp/requests/compute/confirm_resized_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Confirm resizing
         #
         # ==== Parameters
@@ -12,11 +11,9 @@ module Fog
           body = { 'confirmResize' => nil }
           server_action(server_id, body, 204)
         end
-
       end
 
       class Mock
-
         def confirm_resized_server(server_id)
           response = Excon::Response.new
           response.status = 204
@@ -27,7 +24,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/create_image.rb b/lib/fog/hp/requests/compute/create_image.rb
index 5ca03bf..cad7496 100644
--- a/lib/fog/hp/requests/compute/create_image.rb
+++ b/lib/fog/hp/requests/compute/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Create an image from an existing server
         #
         # ==== Parameters
@@ -23,11 +22,9 @@ module Fog
                  }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def create_image(server_id, name, metadata = {})
           response = Excon::Response.new
           response.status = 202
@@ -52,9 +49,7 @@ module Fog
           response.body = "" # { 'image' => data } no data is sent
           response
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/hp/requests/compute/create_key_pair.rb b/lib/fog/hp/requests/compute/create_key_pair.rb
index 4205515..baed65a 100644
--- a/lib/fog/hp/requests/compute/create_key_pair.rb
+++ b/lib/fog/hp/requests/compute/create_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Create a new keypair
         #
         # ==== Parameters
@@ -43,11 +42,9 @@ module Fog
             :path     => 'os-keypairs.json'
           )
         end
-
       end
 
       class Mock
-
         def create_key_pair(key_name, public_key = nil)
           response = Excon::Response.new
           unless self.data[:key_pairs][key_name]
@@ -73,9 +70,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/create_persistent_server.rb b/lib/fog/hp/requests/compute/create_persistent_server.rb
index 87186fa..7095b6e 100644
--- a/lib/fog/hp/requests/compute/create_persistent_server.rb
+++ b/lib/fog/hp/requests/compute/create_persistent_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Create a new persistent server i.e. use a bootable volume instead of an image
         #
         # ==== Parameters
@@ -113,11 +112,9 @@ module Fog
             :path     => 'os-volumes_boot'
           )
         end
-
       end
 
       class Mock
-
         def create_persistent_server(name, flavor_id, block_device_mapping = [], options = {})
           response = Excon::Response.new
 
@@ -159,9 +156,7 @@ module Fog
             response.status = 400
             raise(Excon::Errors::BadRequest, "No boot volume or boot image specified")
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/create_security_group.rb b/lib/fog/hp/requests/compute/create_security_group.rb
index ad024bf..3c734d6 100644
--- a/lib/fog/hp/requests/compute/create_security_group.rb
+++ b/lib/fog/hp/requests/compute/create_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Create a new security group
         #
         # ==== Parameters
@@ -44,18 +43,16 @@ module Fog
             :path     => 'os-security-groups.json'
           )
         end
-
       end
 
       class Mock
-
         def create_security_group(name, description)
           # all spaces are removed
           name = name.strip
           description = description.strip
 
           response = Excon::Response.new
-          if self.data[:security_groups].detect {|_,v| v['name'] == name}
+          if self.data[:security_groups].find {|_,v| v['name'] == name}
             response.status = 400
             response.body = { "badRequest" => {"message" => "Security group #{name} already exists", "code" => 400}}
             raise(Excon::Errors.status_error({:expects => 200}, response))
@@ -75,9 +72,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/create_security_group_rule.rb b/lib/fog/hp/requests/compute/create_security_group_rule.rb
index 2cba1c6..7c23132 100644
--- a/lib/fog/hp/requests/compute/create_security_group_rule.rb
+++ b/lib/fog/hp/requests/compute/create_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Create a new security group rule and attach it to a security group
         #
         # ==== Parameters
@@ -37,11 +36,9 @@ module Fog
             :path     => 'os-security-group-rules.json'
           )
         end
-
       end
 
       class Mock
-
         def create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id=nil)
           response = Excon::Response.new
           group = self.data[:security_groups][parent_group_id]
@@ -67,9 +64,7 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/create_server.rb b/lib/fog/hp/requests/compute/create_server.rb
index 26e10c6..75c32f6 100644
--- a/lib/fog/hp/requests/compute/create_server.rb
+++ b/lib/fog/hp/requests/compute/create_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Create a new server
         #
         # ==== Parameters
@@ -98,11 +97,9 @@ module Fog
             :path     => 'servers.json'
           )
         end
-
       end
 
       class Mock
-
         def create_server(name, flavor_id, image_id, options = {})
           response = Excon::Response.new
           response.status = 202
@@ -139,7 +136,6 @@ module Fog
           response.body = { 'server' => data.merge({'adminPass' => 'password'}) }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/delete_image.rb b/lib/fog/hp/requests/compute/delete_image.rb
index 0664417..c791aa9 100644
--- a/lib/fog/hp/requests/compute/delete_image.rb
+++ b/lib/fog/hp/requests/compute/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Delete an image
         #
         # ==== Parameters
@@ -15,14 +14,12 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_image(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             if image['status'] == 'SAVING'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -36,9 +33,7 @@ module Fog
             response.status = 500
             raise(Excon::Errors.status_error({:expects => 202}, response))
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/delete_key_pair.rb b/lib/fog/hp/requests/compute/delete_key_pair.rb
index 8e02fc3..c4b8f48 100644
--- a/lib/fog/hp/requests/compute/delete_key_pair.rb
+++ b/lib/fog/hp/requests/compute/delete_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Delete a keypair
         #
         # ==== Parameters
@@ -15,11 +14,9 @@ module Fog
             :path     => "os-keypairs/#{key_name}"
           )
         end
-
       end
 
       class Mock
-
         def delete_key_pair(key_name)
           response = Excon::Response.new
           if self.data[:key_pairs][key_name]
@@ -32,7 +29,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/delete_meta.rb b/lib/fog/hp/requests/compute/delete_meta.rb
index 7c71f24..1e39d98 100644
--- a/lib/fog/hp/requests/compute/delete_meta.rb
+++ b/lib/fog/hp/requests/compute/delete_meta.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Delete metadata item for specific collections
         #
         # ==== Parameters
@@ -21,11 +20,9 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def delete_meta(collection_name, parent_id, key)
           if collection_name == "images" then
             if get_image_details(parent_id)
@@ -47,9 +44,7 @@ module Fog
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/delete_security_group.rb b/lib/fog/hp/requests/compute/delete_security_group.rb
index 4c14c2f..64dd472 100644
--- a/lib/fog/hp/requests/compute/delete_security_group.rb
+++ b/lib/fog/hp/requests/compute/delete_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Delete a security group
         #
         # ==== Parameters
@@ -17,11 +16,9 @@ module Fog
             :path     => "os-security-groups/#{security_group_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_security_group(security_group_id)
           response = Excon::Response.new
           if self.data[:security_groups][security_group_id]
@@ -34,7 +31,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/delete_security_group_rule.rb b/lib/fog/hp/requests/compute/delete_security_group_rule.rb
index af74d6f..2bb271c 100644
--- a/lib/fog/hp/requests/compute/delete_security_group_rule.rb
+++ b/lib/fog/hp/requests/compute/delete_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Delete a security group rule
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
             :path     => "os-security-group-rules/#{security_group_rule_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_security_group_rule(security_group_rule_id)
           response = Excon::Response.new
 
@@ -40,9 +37,7 @@ module Fog
           else
             raise Fog::Compute::HP::NotFound
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/delete_server.rb b/lib/fog/hp/requests/compute/delete_server.rb
index 9b5d554..716680d 100644
--- a/lib/fog/hp/requests/compute/delete_server.rb
+++ b/lib/fog/hp/requests/compute/delete_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Delete an existing server
         #
         # ==== Parameters
@@ -15,14 +14,12 @@ module Fog
             :path   => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_server(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if server['status'] == 'BUILD'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -36,7 +33,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/detach_volume.rb b/lib/fog/hp/requests/compute/detach_volume.rb
index 0f07c5e..b734224 100644
--- a/lib/fog/hp/requests/compute/detach_volume.rb
+++ b/lib/fog/hp/requests/compute/detach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Detach a block storage volume from an existing server
         #
         # ==== Parameters
@@ -20,11 +19,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def detach_volume(server_id, volume_id)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -40,7 +37,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/disassociate_address.rb b/lib/fog/hp/requests/compute/disassociate_address.rb
index 4b2964e..e4d47ae 100644
--- a/lib/fog/hp/requests/compute/disassociate_address.rb
+++ b/lib/fog/hp/requests/compute/disassociate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Disassociate a floating IP address with existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'removeFloatingIp' => { 'server' => server_id, 'address' => ip_address }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def disassociate_address(server_id, ip_address)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -32,7 +29,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_address.rb b/lib/fog/hp/requests/compute/get_address.rb
index e7ceb72..8c2720e 100644
--- a/lib/fog/hp/requests/compute/get_address.rb
+++ b/lib/fog/hp/requests/compute/get_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Get details about an existing floating IP address
         #
         # ==== Parameters
@@ -23,11 +22,9 @@ module Fog
             :path     => "os-floating-ips/#{address_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_address(address_id)
           response = Excon::Response.new
           if address = self.data[:addresses][address_id]
@@ -38,7 +35,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_console_output.rb b/lib/fog/hp/requests/compute/get_console_output.rb
index 475cc97..a2a294b 100644
--- a/lib/fog/hp/requests/compute/get_console_output.rb
+++ b/lib/fog/hp/requests/compute/get_console_output.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Retrieve console output for specified instance
         #
         # ==== Parameters
@@ -17,15 +16,13 @@ module Fog
           body = { 'os-getConsoleOutput' => { 'length' => num_lines }}
           server_action(server_id, body, 200)
         end
-
       end
 
       class Mock
-
         def get_console_output(server_id, num_lines)
           output = ""
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             (1..num_lines).each {|i| output += "Console Output Line #{i} \r\n"}
             response.body = { 'output' => output }
             response.status = 200
@@ -34,7 +31,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_flavor_details.rb b/lib/fog/hp/requests/compute/get_flavor_details.rb
index b8a1127..6bae124 100644
--- a/lib/fog/hp/requests/compute/get_flavor_details.rb
+++ b/lib/fog/hp/requests/compute/get_flavor_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Get details for flavor by id
         #
         # ==== Returns
@@ -19,11 +18,9 @@ module Fog
             :path     => "flavors/#{flavor_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_flavor_details(flavor_id)
           response = Excon::Response.new
           flavor = {
@@ -44,7 +41,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_image_details.rb b/lib/fog/hp/requests/compute/get_image_details.rb
index e1b264a..4f2037d 100644
--- a/lib/fog/hp/requests/compute/get_image_details.rb
+++ b/lib/fog/hp/requests/compute/get_image_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Get details for image by id
         #
         # ==== Returns
@@ -20,14 +19,12 @@ module Fog
             :path     => "images/#{image_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_image_details(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'image' => image }
             response
@@ -35,9 +32,7 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/get_meta.rb b/lib/fog/hp/requests/compute/get_meta.rb
index 17ea323..fe3ad9b 100644
--- a/lib/fog/hp/requests/compute/get_meta.rb
+++ b/lib/fog/hp/requests/compute/get_meta.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Get metadata item for specific collections
         #
         # ==== Parameters
@@ -22,11 +21,9 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def get_meta(collection_name, parent_id, key)
           if collection_name == "images" then
             if get_image_details(parent_id)
@@ -49,9 +46,7 @@ module Fog
           response.body = { 'meta' => { key => midata } }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/get_security_group.rb b/lib/fog/hp/requests/compute/get_security_group.rb
index 7362d1d..7ca20a7 100644
--- a/lib/fog/hp/requests/compute/get_security_group.rb
+++ b/lib/fog/hp/requests/compute/get_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Get details about a security group
         #
         # ==== Parameters
@@ -35,11 +34,9 @@ module Fog
             :path     => "os-security-groups/#{security_group_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_security_group(security_group_id)
           response = Excon::Response.new
           if sec_group = self.data[:security_groups][security_group_id]
@@ -50,7 +47,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_server_details.rb b/lib/fog/hp/requests/compute/get_server_details.rb
index 823c026..3b74e22 100644
--- a/lib/fog/hp/requests/compute/get_server_details.rb
+++ b/lib/fog/hp/requests/compute/get_server_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Get details about a server
         #
         # ==== Parameters
@@ -30,14 +29,12 @@ module Fog
             :path     => "servers/#{server_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_server_details(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'server' => server }
             response
@@ -45,7 +42,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_vnc_console.rb b/lib/fog/hp/requests/compute/get_vnc_console.rb
index d034057..b7023c8 100644
--- a/lib/fog/hp/requests/compute/get_vnc_console.rb
+++ b/lib/fog/hp/requests/compute/get_vnc_console.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Retrieve VNC console for the specified instance
         #
         # ==== Parameters
@@ -19,18 +18,16 @@ module Fog
           body = { 'os-getVNCConsole' => { 'type' => type }}
           server_action(server_id, body, 200)
         end
-
       end
 
       class Mock
-
         def get_vnc_console(server_id, type='novnc')
           output = {
               'type' => type,
               'url'  => 'https://region.compute.hpcloud.com/vnc_auto.html?token=123ABX234'
           }
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.body = { 'console' => output }
             response.status = 200
           else
@@ -38,7 +35,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/get_windows_password.rb b/lib/fog/hp/requests/compute/get_windows_password.rb
index 58aebbf..46c2b5c 100644
--- a/lib/fog/hp/requests/compute/get_windows_password.rb
+++ b/lib/fog/hp/requests/compute/get_windows_password.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Retrieves the encrypted administrator password for a server running Windows.
         #
         # ==== Parameters
@@ -17,11 +16,9 @@ module Fog
           # decrypt the log output to extract the encrypted, base64-encoded password
           encrypted_password = extract_password_from_log(log_output)
         end
-
       end
 
       class Mock
-
         def get_windows_password(server_id)
           # need to mock out the private key as well
           private_key = OpenSSL::PKey::RSA.generate(1024)
@@ -29,7 +26,7 @@ module Fog
           ### The original password is Passw0rd
           encoded_password = encrypt_using_public_key("Passw0rd", public_key)
 
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             # mock output for this call get_console_output(server_id, 400).body['output']
             log_output = "start junk [cloud-init] Encrypt random password\n-----BEGIN BASE64-ENCODED ENCRYPTED PASSWORD-----\n#{encoded_password}-----END BASE64-ENCODED ENCRYPTED PASSWORD-----\nend junk [cloud-init] Done\n"
             encrypted_password = extract_password_from_log(log_output)
diff --git a/lib/fog/hp/requests/compute/list_addresses.rb b/lib/fog/hp/requests/compute/list_addresses.rb
index 1d5d683..7c48e75 100644
--- a/lib/fog/hp/requests/compute/list_addresses.rb
+++ b/lib/fog/hp/requests/compute/list_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all floating IP addresses
         #
         # ==== Returns
@@ -20,11 +19,9 @@ module Fog
             :path     => "os-floating-ips.json"
           )
         end
-
       end
 
       class Mock
-
         def list_addresses
           response = Excon::Response.new
           addresses = []
@@ -34,7 +31,6 @@ module Fog
           response.body = { 'floating_ips' => addresses }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_flavors.rb b/lib/fog/hp/requests/compute/list_flavors.rb
index fc17593..6fd6ae3 100644
--- a/lib/fog/hp/requests/compute/list_flavors.rb
+++ b/lib/fog/hp/requests/compute/list_flavors.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all flavors (IDs and names only)
         #
         # ==== Returns
@@ -17,11 +16,9 @@ module Fog
             :path     => 'flavors.json'
           )
         end
-
       end
 
       class Mock
-
         def list_flavors
           response = Excon::Response.new
           response.status = 200
@@ -37,7 +34,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_flavors_detail.rb b/lib/fog/hp/requests/compute/list_flavors_detail.rb
index 890ef92..7eee9f7 100644
--- a/lib/fog/hp/requests/compute/list_flavors_detail.rb
+++ b/lib/fog/hp/requests/compute/list_flavors_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all flavors
         #
         # ==== Returns
@@ -19,11 +18,9 @@ module Fog
             :path     => 'flavors/detail.json'
           )
         end
-
       end
 
       class Mock
-
         def list_flavors_detail
           response = Excon::Response.new
           response.status = 200
@@ -39,7 +36,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_images.rb b/lib/fog/hp/requests/compute/list_images.rb
index 4f96fd8..5e2efb2 100644
--- a/lib/fog/hp/requests/compute/list_images.rb
+++ b/lib/fog/hp/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all images (IDs and names only)
         #
         # ==== Returns
@@ -17,11 +16,9 @@ module Fog
             :path     => 'images.json'
           )
         end
-
       end
 
       class Mock
-
         def list_images
           response = Excon::Response.new
           data = list_images_detail.body['images']
@@ -33,7 +30,6 @@ module Fog
           response.body = { 'images' => images }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_images_detail.rb b/lib/fog/hp/requests/compute/list_images_detail.rb
index b70d38b..6bb4056 100644
--- a/lib/fog/hp/requests/compute/list_images_detail.rb
+++ b/lib/fog/hp/requests/compute/list_images_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all images
         #
         # ==== Returns
@@ -20,11 +19,9 @@ module Fog
             :path     => 'images/detail.json'
           )
         end
-
       end
 
       class Mock
-
         def list_images_detail
           response = Excon::Response.new
 
@@ -42,7 +39,6 @@ module Fog
           response.body = { 'images' => images.map {|image| image.reject {|key, value| !['id', 'name', 'links', 'metadata', 'progress' ,'status', 'created', 'updated'].include?(key)}} }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_key_pairs.rb b/lib/fog/hp/requests/compute/list_key_pairs.rb
index 77adeba..9f20982 100644
--- a/lib/fog/hp/requests/compute/list_key_pairs.rb
+++ b/lib/fog/hp/requests/compute/list_key_pairs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all key pairs
         #
         # ==== Returns
@@ -22,11 +21,9 @@ module Fog
             :path     => 'os-keypairs.json'
           )
         end
-
       end
 
       class Mock
-
         def list_key_pairs
           response = Excon::Response.new
 
@@ -37,7 +34,6 @@ module Fog
           response.body = { 'keypairs' => key_pairs }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_metadata.rb b/lib/fog/hp/requests/compute/list_metadata.rb
index cd27836..0c35aa1 100644
--- a/lib/fog/hp/requests/compute/list_metadata.rb
+++ b/lib/fog/hp/requests/compute/list_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List metadata for specific collections
         #
         # ==== Parameters
@@ -21,11 +20,9 @@ module Fog
             :path     => "/#{collection_name}/#{parent_id}/metadata.json"
           )
         end
-
       end
 
       class Mock
-
         def list_metadata(collection_name, parent_id)
           mdata = {}
           if collection_name == "images" then
@@ -49,7 +46,6 @@ module Fog
           response.body = {'metadata' => mdata}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_security_groups.rb b/lib/fog/hp/requests/compute/list_security_groups.rb
index 5b05384..b330002 100644
--- a/lib/fog/hp/requests/compute/list_security_groups.rb
+++ b/lib/fog/hp/requests/compute/list_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all security groups
         #
         # ==== Returns
@@ -32,11 +31,9 @@ module Fog
             :path     => 'os-security-groups.json'
           )
         end
-
       end
 
       class Mock
-
         def list_security_groups
           response = Excon::Response.new
 
@@ -47,7 +44,6 @@ module Fog
           response.body = { 'security_groups' => sec_groups }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_server_addresses.rb b/lib/fog/hp/requests/compute/list_server_addresses.rb
index 5a364b2..78cbf1f 100644
--- a/lib/fog/hp/requests/compute/list_server_addresses.rb
+++ b/lib/fog/hp/requests/compute/list_server_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all server addresses
         #
         # ==== Parameters
@@ -20,14 +19,12 @@ module Fog
             :path     => "servers/#{server_id}/ips.json"
           )
         end
-
       end
 
       class Mock
-
         def list_server_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = 200
             response.body = { 'addresses' => server['addresses'] }
             response
@@ -35,7 +32,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_server_private_addresses.rb b/lib/fog/hp/requests/compute/list_server_private_addresses.rb
index bbb0238..b8e2dcc 100644
--- a/lib/fog/hp/requests/compute/list_server_private_addresses.rb
+++ b/lib/fog/hp/requests/compute/list_server_private_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List private server addresses
         #
         # ==== Parameters
@@ -29,14 +28,12 @@ module Fog
           response.body = { 'private' => private_address }
           response
         end
-
       end
 
       class Mock
-
         def list_server_private_addresses(server_id, network_name)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             private_address = []
             data = nil
             data = server['addresses']["#{network_name}"][0] if server['addresses']["#{network_name}"]
@@ -51,7 +48,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_server_public_addresses.rb b/lib/fog/hp/requests/compute/list_server_public_addresses.rb
index d5eaf68..c592d41 100644
--- a/lib/fog/hp/requests/compute/list_server_public_addresses.rb
+++ b/lib/fog/hp/requests/compute/list_server_public_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List public server addresses
         #
         # ==== Parameters
@@ -29,14 +28,12 @@ module Fog
           response.body = { 'public' => public_address }
           response
         end
-
       end
 
       class Mock
-
         def list_server_public_addresses(server_id, network_name)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             # return everything except the first address
             data = server['addresses']["#{network_name}"]
             if data
@@ -51,7 +48,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_server_volumes.rb b/lib/fog/hp/requests/compute/list_server_volumes.rb
index e8422dd..ad2b313 100644
--- a/lib/fog/hp/requests/compute/list_server_volumes.rb
+++ b/lib/fog/hp/requests/compute/list_server_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all volumes attached to a server
         #
         # ==== Parameters
@@ -25,11 +24,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def list_server_volumes(server_id)
           response = Excon::Response.new
           volumes = []
@@ -42,7 +39,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_servers.rb b/lib/fog/hp/requests/compute/list_servers.rb
index 83e87a4..54029fc 100644
--- a/lib/fog/hp/requests/compute/list_servers.rb
+++ b/lib/fog/hp/requests/compute/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all servers (IDs and names only)
         #
         # ==== Returns
@@ -18,11 +17,9 @@ module Fog
             :path     => 'servers.json'
           )
         end
-
       end
 
       class Mock
-
         def list_servers
           response = Excon::Response.new
           data = list_servers_detail.body['servers']
@@ -34,7 +31,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/list_servers_detail.rb b/lib/fog/hp/requests/compute/list_servers_detail.rb
index 320f31c..9b105e8 100644
--- a/lib/fog/hp/requests/compute/list_servers_detail.rb
+++ b/lib/fog/hp/requests/compute/list_servers_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # List all servers details
         #
         # ==== Returns
@@ -27,11 +26,9 @@ module Fog
             :path     => 'servers/detail.json'
           )
         end
-
       end
 
       class Mock
-
         def list_servers_detail
           response = Excon::Response.new
 
@@ -49,7 +46,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/reboot_server.rb b/lib/fog/hp/requests/compute/reboot_server.rb
index 082f920..b472943 100644
--- a/lib/fog/hp/requests/compute/reboot_server.rb
+++ b/lib/fog/hp/requests/compute/reboot_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Reboot an existing server
         #
         # ==== Parameters
@@ -13,21 +12,18 @@ module Fog
           body = { 'reboot' => { 'type' => type }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def reboot_server(server_id, type = 'SOFT')
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = 202
             response
           else
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/rebuild_server.rb b/lib/fog/hp/requests/compute/rebuild_server.rb
index 8752987..c1b4f6c 100644
--- a/lib/fog/hp/requests/compute/rebuild_server.rb
+++ b/lib/fog/hp/requests/compute/rebuild_server.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class HP
       class Real
-
         def rebuild_server(server_id, image_ref, name, admin_pass=nil, metadata=nil, personality=nil)
-
           body = { 'rebuild' => {
             'imageRef' => image_ref,
             'name' => name
@@ -14,18 +12,15 @@ module Fog
           body['rebuild']['personality'] = personality if personality
           server_action(server_id, body, 202)
         end
-
       end
 
       class Mock
-
         def rebuild_server(server_id, image_ref, name, admin_pass=nil, metadata=nil, personality=nil)
           response = get_server_details(server_id)
           response.body['server']['status'] = "REBUILD"
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/release_address.rb b/lib/fog/hp/requests/compute/release_address.rb
index 586c661..ae1e072 100644
--- a/lib/fog/hp/requests/compute/release_address.rb
+++ b/lib/fog/hp/requests/compute/release_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Release an existing floating IP address
         #
         # ==== Parameters
@@ -15,11 +14,9 @@ module Fog
             :path   => "os-floating-ips/#{address_id}"
           )
         end
-
       end
 
       class Mock
-
         def release_address(address_id)
           response = Excon::Response.new
           if self.data[:addresses][address_id]
@@ -32,7 +29,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/resize_server.rb b/lib/fog/hp/requests/compute/resize_server.rb
index 24000d1..1af5d9f 100644
--- a/lib/fog/hp/requests/compute/resize_server.rb
+++ b/lib/fog/hp/requests/compute/resize_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Reboot an existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'resize' => { 'flavorRef' => flavor_id }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         # FIXME: should probably transition instead of skipping to VERIFY_RESIZE
         def resize_server(server_id, flavor_id)
           response = Excon::Response.new
@@ -32,7 +29,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/revert_resized_server.rb b/lib/fog/hp/requests/compute/revert_resized_server.rb
index fa5514f..30e0a75 100644
--- a/lib/fog/hp/requests/compute/revert_resized_server.rb
+++ b/lib/fog/hp/requests/compute/revert_resized_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Revert resizing
         #
         # ==== Parameters
@@ -12,11 +11,9 @@ module Fog
           body = { 'revertResize' => nil }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def revert_resized_server(server_id)
           response = Excon::Response.new
           response.status = 202
@@ -28,7 +25,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/server_action.rb b/lib/fog/hp/requests/compute/server_action.rb
index debe1c1..0e59122 100644
--- a/lib/fog/hp/requests/compute/server_action.rb
+++ b/lib/fog/hp/requests/compute/server_action.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Server actions for an existing server
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :path     => "servers/#{server_id}/action.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute/set_metadata.rb b/lib/fog/hp/requests/compute/set_metadata.rb
index 09ac0fe..9f69e52 100644
--- a/lib/fog/hp/requests/compute/set_metadata.rb
+++ b/lib/fog/hp/requests/compute/set_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Set metadata for specific collections
         #
         # ==== Parameters
@@ -23,13 +22,10 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata"
           )
         end
-
       end
 
       class Mock
-
         def set_metadata(collection_name, parent_id, metadata = {})
-
           if collection_name == "images" then
             if get_image_details(parent_id)
               self.data[:images][parent_id]['metadata'] = metadata
@@ -50,11 +46,8 @@ module Fog
           response.body = { "metadata" => metadata }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/update_meta.rb b/lib/fog/hp/requests/compute/update_meta.rb
index f03f8c8..7896931 100644
--- a/lib/fog/hp/requests/compute/update_meta.rb
+++ b/lib/fog/hp/requests/compute/update_meta.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Set or update metadata item for specific collections
         #
         # ==== Parameters
@@ -24,13 +23,10 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def update_meta(collection_name, parent_id, key, value)
-
           if collection_name == "images" then
             if get_image_details(parent_id)
               self.data[:images][parent_id]['metadata'][key] = value
@@ -51,11 +47,8 @@ module Fog
           response.body = { "meta" => { key => value } }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/update_metadata.rb b/lib/fog/hp/requests/compute/update_metadata.rb
index cac456e..fbd9041 100644
--- a/lib/fog/hp/requests/compute/update_metadata.rb
+++ b/lib/fog/hp/requests/compute/update_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Update metadata for specific collections
         #
         # ==== Parameters
@@ -23,13 +22,10 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata.json"
           )
         end
-
       end
 
       class Mock
-
         def update_metadata(collection_name, parent_id, metadata = {})
-
           if collection_name == "images" then
             if get_image_details(parent_id)
               newmetadata = self.data[:images][parent_id]['metadata'].merge!(metadata)
@@ -50,11 +46,8 @@ module Fog
           response.body = { "metadata" => newmetadata }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute/update_server.rb b/lib/fog/hp/requests/compute/update_server.rb
index 3641f81..feae5dd 100644
--- a/lib/fog/hp/requests/compute/update_server.rb
+++ b/lib/fog/hp/requests/compute/update_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HP
       class Real
-
         # Update an existing server
         #
         # ==== Parameters
@@ -18,14 +17,12 @@ module Fog
             :path     => "servers/#{server_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def update_server(server_id, options)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if options['name']
               server['name'] = options['name']
             end
@@ -35,7 +32,6 @@ module Fog
             raise Fog::Compute::HP::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/add_security_group.rb b/lib/fog/hp/requests/compute_v2/add_security_group.rb
index 5d4a336..142b024 100644
--- a/lib/fog/hp/requests/compute_v2/add_security_group.rb
+++ b/lib/fog/hp/requests/compute_v2/add_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Add an existing security group to an existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'addSecurityGroup' => { 'name' => sg_name }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def add_security_group(server_id, sg_name)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -33,7 +30,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/allocate_address.rb b/lib/fog/hp/requests/compute_v2/allocate_address.rb
index 6358008..526c194 100644
--- a/lib/fog/hp/requests/compute_v2/allocate_address.rb
+++ b/lib/fog/hp/requests/compute_v2/allocate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Acquires a floating IP address
         #
         # Note: This method will proxy the call to the Network (Quantum) service,
@@ -18,7 +17,6 @@ module Fog
         #     * 'instance_id'<~String> - Id of the associated server instance
         #     * 'fixed_ip'<~String> - Fixed IP of the address
         def allocate_address
-
           request(
             :body     => nil,
             :expects  => 200,
@@ -26,11 +24,9 @@ module Fog
             :path     => 'os-floating-ips'
           )
         end
-
       end
 
       class Mock
-
         def allocate_address
           response = Excon::Response.new
           response.status = 200
@@ -46,7 +42,6 @@ module Fog
           response.body = { 'floating_ip' => data }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/associate_address.rb b/lib/fog/hp/requests/compute_v2/associate_address.rb
index 5e865c3..054e54f 100644
--- a/lib/fog/hp/requests/compute_v2/associate_address.rb
+++ b/lib/fog/hp/requests/compute_v2/associate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Associate a floating IP address with an existing server
         #
         # Note: This method will proxy the call to the Network (Quantum) service,
@@ -17,11 +16,9 @@ module Fog
           body = { 'addFloatingIp' => { 'server' => server_id, 'address' => ip_address }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def associate_address(server_id, ip_address)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -39,7 +36,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/attach_volume.rb b/lib/fog/hp/requests/compute_v2/attach_volume.rb
index a83eaf2..6e764b1 100644
--- a/lib/fog/hp/requests/compute_v2/attach_volume.rb
+++ b/lib/fog/hp/requests/compute_v2/attach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Attach a block storage volume to an existing server
         #
         # ==== Parameters
@@ -31,11 +30,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def attach_volume(server_id, volume_id, device)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -73,7 +70,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/create_image.rb b/lib/fog/hp/requests/compute_v2/create_image.rb
index f3f3ab6..8db4ce9 100644
--- a/lib/fog/hp/requests/compute_v2/create_image.rb
+++ b/lib/fog/hp/requests/compute_v2/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Create an image from an existing server
         #
         # ==== Parameters
@@ -20,14 +19,12 @@ module Fog
                  }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def create_image(server_id, name, metadata = {})
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = 202
 
             image_id = Fog::HP::Mock.uuid.to_s
@@ -55,9 +52,7 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/hp/requests/compute_v2/create_key_pair.rb b/lib/fog/hp/requests/compute_v2/create_key_pair.rb
index 3aea8f2..bb7e772 100644
--- a/lib/fog/hp/requests/compute_v2/create_key_pair.rb
+++ b/lib/fog/hp/requests/compute_v2/create_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Create a new keypair
         #
         # ==== Parameters
@@ -41,11 +40,9 @@ module Fog
             :path     => 'os-keypairs'
           )
         end
-
       end
 
       class Mock
-
         def create_key_pair(key_name, public_key = nil)
           response = Excon::Response.new
           response.status = 200
@@ -65,9 +62,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/create_persistent_server.rb b/lib/fog/hp/requests/compute_v2/create_persistent_server.rb
index 2123c3a..c502a6d 100644
--- a/lib/fog/hp/requests/compute_v2/create_persistent_server.rb
+++ b/lib/fog/hp/requests/compute_v2/create_persistent_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Create a new persistent server i.e. use a bootable volume instead of an image
         #
         # ==== Parameters
@@ -111,7 +110,6 @@ module Fog
             end
           end
 
-
           request(
             :body     => Fog::JSON.encode(data),
             :expects  => 202,
@@ -119,11 +117,9 @@ module Fog
             :path     => 'os-volumes_boot'
           )
         end
-
       end
 
       class Mock
-
         def create_persistent_server(name, flavor_id, block_device_mapping, options = {})
           response = Excon::Response.new
 
@@ -174,9 +170,7 @@ module Fog
             response.status = 400
             raise(Excon::Errors::BadRequest, 'No boot volume or boot image specified')
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/create_server.rb b/lib/fog/hp/requests/compute_v2/create_server.rb
index 383047f..3f10323 100644
--- a/lib/fog/hp/requests/compute_v2/create_server.rb
+++ b/lib/fog/hp/requests/compute_v2/create_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Create a new server
         #
         # ==== Parameters
@@ -110,11 +109,9 @@ module Fog
             :path     => 'servers'
           )
         end
-
       end
 
       class Mock
-
         def create_server(name, flavor_id, image_id, options = {})
           response = Excon::Response.new
           response.status = 202
@@ -161,7 +158,6 @@ module Fog
           response.body = { 'server' => data.merge({'adminPass' => 'password'}) }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/delete_image.rb b/lib/fog/hp/requests/compute_v2/delete_image.rb
index 6cf1017..86bb90c 100644
--- a/lib/fog/hp/requests/compute_v2/delete_image.rb
+++ b/lib/fog/hp/requests/compute_v2/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Delete an image
         #
         # ==== Parameters
@@ -15,14 +14,12 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_image(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             if image['status'] == 'SAVING'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -35,9 +32,7 @@ module Fog
           else
             raise Fog::Compute::HPV2::NotFound
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/delete_key_pair.rb b/lib/fog/hp/requests/compute_v2/delete_key_pair.rb
index 3101e77..c50f78c 100644
--- a/lib/fog/hp/requests/compute_v2/delete_key_pair.rb
+++ b/lib/fog/hp/requests/compute_v2/delete_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Delete a keypair
         #
         # ==== Parameters
@@ -15,11 +14,9 @@ module Fog
             :path     => "os-keypairs/#{key_name}"
           )
         end
-
       end
 
       class Mock
-
         def delete_key_pair(key_name)
           response = Excon::Response.new
           if self.data[:key_pairs][key_name]
@@ -31,7 +28,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/delete_meta.rb b/lib/fog/hp/requests/compute_v2/delete_meta.rb
index 54ccbf6..084b2aa 100644
--- a/lib/fog/hp/requests/compute_v2/delete_meta.rb
+++ b/lib/fog/hp/requests/compute_v2/delete_meta.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Delete metadata item for specific collections
         #
         # ==== Parameters
@@ -21,11 +20,9 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def delete_meta(collection_name, parent_id, key)
           if collection_name == "images" then
             if get_image_details(parent_id)
@@ -47,9 +44,7 @@ module Fog
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/delete_server.rb b/lib/fog/hp/requests/compute_v2/delete_server.rb
index 9199d46..9381513 100644
--- a/lib/fog/hp/requests/compute_v2/delete_server.rb
+++ b/lib/fog/hp/requests/compute_v2/delete_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Delete an existing server
         #
         # ==== Parameters
@@ -15,14 +14,12 @@ module Fog
             :path   => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_server(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if server['status'] == 'BUILD'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -36,7 +33,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/detach_volume.rb b/lib/fog/hp/requests/compute_v2/detach_volume.rb
index 27612d0..db7bb68 100644
--- a/lib/fog/hp/requests/compute_v2/detach_volume.rb
+++ b/lib/fog/hp/requests/compute_v2/detach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Detach a block storage volume from an existing server
         #
         # ==== Parameters
@@ -20,11 +19,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def detach_volume(server_id, volume_id)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -40,7 +37,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/disassociate_address.rb b/lib/fog/hp/requests/compute_v2/disassociate_address.rb
index a1a5f45..c74977e 100644
--- a/lib/fog/hp/requests/compute_v2/disassociate_address.rb
+++ b/lib/fog/hp/requests/compute_v2/disassociate_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Disassociate a floating IP address with an existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'removeFloatingIp' => { 'server' => server_id, 'address' => ip_address }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def disassociate_address(server_id, ip_address)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -32,7 +29,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_address.rb b/lib/fog/hp/requests/compute_v2/get_address.rb
index 104b2e4..5eb35a0 100644
--- a/lib/fog/hp/requests/compute_v2/get_address.rb
+++ b/lib/fog/hp/requests/compute_v2/get_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get details about an existing floating IP address
         #
         # Note: This method will proxy the call to the Network (Quantum) service,
@@ -26,11 +25,9 @@ module Fog
             :path     => "os-floating-ips/#{address_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_address(address_id)
           response = Excon::Response.new
           if address = self.data[:addresses][address_id]
@@ -41,7 +38,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_console_output.rb b/lib/fog/hp/requests/compute_v2/get_console_output.rb
index 2c08539..d4b85c2 100644
--- a/lib/fog/hp/requests/compute_v2/get_console_output.rb
+++ b/lib/fog/hp/requests/compute_v2/get_console_output.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Retrieve console output for specified instance
         #
         # ==== Parameters
@@ -17,15 +16,13 @@ module Fog
           body = { 'os-getConsoleOutput' => { 'length' => num_lines }}
           server_action(server_id, body, 200)
         end
-
       end
 
       class Mock
-
         def get_console_output(server_id, num_lines)
           output = ""
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             (1..num_lines).each {|i| output += "Console Output Line #{i} \r\n"}
             response.body = { 'output' => output }
             response.status = 200
@@ -34,7 +31,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_flavor_details.rb b/lib/fog/hp/requests/compute_v2/get_flavor_details.rb
index 551f71e..f2b292c 100644
--- a/lib/fog/hp/requests/compute_v2/get_flavor_details.rb
+++ b/lib/fog/hp/requests/compute_v2/get_flavor_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get details for flavor by id
         #
         # ==== Parameters
@@ -25,11 +24,9 @@ module Fog
             :path     => "flavors/#{flavor_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_flavor_details(flavor_id)
           response = Excon::Response.new
           flavor = {
@@ -50,7 +47,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_image_details.rb b/lib/fog/hp/requests/compute_v2/get_image_details.rb
index 7bf26fb..fd93f2b 100644
--- a/lib/fog/hp/requests/compute_v2/get_image_details.rb
+++ b/lib/fog/hp/requests/compute_v2/get_image_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get details for image by id
         #
         # ==== Parameters
@@ -32,14 +31,12 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_image_details(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'image' => image }
             response
@@ -47,9 +44,7 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/get_key_pair.rb b/lib/fog/hp/requests/compute_v2/get_key_pair.rb
index f5b3a5d..1da0408 100644
--- a/lib/fog/hp/requests/compute_v2/get_key_pair.rb
+++ b/lib/fog/hp/requests/compute_v2/get_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get details about a key pair
         #
         # ==== Parameters
@@ -22,11 +21,9 @@ module Fog
             :path     => "os-keypairs/#{key_name}"
           )
         end
-
       end
 
       class Mock
-
         def get_key_pair(key_name)
           response = Excon::Response.new
           if key_pair = self.data[:key_pairs][key_name]
@@ -37,7 +34,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_meta.rb b/lib/fog/hp/requests/compute_v2/get_meta.rb
index feefa0d..fb39081 100644
--- a/lib/fog/hp/requests/compute_v2/get_meta.rb
+++ b/lib/fog/hp/requests/compute_v2/get_meta.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get metadata item for specific collections
         #
         # ==== Parameters
@@ -22,11 +21,9 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def get_meta(collection_name, parent_id, key)
           if collection_name == "images" then
             if get_image_details(parent_id)
@@ -49,9 +46,7 @@ module Fog
           response.body = { 'meta' => { key => midata } }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/get_server_details.rb b/lib/fog/hp/requests/compute_v2/get_server_details.rb
index f7ba1de..ae05f76 100644
--- a/lib/fog/hp/requests/compute_v2/get_server_details.rb
+++ b/lib/fog/hp/requests/compute_v2/get_server_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get details about a server
         #
         # ==== Parameters
@@ -50,14 +49,12 @@ module Fog
             :path     => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_server_details(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = 200
             response.body = { 'server' => server }
             response
@@ -65,7 +62,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_server_volume_details.rb b/lib/fog/hp/requests/compute_v2/get_server_volume_details.rb
index 41ce083..5c7b860 100644
--- a/lib/fog/hp/requests/compute_v2/get_server_volume_details.rb
+++ b/lib/fog/hp/requests/compute_v2/get_server_volume_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Get a block storage volume attachments for an existing server
         #
         # ==== Parameters
@@ -20,11 +19,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def get_server_volume_details(server_id, volume_id)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -40,7 +37,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_vnc_console.rb b/lib/fog/hp/requests/compute_v2/get_vnc_console.rb
index e177819..2131eff 100644
--- a/lib/fog/hp/requests/compute_v2/get_vnc_console.rb
+++ b/lib/fog/hp/requests/compute_v2/get_vnc_console.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Retrieve VNC console for the specified instance
         #
         # ==== Parameters
@@ -19,18 +18,16 @@ module Fog
           body = { 'os-getVNCConsole' => { 'type' => type }}
           server_action(server_id, body, 200)
         end
-
       end
 
       class Mock
-
         def get_vnc_console(server_id, type='novnc')
           output = {
               'type' => type,
               'url'  => 'https://region.compute.hpcloud.com/vnc_auto.html?token=123ABX234'
           }
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.body = { 'console' => output }
             response.status = 200
           else
@@ -38,7 +35,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/get_windows_password.rb b/lib/fog/hp/requests/compute_v2/get_windows_password.rb
index 956eb9d..b3eb66a 100644
--- a/lib/fog/hp/requests/compute_v2/get_windows_password.rb
+++ b/lib/fog/hp/requests/compute_v2/get_windows_password.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Retrieves the encrypted administrator password for a server running Windows.
         #
         # ==== Parameters
@@ -17,11 +16,9 @@ module Fog
           # decrypt the log output to extract the encrypted, base64-encoded password
           encrypted_password = extract_password_from_log(log_output)
         end
-
       end
 
       class Mock
-
         def get_windows_password(server_id)
           # need to mock out the private key as well
           private_key = OpenSSL::PKey::RSA.generate(1024)
@@ -29,7 +26,7 @@ module Fog
           ### The original password is Passw0rd
           encoded_password = encrypt_using_public_key("Passw0rd", public_key)
 
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             # mock output for this call get_console_output(server_id, 400).body['output']
             log_output = "start junk [cloud-init] Encrypt random password\n-----BEGIN BASE64-ENCODED ENCRYPTED PASSWORD-----\n#{encoded_password}-----END BASE64-ENCODED ENCRYPTED PASSWORD-----\nend junk [cloud-init] Done\n"
             encrypted_password = extract_password_from_log(log_output)
diff --git a/lib/fog/hp/requests/compute_v2/list_addresses.rb b/lib/fog/hp/requests/compute_v2/list_addresses.rb
index 0a3fa62..4d80215 100644
--- a/lib/fog/hp/requests/compute_v2/list_addresses.rb
+++ b/lib/fog/hp/requests/compute_v2/list_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all Floating IP addresses
         #
         # Note: This method will proxy the call to the Network (Quantum) service,
@@ -23,11 +22,9 @@ module Fog
             :path     => 'os-floating-ips'
           )
         end
-
       end
 
       class Mock
-
         def list_addresses
           response = Excon::Response.new
           addresses = []
@@ -37,7 +34,6 @@ module Fog
           response.body = { 'floating_ips' => addresses }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_availability_zones.rb b/lib/fog/hp/requests/compute_v2/list_availability_zones.rb
index f0133b4..239709c 100644
--- a/lib/fog/hp/requests/compute_v2/list_availability_zones.rb
+++ b/lib/fog/hp/requests/compute_v2/list_availability_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all availability zones
         #
         # ==== Returns
@@ -20,11 +19,9 @@ module Fog
             :path     => 'os-availability-zone'
           )
         end
-
       end
 
       class Mock
-
         def list_availability_zones
           response = Excon::Response.new
           response.status = 200
@@ -40,7 +37,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_flavors.rb b/lib/fog/hp/requests/compute_v2/list_flavors.rb
index b010c65..9afc32d 100644
--- a/lib/fog/hp/requests/compute_v2/list_flavors.rb
+++ b/lib/fog/hp/requests/compute_v2/list_flavors.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all flavors (IDs and names only)
         #
         # ==== Parameters
@@ -26,11 +25,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_flavors
           response = Excon::Response.new
           response.status = 200
@@ -46,7 +43,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_flavors_detail.rb b/lib/fog/hp/requests/compute_v2/list_flavors_detail.rb
index f1a7637..b8b0307 100644
--- a/lib/fog/hp/requests/compute_v2/list_flavors_detail.rb
+++ b/lib/fog/hp/requests/compute_v2/list_flavors_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all flavors
         #
         # ==== Parameters
@@ -26,11 +25,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_flavors_detail(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -46,7 +43,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_images.rb b/lib/fog/hp/requests/compute_v2/list_images.rb
index 2dd93f3..c1d1cd5 100644
--- a/lib/fog/hp/requests/compute_v2/list_images.rb
+++ b/lib/fog/hp/requests/compute_v2/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all images (IDs and names only)
         #
         # ==== Parameters
@@ -29,11 +28,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_images(options = {})
           response = Excon::Response.new
           data = list_images_detail.body['images']
@@ -45,7 +42,6 @@ module Fog
           response.body = { 'images' => images }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_images_detail.rb b/lib/fog/hp/requests/compute_v2/list_images_detail.rb
index 168f6b4..cf6e768 100644
--- a/lib/fog/hp/requests/compute_v2/list_images_detail.rb
+++ b/lib/fog/hp/requests/compute_v2/list_images_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all images
         #
         # ==== Parameters
@@ -39,11 +38,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_images_detail(options = {})
           response = Excon::Response.new
 
@@ -59,7 +56,6 @@ module Fog
           response.body = { 'images' => images }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_key_pairs.rb b/lib/fog/hp/requests/compute_v2/list_key_pairs.rb
index 2e710d6..849d162 100644
--- a/lib/fog/hp/requests/compute_v2/list_key_pairs.rb
+++ b/lib/fog/hp/requests/compute_v2/list_key_pairs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all key pairs
         #
         # ==== Returns
@@ -20,11 +19,9 @@ module Fog
             :path     => 'os-keypairs'
           )
         end
-
       end
 
       class Mock
-
         def list_key_pairs
           response = Excon::Response.new
 
@@ -35,7 +32,6 @@ module Fog
           response.body = { 'keypairs' => key_pairs }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_limits.rb b/lib/fog/hp/requests/compute_v2/list_limits.rb
index d214ab2..464fae3 100644
--- a/lib/fog/hp/requests/compute_v2/list_limits.rb
+++ b/lib/fog/hp/requests/compute_v2/list_limits.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List the limits on resources on a per tenant basis (absolute and rate limits)
         #
         # ==== Returns
@@ -42,11 +41,9 @@ module Fog
             :path     => 'limits'
           )
         end
-
       end
 
       class Mock
-
         def list_limits
           response = Excon::Response.new
           limits = self.data[:limits].values
@@ -55,7 +52,6 @@ module Fog
           response.body = { 'limits' => limits }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_metadata.rb b/lib/fog/hp/requests/compute_v2/list_metadata.rb
index 1dbe464..5883209 100644
--- a/lib/fog/hp/requests/compute_v2/list_metadata.rb
+++ b/lib/fog/hp/requests/compute_v2/list_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List metadata for specific collections
         #
         # ==== Parameters
@@ -21,11 +20,9 @@ module Fog
             :path     => "/#{collection_name}/#{parent_id}/metadata"
           )
         end
-
       end
 
       class Mock
-
         def list_metadata(collection_name, parent_id)
           mdata = {}
           if collection_name == "images" then
@@ -49,7 +46,6 @@ module Fog
           response.body = {'metadata' => mdata}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_server_addresses.rb b/lib/fog/hp/requests/compute_v2/list_server_addresses.rb
index 9e7bd76..8a91246 100644
--- a/lib/fog/hp/requests/compute_v2/list_server_addresses.rb
+++ b/lib/fog/hp/requests/compute_v2/list_server_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all server addresses
         #
         # ==== Parameters
@@ -20,14 +19,12 @@ module Fog
             :path     => "servers/#{server_id}/ips"
           )
         end
-
       end
 
       class Mock
-
         def list_server_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = 200
             response.body = { 'addresses' => server['addresses'] }
             response
@@ -35,7 +32,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_server_addresses_by_network.rb b/lib/fog/hp/requests/compute_v2/list_server_addresses_by_network.rb
index b02fdaf..fb7be61 100644
--- a/lib/fog/hp/requests/compute_v2/list_server_addresses_by_network.rb
+++ b/lib/fog/hp/requests/compute_v2/list_server_addresses_by_network.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List private server addresses
         #
         # ==== Parameters
@@ -22,14 +21,12 @@ module Fog
             :path     => "servers/#{server_id}/ips/#{Fog::HP.escape(network_name)}"
           )
         end
-
       end
 
       class Mock
-
         def list_server_addresses_by_network(server_id, network_name)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = 200
             # get the addresses for the network, which is 'custom' in case of mocks
             address = server['addresses'].select { |key, _| key == network_name}
@@ -39,7 +36,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_server_volumes.rb b/lib/fog/hp/requests/compute_v2/list_server_volumes.rb
index 7ea7c59..90e556a 100644
--- a/lib/fog/hp/requests/compute_v2/list_server_volumes.rb
+++ b/lib/fog/hp/requests/compute_v2/list_server_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all volumes attached to a server
         #
         # ==== Parameters
@@ -25,11 +24,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock  # :nodoc:all
-
         def list_server_volumes(server_id)
           response = Excon::Response.new
           volumes = []
@@ -42,7 +39,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_servers.rb b/lib/fog/hp/requests/compute_v2/list_servers.rb
index 889faf5..bfec09b 100644
--- a/lib/fog/hp/requests/compute_v2/list_servers.rb
+++ b/lib/fog/hp/requests/compute_v2/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all servers (IDs and names only)
         #
         # ==== Parameters
@@ -30,11 +29,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_servers(options = {})
           response = Excon::Response.new
           data = list_servers_detail.body['servers']
@@ -46,7 +43,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/list_servers_detail.rb b/lib/fog/hp/requests/compute_v2/list_servers_detail.rb
index f56b099..1e6b311 100644
--- a/lib/fog/hp/requests/compute_v2/list_servers_detail.rb
+++ b/lib/fog/hp/requests/compute_v2/list_servers_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # List all servers details
         #
         # ==== Parameters
@@ -51,11 +50,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_servers_detail(options = {})
           response = Excon::Response.new
 
@@ -73,7 +70,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/reboot_server.rb b/lib/fog/hp/requests/compute_v2/reboot_server.rb
index c518d0d..375139b 100644
--- a/lib/fog/hp/requests/compute_v2/reboot_server.rb
+++ b/lib/fog/hp/requests/compute_v2/reboot_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Reboot an existing server
         #
         # ==== Parameters
@@ -12,14 +11,12 @@ module Fog
           body = { 'reboot' => { 'type' => type }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def reboot_server(server_id, type = 'SOFT')
           response = Excon::Response.new
-          if list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             self.data[:servers][server_id]['status'] = (type == 'SOFT') ? 'REBOOT' : 'HARD_REBOOT'
             response.status = 202
             response
@@ -27,7 +24,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/rebuild_server.rb b/lib/fog/hp/requests/compute_v2/rebuild_server.rb
index 3c21e4b..0403d7b 100644
--- a/lib/fog/hp/requests/compute_v2/rebuild_server.rb
+++ b/lib/fog/hp/requests/compute_v2/rebuild_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Rebuild an existing server
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
         #       * 'contents'<~String> - Contents of file (10kb total of contents)
         #       * 'path'<~String> - Path to file (255 bytes total of path strings)
         def rebuild_server(server_id, image_id, name, options={})
-
           body = { 'rebuild' => {
             'imageRef' => image_id,
             'name' => name
@@ -39,13 +37,11 @@ module Fog
           end
           server_action(server_id, body, 202)
         end
-
       end
 
       class Mock
-
         def rebuild_server(server_id, image_id, name, options={})
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             if response = get_server_details(server_id)
               response.body['server']['name'] = name
               response.body['server']['image']['id'] = image_id
@@ -75,7 +71,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound.new("Image with image_id #{image_id} not found.")
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/release_address.rb b/lib/fog/hp/requests/compute_v2/release_address.rb
index e379d9f..06e63f8 100644
--- a/lib/fog/hp/requests/compute_v2/release_address.rb
+++ b/lib/fog/hp/requests/compute_v2/release_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Release an existing floating IP address
         #
         # ==== Parameters
@@ -15,11 +14,9 @@ module Fog
             :path   => "os-floating-ips/#{address_id}"
           )
         end
-
       end
 
       class Mock
-
         def release_address(address_id)
           response = Excon::Response.new
           if self.data[:addresses][address_id]
@@ -31,7 +28,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/remove_security_group.rb b/lib/fog/hp/requests/compute_v2/remove_security_group.rb
index 5275c37..0c5c409 100644
--- a/lib/fog/hp/requests/compute_v2/remove_security_group.rb
+++ b/lib/fog/hp/requests/compute_v2/remove_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Remove an existing security group from an existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'removeSecurityGroup' => { 'name' => sg_name }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def remove_security_group(server_id, sg_name)
           response = Excon::Response.new
           if server = self.data[:servers][server_id]
@@ -30,7 +27,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/server_action.rb b/lib/fog/hp/requests/compute_v2/server_action.rb
index 7845a23..751b3e5 100644
--- a/lib/fog/hp/requests/compute_v2/server_action.rb
+++ b/lib/fog/hp/requests/compute_v2/server_action.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Server actions for an existing server
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :path     => "servers/#{server_id}/action"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/compute_v2/set_metadata.rb b/lib/fog/hp/requests/compute_v2/set_metadata.rb
index edfd5ee..0d48be7 100644
--- a/lib/fog/hp/requests/compute_v2/set_metadata.rb
+++ b/lib/fog/hp/requests/compute_v2/set_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Set metadata for specific collections
         #
         # ==== Parameters
@@ -23,13 +22,10 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata"
           )
         end
-
       end
 
       class Mock
-
         def set_metadata(collection_name, parent_id, metadata = {})
-
           if collection_name == "images" then
             if get_image_details(parent_id)
               self.data[:images][parent_id]['metadata'] = metadata
@@ -50,11 +46,8 @@ module Fog
           response.body = { "metadata" => metadata }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/update_meta.rb b/lib/fog/hp/requests/compute_v2/update_meta.rb
index ecd3180..c12a666 100644
--- a/lib/fog/hp/requests/compute_v2/update_meta.rb
+++ b/lib/fog/hp/requests/compute_v2/update_meta.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Set or update metadata item for specific collections
         #
         # ==== Parameters
@@ -24,13 +23,10 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def update_meta(collection_name, parent_id, key, value)
-
           if collection_name == "images" then
             if get_image_details(parent_id)
               self.data[:images][parent_id]['metadata'][key] = value
@@ -51,11 +47,8 @@ module Fog
           response.body = { "meta" => { key => value } }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/update_metadata.rb b/lib/fog/hp/requests/compute_v2/update_metadata.rb
index cf4e8a3..a7461c7 100644
--- a/lib/fog/hp/requests/compute_v2/update_metadata.rb
+++ b/lib/fog/hp/requests/compute_v2/update_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Update metadata for specific collections
         #
         # ==== Parameters
@@ -23,13 +22,10 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata"
           )
         end
-
       end
 
       class Mock
-
         def update_metadata(collection_name, parent_id, metadata = {})
-
           if collection_name == "images" then
             if get_image_details(parent_id)
               newmetadata = self.data[:images][parent_id]['metadata'].merge!(metadata)
@@ -50,11 +46,8 @@ module Fog
           response.body = { "metadata" => newmetadata }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/compute_v2/update_server.rb b/lib/fog/hp/requests/compute_v2/update_server.rb
index ee99426..8cb62b2 100644
--- a/lib/fog/hp/requests/compute_v2/update_server.rb
+++ b/lib/fog/hp/requests/compute_v2/update_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class HPV2
       class Real
-
         # Update an existing server
         #
         # ==== Parameters
@@ -46,14 +45,12 @@ module Fog
             :path     => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def update_server(server_id, options)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if options['name']
               server['name'] = options['name']
             end
@@ -66,7 +63,6 @@ module Fog
             raise Fog::Compute::HPV2::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/dns/create_domain.rb b/lib/fog/hp/requests/dns/create_domain.rb
index a0d2488..94212c5 100644
--- a/lib/fog/hp/requests/dns/create_domain.rb
+++ b/lib/fog/hp/requests/dns/create_domain.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class DNS
-
         # Create a new DNS domain
         #
         # ==== Parameters
diff --git a/lib/fog/hp/requests/dns/create_record.rb b/lib/fog/hp/requests/dns/create_record.rb
index 614a974..1679b37 100644
--- a/lib/fog/hp/requests/dns/create_record.rb
+++ b/lib/fog/hp/requests/dns/create_record.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class DNS
       class Real
-
         # Create a new DNS record
         #
         # ==== Parameters
@@ -45,13 +44,12 @@ module Fog
               :method  => 'POST',
               :path    => "domains/#{domain_id}/records"
           )
-
         end
       end
       class Mock
         def create_record(domain_id, name, type, data, options={})
           response        = Excon::Response.new
-          if list_domains.body['domains'].detect {|_| _['id'] == domain_id}
+          if list_domains.body['domains'].find {|_| _['id'] == domain_id}
             response.status = 200
             data = {
                 'id'           => Fog::HP::Mock.uuid.to_s,
@@ -76,4 +74,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/hp/requests/dns/delete_domain.rb b/lib/fog/hp/requests/dns/delete_domain.rb
index 81acd27..bcd4fc9 100644
--- a/lib/fog/hp/requests/dns/delete_domain.rb
+++ b/lib/fog/hp/requests/dns/delete_domain.rb
@@ -1,9 +1,7 @@
 module Fog
   module HP
     class DNS
-
       class Real
-
         # Delete a DNS domain
         #
         # ==== Parameters
@@ -16,22 +14,19 @@ module Fog
               :path    => "domains/#{domain_id}"
           )
         end
-
       end
 
       class Mock
         def delete_domain(domain_id)
           response = Excon::Response.new
-          if list_domains.body['domains'].detect { |_| _['id'] == domain_id }
+          if list_domains.body['domains'].find { |_| _['id'] == domain_id }
             response.status = 202
             response
           else
             raise Fog::HP::DNS::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/dns/delete_record.rb b/lib/fog/hp/requests/dns/delete_record.rb
index ff868af..bab757d 100644
--- a/lib/fog/hp/requests/dns/delete_record.rb
+++ b/lib/fog/hp/requests/dns/delete_record.rb
@@ -20,7 +20,7 @@ module Fog
       class Mock
         def delete_record(domain_id, record_id)
           response = Excon::Response.new
-          if list_records_in_a_domain(domain_id).body['records'].detect { |_| _['id'] == record_id }
+          if list_records_in_a_domain(domain_id).body['records'].find { |_| _['id'] == record_id }
             response.status = 200
             response
           else
@@ -28,9 +28,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/dns/get_domain.rb b/lib/fog/hp/requests/dns/get_domain.rb
index 80ed188..534b805 100644
--- a/lib/fog/hp/requests/dns/get_domain.rb
+++ b/lib/fog/hp/requests/dns/get_domain.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class DNS
-
       # Get details for existing DNS domain
       #
       # ==== Parameters
@@ -26,10 +25,9 @@ module Fog
         end
       end
       class Mock
-
         def get_domain(domain_id)
           response = Excon::Response.new
-          if domain = list_domains.body['domains'].detect { |_| _['id'] == domain_id }
+          if domain = list_domains.body['domains'].find { |_| _['id'] == domain_id }
             response.status = 200
             response.body = domain
             response
diff --git a/lib/fog/hp/requests/dns/get_record.rb b/lib/fog/hp/requests/dns/get_record.rb
index ecef4ae..6accd2d 100644
--- a/lib/fog/hp/requests/dns/get_record.rb
+++ b/lib/fog/hp/requests/dns/get_record.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class DNS
       class Real
-
         # Get details of an existing DNS record
         #
         # ==== Parameters
@@ -33,7 +32,7 @@ module Fog
       class Mock
         def get_record(domain_id, record_id)
           response = Excon::Response.new
-          if record = list_records_in_a_domain(domain_id).body['records'].detect { |_| _['id'] == record_id }
+          if record = list_records_in_a_domain(domain_id).body['records'].find { |_| _['id'] == record_id }
             response.status = 200
             response.body = record
             response
diff --git a/lib/fog/hp/requests/dns/get_servers_hosting_domain.rb b/lib/fog/hp/requests/dns/get_servers_hosting_domain.rb
index 0ef6b33..4e0a1b7 100644
--- a/lib/fog/hp/requests/dns/get_servers_hosting_domain.rb
+++ b/lib/fog/hp/requests/dns/get_servers_hosting_domain.rb
@@ -24,14 +24,12 @@ module Fog
               :path    => "domains/#{domain_id}/servers"
           )
         end
-
       end
 
       class Mock
-
         def get_servers_hosting_domain(domain_id)
           response = Excon::Response.new
-          if list_domains.body['domains'].detect { |_| _['id'] == domain_id }
+          if list_domains.body['domains'].find { |_| _['id'] == domain_id }
             response.status = 200
             response.body   = { 'servers' => dummy_servers }
             response
diff --git a/lib/fog/hp/requests/dns/list_domains.rb b/lib/fog/hp/requests/dns/list_domains.rb
index 2dff79a..60c7bf2 100644
--- a/lib/fog/hp/requests/dns/list_domains.rb
+++ b/lib/fog/hp/requests/dns/list_domains.rb
@@ -20,7 +20,6 @@ module Fog
               :path    => 'domains'
           )
         end
-
       end
 
       class Mock
@@ -31,7 +30,6 @@ module Fog
           response.body = { 'domains' => domains }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/dns/list_records_in_a_domain.rb b/lib/fog/hp/requests/dns/list_records_in_a_domain.rb
index 35bb783..50831e8 100644
--- a/lib/fog/hp/requests/dns/list_records_in_a_domain.rb
+++ b/lib/fog/hp/requests/dns/list_records_in_a_domain.rb
@@ -28,12 +28,11 @@ module Fog
               :path    => "domains/#{domain_id}/records"
           )
         end
-
       end
       class Mock
         def list_records_in_a_domain(domain_id)
           response = Excon::Response.new
-          if domain = list_domains.body['domains'].detect { |_| _['id'] == domain_id }
+          if domain = list_domains.body['domains'].find { |_| _['id'] == domain_id }
             response.status = 200
             response.body = { 'records' => records_for_domain(domain_id) }
           else
@@ -49,7 +48,6 @@ module Fog
           records
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/dns/update_domain.rb b/lib/fog/hp/requests/dns/update_domain.rb
index 0873522..5fe1811 100644
--- a/lib/fog/hp/requests/dns/update_domain.rb
+++ b/lib/fog/hp/requests/dns/update_domain.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class DNS
-
       class Real
         # Update an existing DNS domain
         #
@@ -42,7 +41,7 @@ module Fog
       class Mock
         def update_domain(domain_id, options={})
           response = Excon::Response.new
-          if domain = list_domains.body['domains'].detect { |_| _['id'] == domain_id }
+          if domain = list_domains.body['domains'].find { |_| _['id'] == domain_id }
 
             domain['name']          = options[:name]   if options[:name]
             domain['description']   = options[:description]   if options[:description]
diff --git a/lib/fog/hp/requests/dns/update_record.rb b/lib/fog/hp/requests/dns/update_record.rb
index 9b60886..265c6c0 100644
--- a/lib/fog/hp/requests/dns/update_record.rb
+++ b/lib/fog/hp/requests/dns/update_record.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class DNS
-
       class Real
         # Update an existing DNS record
         #
@@ -43,13 +42,12 @@ module Fog
             :path    => "domains/#{domain_id}/records/#{record_id}"
           )
         end
-
       end
 
       class Mock
         def update_record(domain_id, record_id, options)
           response = Excon::Response.new
-          if record = list_records_in_a_domain(domain_id).body['records'].detect { |_| _['id'] == record_id }
+          if record = list_records_in_a_domain(domain_id).body['records'].find { |_| _['id'] == record_id }
             record['name']      = options[:name]      if options[:name]
             record['type']      = options[:type]      if options[:type]
             record['data']      = options[:data]      if options[:data]
@@ -62,9 +60,7 @@ module Fog
             raise Fog::HP::DNS::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/lb/create_load_balancer.rb b/lib/fog/hp/requests/lb/create_load_balancer.rb
index 1743a44..d03e523 100644
--- a/lib/fog/hp/requests/lb/create_load_balancer.rb
+++ b/lib/fog/hp/requests/lb/create_load_balancer.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # Create a new load balancer
       #
       # ==== Parameters
diff --git a/lib/fog/hp/requests/lb/create_load_balancer_node.rb b/lib/fog/hp/requests/lb/create_load_balancer_node.rb
index 316c4c7..5b787be 100644
--- a/lib/fog/hp/requests/lb/create_load_balancer_node.rb
+++ b/lib/fog/hp/requests/lb/create_load_balancer_node.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # Create a new load balancer node
       #
       # ==== Parameters
@@ -40,7 +39,6 @@ module Fog
             :method  => 'POST',
             :path    => "loadbalancers/#{load_balancer_id}/nodes"
           )
-
         end
       end
       class Mock
@@ -63,10 +61,8 @@ module Fog
           else
             raise Fog::HP::LB::NotFound
           end
-
         end
       end
     end
-
   end
 end
diff --git a/lib/fog/hp/requests/lb/delete_load_balancer.rb b/lib/fog/hp/requests/lb/delete_load_balancer.rb
index 1b62f53..e6c1b56 100644
--- a/lib/fog/hp/requests/lb/delete_load_balancer.rb
+++ b/lib/fog/hp/requests/lb/delete_load_balancer.rb
@@ -1,14 +1,12 @@
 module Fog
   module HP
       class LB
-
         # Delete an existing load balancer
         #
         # ==== Parameters
         # * 'load_balancer_id'<~String> - UUId of load balancer to delete
         #
         class Real
-
           def delete_load_balancer(load_balancer_id)
             request(
                 :expects => 202,
@@ -16,20 +14,18 @@ module Fog
                 :path    => "loadbalancers/#{load_balancer_id}"
             )
           end
-
         end
 
         class Mock
           def delete_load_balancer(load_balancer_id)
             response = Excon::Response.new
-            if list_load_balancers.body['loadBalancers'].detect { |_| _['id'] == load_balancer_id }
+            if list_load_balancers.body['loadBalancers'].find { |_| _['id'] == load_balancer_id }
               response.status = 202
               response
             else
               raise Fog::HP::LB::NotFound
             end
           end
-
         end
       end
   end
diff --git a/lib/fog/hp/requests/lb/delete_load_balancer_node.rb b/lib/fog/hp/requests/lb/delete_load_balancer_node.rb
index fd7d6d3..e518c9e 100644
--- a/lib/fog/hp/requests/lb/delete_load_balancer_node.rb
+++ b/lib/fog/hp/requests/lb/delete_load_balancer_node.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # Delete an existing load balancer node
       #
       # ==== Parameters
@@ -9,7 +8,6 @@ module Fog
       # * 'node_id'<~String> - UUId of node to delete
       #
       class Real
-
         def delete_load_balancer_node(load_balancer_id, node_id)
           request(
             :expects => 202,
@@ -17,10 +15,8 @@ module Fog
             :path    => "loadbalancers/#{load_balancer_id}/nodes/#{node_id}"
           )
         end
-
       end
       class Mock
-
         def delete_load_balancer_node(load_balancer_id, node_id)
           response = Excon::Response.new
           if get_load_balancer(load_balancer_id)
diff --git a/lib/fog/hp/requests/lb/get_load_balancer.rb b/lib/fog/hp/requests/lb/get_load_balancer.rb
index 508615b..493eb6c 100644
--- a/lib/fog/hp/requests/lb/get_load_balancer.rb
+++ b/lib/fog/hp/requests/lb/get_load_balancer.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # Get details for an existing load balancer
       #
       # ==== Parameters
@@ -40,12 +39,11 @@ module Fog
             :path    => "loadbalancers/#{load_balancer_id}"
           )
         end
-
       end
       class Mock
         def get_load_balancer(load_balancer_id)
           response = Excon::Response.new
-          if lb = list_load_balancers.body['loadBalancers'].detect { |_| _['id'] == load_balancer_id }
+          if lb = list_load_balancers.body['loadBalancers'].find { |_| _['id'] == load_balancer_id }
             response.status = 200
             response.body = lb
             response
@@ -53,7 +51,6 @@ module Fog
             raise Fog::HP::LB::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/lb/get_load_balancer_node.rb b/lib/fog/hp/requests/lb/get_load_balancer_node.rb
index 7ed11bb..ee91821 100644
--- a/lib/fog/hp/requests/lb/get_load_balancer_node.rb
+++ b/lib/fog/hp/requests/lb/get_load_balancer_node.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class LB
       class Real
-
       # Get details for an existing load balancer node
       #
       # ==== Parameters
@@ -40,14 +39,12 @@ module Fog
           else
             raise Fog::HP::LB::NotFound
           end
-
         end
 
         def find_node(load_balancer_id, node_id)
           nodes = list_load_balancer_nodes(load_balancer_id).body['nodes']
-          nodes.detect {|n| n['id'] == node_id}
+          nodes.find {|n| n['id'] == node_id}
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/lb/list_algorithms.rb b/lib/fog/hp/requests/lb/list_algorithms.rb
index 8842b5f..e10e673 100644
--- a/lib/fog/hp/requests/lb/list_algorithms.rb
+++ b/lib/fog/hp/requests/lb/list_algorithms.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # List algorithms
       #
       # ==== Returns
diff --git a/lib/fog/hp/requests/lb/list_limits.rb b/lib/fog/hp/requests/lb/list_limits.rb
index ea3476b..58cce9e 100644
--- a/lib/fog/hp/requests/lb/list_limits.rb
+++ b/lib/fog/hp/requests/lb/list_limits.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # List limits
       #
       # ==== Returns
@@ -15,7 +14,6 @@ module Fog
       #           * 'maxVIPsPerLoadBalancer'<~Integer> - Limit of the virtual IPs per load balancer
       #           * 'maxNodesPerLoadBalancer'<~Integer> - Limit of the nodes per load balancer
       class Real
-
         def list_limits
           request(
             :expects => 200,
@@ -23,7 +21,6 @@ module Fog
             :path    => 'limits'
           )
         end
-
       end
       class Mock
         def list_limits
@@ -33,7 +30,6 @@ module Fog
           response.body   = { 'limits' => limits }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/lb/list_load_balancer_nodes.rb b/lib/fog/hp/requests/lb/list_load_balancer_nodes.rb
index de68ee5..97d62c7 100644
--- a/lib/fog/hp/requests/lb/list_load_balancer_nodes.rb
+++ b/lib/fog/hp/requests/lb/list_load_balancer_nodes.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # List all load balancer nodes
       #
       # ==== Returns
@@ -34,7 +33,6 @@ module Fog
             raise Fog::HP::LB::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/lb/list_load_balancer_virtual_ips.rb b/lib/fog/hp/requests/lb/list_load_balancer_virtual_ips.rb
index 9d2f18d..5dbcca1 100644
--- a/lib/fog/hp/requests/lb/list_load_balancer_virtual_ips.rb
+++ b/lib/fog/hp/requests/lb/list_load_balancer_virtual_ips.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # List virtual IPs for an existing load balancer
       #
       # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :path    => "loadbalancers/#{load_balancer_id}/virtualips"
           )
         end
-
       end
       class Mock
         def list_load_balancer_virtual_ips(load_balancer_id)
@@ -37,7 +35,6 @@ module Fog
             raise Fog::HP::LB::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/lb/list_load_balancers.rb b/lib/fog/hp/requests/lb/list_load_balancers.rb
index 534dd64..fa17369 100644
--- a/lib/fog/hp/requests/lb/list_load_balancers.rb
+++ b/lib/fog/hp/requests/lb/list_load_balancers.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # List all load balancers
       #
       # ==== Returns
@@ -25,7 +24,6 @@ module Fog
             :path    => 'loadbalancers'
           )
         end
-
       end
       class Mock
         def list_load_balancers
diff --git a/lib/fog/hp/requests/lb/list_protocols.rb b/lib/fog/hp/requests/lb/list_protocols.rb
index e083079..5ad76db 100644
--- a/lib/fog/hp/requests/lb/list_protocols.rb
+++ b/lib/fog/hp/requests/lb/list_protocols.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # List protocols
       #
       # ==== Returns
diff --git a/lib/fog/hp/requests/lb/list_versions.rb b/lib/fog/hp/requests/lb/list_versions.rb
index dd262b0..989cf58 100644
--- a/lib/fog/hp/requests/lb/list_versions.rb
+++ b/lib/fog/hp/requests/lb/list_versions.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class LB
       class Real
-
         def list_versions
           request(
             :expects => 200,
@@ -12,7 +11,6 @@ module Fog
         end
       end
       class Mock
-
         def list_versions
           response        = Excon::Response.new
           versions       = self.data[:versions].values
@@ -20,7 +18,6 @@ module Fog
           response.body   = { 'versions' => versions }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/lb/update_load_balancer.rb b/lib/fog/hp/requests/lb/update_load_balancer.rb
index 0ce4786..4052ff9 100644
--- a/lib/fog/hp/requests/lb/update_load_balancer.rb
+++ b/lib/fog/hp/requests/lb/update_load_balancer.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # Update an existing load balancer
       #
       # ==== Parameters
@@ -24,12 +23,11 @@ module Fog
             :path    => "loadbalancers/#{load_balancer_id}"
           )
         end
-
       end
       class Mock
         def update_load_balancer(load_balancer_id, options={})
           response = Excon::Response.new
-          if lb = list_load_balancers.body['loadBalancers'].detect { |_| _['id'] == load_balancer_id }
+          if lb = list_load_balancers.body['loadBalancers'].find { |_| _['id'] == load_balancer_id }
 
             lb['name']      = options['name']      if options['name']
             lb['algorithm'] = options['algorithm'] if options['algorithm']
diff --git a/lib/fog/hp/requests/lb/update_load_balancer_node.rb b/lib/fog/hp/requests/lb/update_load_balancer_node.rb
index 3846394..44cff33 100644
--- a/lib/fog/hp/requests/lb/update_load_balancer_node.rb
+++ b/lib/fog/hp/requests/lb/update_load_balancer_node.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class LB
-
       # Update an existing load balancer node
       #
       # ==== Parameters
@@ -10,7 +9,6 @@ module Fog
       # * options<~Hash>:
       #   * 'condition'<~String> - Condition for the node. Valid values are []'ENABLED', 'DISABLED']
       class Real
-
         def update_load_balancer_node(load_balancer_id, node_id, condition)
           data = {
             'condition' => condition
@@ -21,7 +19,6 @@ module Fog
             :method  => 'PUT',
             :path    => "loadbalancers/#{load_balancer_id}/nodes/#{node_id}"
           )
-
         end
       end
       class Mock
@@ -52,7 +49,6 @@ module Fog
           new_nodes = nodes.reject {|n| n['id'] == node_id}
           new_nodes << node
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/add_router_interface.rb b/lib/fog/hp/requests/network/add_router_interface.rb
index 99c0b86..96e2f38 100644
--- a/lib/fog/hp/requests/network/add_router_interface.rb
+++ b/lib/fog/hp/requests/network/add_router_interface.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Add an internal router interface, thus attaching a subnet or a port to an existing router
         #
@@ -38,7 +37,7 @@ module Fog
       class Mock
         def add_router_interface(router_id, subnet_id=nil, port_id=nil, options = {})
           response = Excon::Response.new
-          if list_routers.body['routers'].detect {|_| _['id'] == router_id}
+          if list_routers.body['routers'].find {|_| _['id'] == router_id}
             # Either a subnet or a port can be passed, not both
             if (subnet_id && port_id) || (subnet_id.nil? && port_id.nil?)
               raise ArgumentError.new('Either a subnet or a port can be passed, not both')
@@ -69,7 +68,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/associate_floating_ip.rb b/lib/fog/hp/requests/network/associate_floating_ip.rb
index b79b0d5..f8f8e18 100644
--- a/lib/fog/hp/requests/network/associate_floating_ip.rb
+++ b/lib/fog/hp/requests/network/associate_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Associate port with floating ip
         #
@@ -45,7 +44,7 @@ module Fog
       class Mock
         def associate_floating_ip(floating_ip_id, port_id, options = {})
           response = Excon::Response.new
-          if list_floating_ips.body['floatingips'].detect {|_| _['id'] == floating_ip_id}
+          if list_floating_ips.body['floatingips'].find {|_| _['id'] == floating_ip_id}
             response.status = 201
             data = {
               'id'                  => floating_ip_id,
@@ -65,7 +64,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_floating_ip.rb b/lib/fog/hp/requests/network/create_floating_ip.rb
index 5658eda..5226236 100644
--- a/lib/fog/hp/requests/network/create_floating_ip.rb
+++ b/lib/fog/hp/requests/network/create_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Create a new floating ip
         #
@@ -63,7 +62,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_network.rb b/lib/fog/hp/requests/network/create_network.rb
index c864adc..cec0d43 100644
--- a/lib/fog/hp/requests/network/create_network.rb
+++ b/lib/fog/hp/requests/network/create_network.rb
@@ -1,9 +1,7 @@
 module Fog
   module HP
     class Network
-
       class Real
-
         # Create a new server
         #
         # ==== Parameters
@@ -62,7 +60,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_port.rb b/lib/fog/hp/requests/network/create_port.rb
index 1a3f08d..0c3b0e7 100644
--- a/lib/fog/hp/requests/network/create_port.rb
+++ b/lib/fog/hp/requests/network/create_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Create a new port
         #
@@ -62,7 +61,7 @@ module Fog
       class Mock
         def create_port(network_id, options = {})
           response = Excon::Response.new
-          if list_networks.body['networks'].detect {|_| _['id'] == network_id}
+          if list_networks.body['networks'].find {|_| _['id'] == network_id}
             response.status = 201
             data = {
               'id'             => Fog::HP::Mock.uuid.to_s,
@@ -86,7 +85,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_router.rb b/lib/fog/hp/requests/network/create_router.rb
index c4bb996..b06c725 100644
--- a/lib/fog/hp/requests/network/create_router.rb
+++ b/lib/fog/hp/requests/network/create_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Create a new router
         #
@@ -58,7 +57,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_security_group.rb b/lib/fog/hp/requests/network/create_security_group.rb
index 07584e4..21b2418 100644
--- a/lib/fog/hp/requests/network/create_security_group.rb
+++ b/lib/fog/hp/requests/network/create_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # Create a new security group
         #
         # ==== Parameters
@@ -45,11 +44,9 @@ module Fog
             :path     => 'security-groups'
           )
         end
-
       end
 
       class Mock
-
         def create_security_group(options = {})
           # Spaces are NOT removed from name and description, as in case of compute sec groups
           tenant_id = Fog::Mock.random_numbers(14).to_s
@@ -92,9 +89,7 @@ module Fog
           response.body = { 'security_group' => data }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_security_group_rule.rb b/lib/fog/hp/requests/network/create_security_group_rule.rb
index 51c0335..d10dedb 100644
--- a/lib/fog/hp/requests/network/create_security_group_rule.rb
+++ b/lib/fog/hp/requests/network/create_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # Create a new security group rule
         #
         # ==== Parameters
@@ -51,11 +50,9 @@ module Fog
             :path     => 'security-group-rules'
           )
         end
-
       end
 
       class Mock
-
         def create_security_group_rule(security_group_id, direction, options = {})
           response = Excon::Response.new
           data = {
@@ -75,9 +72,7 @@ module Fog
           response.body = { 'security_group_rule' => data }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/create_subnet.rb b/lib/fog/hp/requests/network/create_subnet.rb
index 76f8089..a823bc2 100644
--- a/lib/fog/hp/requests/network/create_subnet.rb
+++ b/lib/fog/hp/requests/network/create_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Create a new subnet
         #
@@ -64,7 +63,7 @@ module Fog
 
       class Mock
         def create_subnet(network_id, cidr, ip_version, options = {})
-          if list_networks.body['networks'].detect {|_| _['id'] == network_id}
+          if list_networks.body['networks'].find {|_| _['id'] == network_id}
             response = Excon::Response.new
             response.status = 201
             data = {
@@ -91,7 +90,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/delete_floating_ip.rb b/lib/fog/hp/requests/network/delete_floating_ip.rb
index 3530753..427a2a9 100644
--- a/lib/fog/hp/requests/network/delete_floating_ip.rb
+++ b/lib/fog/hp/requests/network/delete_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Delete an existing floating ip
         #
@@ -19,7 +18,7 @@ module Fog
       class Mock
         def delete_floating_ip(floating_ip_id)
           response = Excon::Response.new
-          if list_floating_ips.body['floatingips'].detect {|_| _['id'] == floating_ip_id}
+          if list_floating_ips.body['floatingips'].find {|_| _['id'] == floating_ip_id}
             self.data[:floating_ips].delete(floating_ip_id)
             response.status = 204
             response
@@ -28,7 +27,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/delete_network.rb b/lib/fog/hp/requests/network/delete_network.rb
index 1ba2ee2..4f062af 100644
--- a/lib/fog/hp/requests/network/delete_network.rb
+++ b/lib/fog/hp/requests/network/delete_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Delete an existing network
         #
@@ -19,7 +18,7 @@ module Fog
       class Mock
         def delete_network(network_id)
           response = Excon::Response.new
-          if list_networks.body['networks'].detect {|_| _['id'] == network_id}
+          if list_networks.body['networks'].find {|_| _['id'] == network_id}
             self.data[:networks].delete(network_id)
             response.status = 204
             response
@@ -28,7 +27,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/delete_port.rb b/lib/fog/hp/requests/network/delete_port.rb
index 57bb69a..c2a0599 100644
--- a/lib/fog/hp/requests/network/delete_port.rb
+++ b/lib/fog/hp/requests/network/delete_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Delete an existing port
         #
@@ -19,7 +18,7 @@ module Fog
       class Mock
         def delete_port(port_id)
           response = Excon::Response.new
-          if list_ports.body['ports'].detect {|_| _['id'] == port_id}
+          if list_ports.body['ports'].find {|_| _['id'] == port_id}
             self.data[:ports].delete(port_id)
             response.status = 204
             response
@@ -28,7 +27,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/delete_router.rb b/lib/fog/hp/requests/network/delete_router.rb
index 96ce974..4bdff02 100644
--- a/lib/fog/hp/requests/network/delete_router.rb
+++ b/lib/fog/hp/requests/network/delete_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Delete an existing router
         #
@@ -19,7 +18,7 @@ module Fog
       class Mock
         def delete_router(router_id)
           response = Excon::Response.new
-          if list_routers.body['routers'].detect {|_| _['id'] == router_id}
+          if list_routers.body['routers'].find {|_| _['id'] == router_id}
             self.data[:routers].delete(router_id)
             response.status = 204
             response
@@ -28,7 +27,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/delete_security_group.rb b/lib/fog/hp/requests/network/delete_security_group.rb
index 3eadcb1..bf7c2cd 100644
--- a/lib/fog/hp/requests/network/delete_security_group.rb
+++ b/lib/fog/hp/requests/network/delete_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # Delete a security group
         #
         # ==== Parameters
@@ -14,11 +13,9 @@ module Fog
             :path     => "security-groups/#{security_group_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_security_group(security_group_id)
           response = Excon::Response.new
           if self.data[:security_groups][security_group_id]
@@ -29,7 +26,6 @@ module Fog
             raise Fog::HP::Network::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/delete_security_group_rule.rb b/lib/fog/hp/requests/network/delete_security_group_rule.rb
index c38a7a2..2865463 100644
--- a/lib/fog/hp/requests/network/delete_security_group_rule.rb
+++ b/lib/fog/hp/requests/network/delete_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # Delete a security group rule
         #
         # ==== Parameters
@@ -14,11 +13,9 @@ module Fog
             :path     => "security-group-rules/#{security_group_rule_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_security_group_rule(security_group_rule_id)
           response = Excon::Response.new
           if self.data[:security_group_rules][security_group_rule_id]
@@ -29,7 +26,6 @@ module Fog
             raise Fog::HP::Network::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/delete_subnet.rb b/lib/fog/hp/requests/network/delete_subnet.rb
index 08a9eee..55733f8 100644
--- a/lib/fog/hp/requests/network/delete_subnet.rb
+++ b/lib/fog/hp/requests/network/delete_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Delete an existing subnet
         #
@@ -19,7 +18,7 @@ module Fog
       class Mock
         def delete_subnet(subnet_id)
           response = Excon::Response.new
-          if list_subnets.body['subnets'].detect {|_| _['id'] == subnet_id}
+          if list_subnets.body['subnets'].find {|_| _['id'] == subnet_id}
             self.data[:subnets].delete(subnet_id)
             response.status = 204
             response
@@ -28,7 +27,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/disassociate_floating_ip.rb b/lib/fog/hp/requests/network/disassociate_floating_ip.rb
index c0940b7..976dd1e 100644
--- a/lib/fog/hp/requests/network/disassociate_floating_ip.rb
+++ b/lib/fog/hp/requests/network/disassociate_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Associate port with floating ip
         #
@@ -45,7 +44,7 @@ module Fog
       class Mock
         def disassociate_floating_ip(floating_ip_id, options = {})
           response = Excon::Response.new
-          if list_floating_ips.body['floatingips'].detect {|_| _['id'] == floating_ip_id}
+          if list_floating_ips.body['floatingips'].find {|_| _['id'] == floating_ip_id}
             response.status = 200
             data = {
                 'id'                  => floating_ip_id,
@@ -65,7 +64,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/get_floating_ip.rb b/lib/fog/hp/requests/network/get_floating_ip.rb
index 8a3cf40..5b06bcd 100644
--- a/lib/fog/hp/requests/network/get_floating_ip.rb
+++ b/lib/fog/hp/requests/network/get_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Get details for an existing floating ip by id
         #
@@ -31,7 +30,7 @@ module Fog
       class Mock
         def get_floating_ip(floating_ip_id)
           response = Excon::Response.new
-          if floating_ip = list_floating_ips.body['floatingips'].detect {|_| _['id'] == floating_ip_id}
+          if floating_ip = list_floating_ips.body['floatingips'].find {|_| _['id'] == floating_ip_id}
             response.status = 200
             response.body = { 'floatingip' => floating_ip }
             response
@@ -40,8 +39,6 @@ module Fog
           end
         end
       end
-
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/get_network.rb b/lib/fog/hp/requests/network/get_network.rb
index a310f3c..fb181aa 100644
--- a/lib/fog/hp/requests/network/get_network.rb
+++ b/lib/fog/hp/requests/network/get_network.rb
@@ -1,9 +1,7 @@
 module Fog
   module HP
     class Network
-
       class Real
-
         # Get details for an existing network by id
         #
         # ==== Parameters
@@ -34,7 +32,7 @@ module Fog
       class Mock
         def get_network(network_id)
           response = Excon::Response.new
-          if network = list_networks.body['networks'].detect {|_| _['id'] == network_id}
+          if network = list_networks.body['networks'].find {|_| _['id'] == network_id}
             response.status = 200
             response.body = { 'network' => network }
             response
@@ -43,7 +41,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/get_port.rb b/lib/fog/hp/requests/network/get_port.rb
index 73f6153..9fd3348 100644
--- a/lib/fog/hp/requests/network/get_port.rb
+++ b/lib/fog/hp/requests/network/get_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Get details for an existing port by id
         #
@@ -38,7 +37,7 @@ module Fog
       class Mock
         def get_port(port_id)
           response = Excon::Response.new
-          if port = list_ports.body['ports'].detect {|_| _['id'] == port_id}
+          if port = list_ports.body['ports'].find {|_| _['id'] == port_id}
             response.status = 200
             response.body = { 'port' => port }
             response
@@ -47,7 +46,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/get_router.rb b/lib/fog/hp/requests/network/get_router.rb
index b19c557..1d6aeb3 100644
--- a/lib/fog/hp/requests/network/get_router.rb
+++ b/lib/fog/hp/requests/network/get_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Get details for an existing router by id
         #
@@ -31,7 +30,7 @@ module Fog
       class Mock
         def get_router(router_id)
           response = Excon::Response.new
-          if router = list_routers.body['routers'].detect {|_| _['id'] == router_id}
+          if router = list_routers.body['routers'].find {|_| _['id'] == router_id}
             response.status = 200
             response.body = { 'router' => router }
             response
@@ -40,7 +39,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/get_security_group.rb b/lib/fog/hp/requests/network/get_security_group.rb
index 4fca93c..ded8c92 100644
--- a/lib/fog/hp/requests/network/get_security_group.rb
+++ b/lib/fog/hp/requests/network/get_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # Get details about a security group
         #
         # ==== Parameters
@@ -34,11 +33,9 @@ module Fog
             :path     => "security-groups/#{security_group_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_security_group(security_group_id)
           response = Excon::Response.new
           if sec_group = self.data[:security_groups][security_group_id]
@@ -49,7 +46,6 @@ module Fog
             raise Fog::HP::Network::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/get_security_group_rule.rb b/lib/fog/hp/requests/network/get_security_group_rule.rb
index 6250585..b97dcef 100644
--- a/lib/fog/hp/requests/network/get_security_group_rule.rb
+++ b/lib/fog/hp/requests/network/get_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # Get details about a security group rule
         #
         # ==== Parameters
@@ -29,11 +28,9 @@ module Fog
             :path     => "security-group-rules/#{security_group_rule_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_security_group_rule(security_group_rule_id)
           response = Excon::Response.new
           if sec_group_rule = self.data[:security_group_rules][security_group_rule_id]
@@ -44,7 +41,6 @@ module Fog
             raise Fog::HP::Network::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/get_subnet.rb b/lib/fog/hp/requests/network/get_subnet.rb
index 2871a7d..4b33cbf 100644
--- a/lib/fog/hp/requests/network/get_subnet.rb
+++ b/lib/fog/hp/requests/network/get_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Gets an existing subnet by id
         #
@@ -37,7 +36,7 @@ module Fog
       class Mock
         def get_subnet(subnet_id)
           response = Excon::Response.new
-          if subnet = list_subnets.body['subnets'].detect {|_| _['id'] == subnet_id}
+          if subnet = list_subnets.body['subnets'].find {|_| _['id'] == subnet_id}
             response.status = 200
             response.body = { 'subnet' => subnet }
             response
@@ -46,7 +45,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/list_floating_ips.rb b/lib/fog/hp/requests/network/list_floating_ips.rb
index 2ff9b89..ecba8b6 100644
--- a/lib/fog/hp/requests/network/list_floating_ips.rb
+++ b/lib/fog/hp/requests/network/list_floating_ips.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # List existing floating ips
         #
@@ -40,7 +39,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/list_networks.rb b/lib/fog/hp/requests/network/list_networks.rb
index 4f2eb6a..35cafb0 100644
--- a/lib/fog/hp/requests/network/list_networks.rb
+++ b/lib/fog/hp/requests/network/list_networks.rb
@@ -1,9 +1,7 @@
 module Fog
   module HP
     class Network
-
       class Real
-
         # List existing networks
         #
         # ==== Parameters
@@ -23,12 +21,25 @@ module Fog
         #       * 'admin_state_up'<~Boolean>: - true or false
         #       * 'shared'<~Boolean>: - true or false
         def list_networks(options = {})
-          request(
-            :expects => 200,
-            :method  => 'GET',
-            :path    => 'networks',
-            :query   => options
-          )
+          begin
+            request(
+              :expects => 200,
+              :method  => 'GET',
+              :path    => 'networks',
+              :query   => options
+            )
+          rescue Fog::HP::Network::NotFound
+            begin
+              request(
+                :expects => 200,
+                :method  => 'GET',
+                :path    => 'os-networks',
+                :query   => options
+              )
+            rescue Exception => e
+              throw e
+            end
+          end
         end
       end
 
@@ -42,7 +53,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/list_ports.rb b/lib/fog/hp/requests/network/list_ports.rb
index 5b878ee..3660d49 100644
--- a/lib/fog/hp/requests/network/list_ports.rb
+++ b/lib/fog/hp/requests/network/list_ports.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # List existing ports
         #
@@ -46,7 +45,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/list_routers.rb b/lib/fog/hp/requests/network/list_routers.rb
index c58fd51..1de1d82 100644
--- a/lib/fog/hp/requests/network/list_routers.rb
+++ b/lib/fog/hp/requests/network/list_routers.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # List existing routers
         #
@@ -39,7 +38,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/list_security_group_rules.rb b/lib/fog/hp/requests/network/list_security_group_rules.rb
index be525f5..7b18cfd 100644
--- a/lib/fog/hp/requests/network/list_security_group_rules.rb
+++ b/lib/fog/hp/requests/network/list_security_group_rules.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # List all security group rules
         #
         # ==== Parameters
@@ -30,11 +29,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_security_group_rules(options = {})
           response = Excon::Response.new
 
@@ -45,7 +42,6 @@ module Fog
           response.body = { 'security_group_rules' => sec_group_rules }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/list_security_groups.rb b/lib/fog/hp/requests/network/list_security_groups.rb
index c765512..d73da33 100644
--- a/lib/fog/hp/requests/network/list_security_groups.rb
+++ b/lib/fog/hp/requests/network/list_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module HP
     class Network
       class Real
-
         # List all security groups
         #
         # ==== Parameters
@@ -35,11 +34,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_security_groups(options = {})
           response = Excon::Response.new
 
@@ -50,7 +47,6 @@ module Fog
           response.body = { 'security_groups' => sec_groups }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/hp/requests/network/list_subnets.rb b/lib/fog/hp/requests/network/list_subnets.rb
index 0aca735..3f7715d 100644
--- a/lib/fog/hp/requests/network/list_subnets.rb
+++ b/lib/fog/hp/requests/network/list_subnets.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # List existing subnets
         #
@@ -45,7 +44,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/remove_router_interface.rb b/lib/fog/hp/requests/network/remove_router_interface.rb
index 69e2836..045141e 100644
--- a/lib/fog/hp/requests/network/remove_router_interface.rb
+++ b/lib/fog/hp/requests/network/remove_router_interface.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Remove an internal router interface, thus detaching a subnet or a port from an existing router
         #
@@ -38,7 +37,7 @@ module Fog
       class Mock
         def remove_router_interface(router_id, subnet_id=nil, port_id=nil, options = {})
           response = Excon::Response.new
-          if list_routers.body['routers'].detect {|_| _['id'] == router_id}
+          if list_routers.body['routers'].find {|_| _['id'] == router_id}
             # Either a subnet or a port can be passed, not both
             if (subnet_id && port_id) || (subnet_id.nil? && port_id.nil?)
               raise ArgumentError.new('Either a subnet or a port can be passed, not both')
@@ -61,7 +60,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/update_network.rb b/lib/fog/hp/requests/network/update_network.rb
index 65c746f..b5cc70c 100644
--- a/lib/fog/hp/requests/network/update_network.rb
+++ b/lib/fog/hp/requests/network/update_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Update attributes for an existing network
         #
@@ -44,7 +43,7 @@ module Fog
       class Mock
         def update_network(network_id, options = {})
           response = Excon::Response.new
-          if network = list_networks.body['networks'].detect {|_| _['id'] == network_id}
+          if network = list_networks.body['networks'].find {|_| _['id'] == network_id}
             network['name']           = options[:name]
             network['shared']         = options[:shared]
             network['admin_state_up'] = options[:admin_state_up]
@@ -56,7 +55,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/update_port.rb b/lib/fog/hp/requests/network/update_port.rb
index 0062c76..090583c 100644
--- a/lib/fog/hp/requests/network/update_port.rb
+++ b/lib/fog/hp/requests/network/update_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Update an existing port by id
         #
@@ -55,7 +54,7 @@ module Fog
       class Mock
         def update_port(port_id, options = {})
           response = Excon::Response.new
-          if port = list_ports.body['ports'].detect { |_| _['id'] == port_id }
+          if port = list_ports.body['ports'].find { |_| _['id'] == port_id }
             port['name']           = options[:name]
             port['fixed_ips']      = options[:fixed_ips]
             port['device_owner']   = options[:device_owner]
@@ -69,7 +68,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/update_router.rb b/lib/fog/hp/requests/network/update_router.rb
index e9c748b..ae45818 100644
--- a/lib/fog/hp/requests/network/update_router.rb
+++ b/lib/fog/hp/requests/network/update_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Update an existing router by id
         #
@@ -44,7 +43,7 @@ module Fog
       class Mock
         def update_router(router_id, options = {})
           response = Excon::Response.new
-          if router = list_routers.body['routers'].detect {|_| _['id'] == router_id}
+          if router = list_routers.body['routers'].find {|_| _['id'] == router_id}
             router['name']                  = options[:name]
             router['admin_state_up']        = options[:admin_state_up]
             router['external_gateway_info'] = options[:external_gateway_info]
@@ -56,7 +55,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/network/update_subnet.rb b/lib/fog/hp/requests/network/update_subnet.rb
index 16b359a..092fff2 100644
--- a/lib/fog/hp/requests/network/update_subnet.rb
+++ b/lib/fog/hp/requests/network/update_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module HP
     class Network
-
       class Real
         # Update an existing subnet
         #
@@ -52,7 +51,7 @@ module Fog
       class Mock
         def update_subnet(subnet_id, options = {})
           response = Excon::Response.new
-          if subnet = list_subnets.body['subnets'].detect {|_| _['id'] == subnet_id}
+          if subnet = list_subnets.body['subnets'].find {|_| _['id'] == subnet_id}
             subnet['name']            = options[:name]
             subnet['gateway_ip']      = options[:gateway_ip]
             subnet['dns_nameservers'] = options[:dns_nameservers]
@@ -66,7 +65,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/delete_container.rb b/lib/fog/hp/requests/storage/delete_container.rb
index 636c720..d63127c 100644
--- a/lib/fog/hp/requests/storage/delete_container.rb
+++ b/lib/fog/hp/requests/storage/delete_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Delete an existing container
         #
         # ==== Parameters
@@ -16,11 +15,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_container(container_name)
           response = Excon::Response.new
           if self.data[:containers][container_name].nil?
@@ -35,9 +32,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/delete_object.rb b/lib/fog/hp/requests/storage/delete_object.rb
index 8ed7867..1dbda24 100644
--- a/lib/fog/hp/requests/storage/delete_object.rb
+++ b/lib/fog/hp/requests/storage/delete_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Delete an existing object
         #
         # ==== Parameters
@@ -17,11 +16,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_object(container_name, object_name, options = {})
           response = Excon::Response.new
           if container = self.data[:containers][container_name]
@@ -36,9 +33,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/delete_shared_object.rb b/lib/fog/hp/requests/storage/delete_shared_object.rb
index f17c5f9..164f2b0 100644
--- a/lib/fog/hp/requests/storage/delete_shared_object.rb
+++ b/lib/fog/hp/requests/storage/delete_shared_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Delete a shared object
         #
         # ==== Parameters
@@ -20,19 +19,15 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_shared_object(shared_object_url)
           response = Excon::Response.new
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/get_container.rb b/lib/fog/hp/requests/storage/get_container.rb
index 0dd9c27..3d5a3b5 100644
--- a/lib/fog/hp/requests/storage/get_container.rb
+++ b/lib/fog/hp/requests/storage/get_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Get details for container and total bytes stored
         #
         # ==== Parameters
@@ -38,11 +37,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_container(container_name, options = {})
           unless container_name
             raise ArgumentError.new('container_name is required')
@@ -84,9 +81,7 @@ module Fog
             raise Fog::Storage::HP::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/get_containers.rb b/lib/fog/hp/requests/storage/get_containers.rb
index b94dcf8..9beb13d 100644
--- a/lib/fog/hp/requests/storage/get_containers.rb
+++ b/lib/fog/hp/requests/storage/get_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # List existing storage containers
         #
         # ==== Parameters
@@ -27,11 +26,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_containers(options = {})
           response = Excon::Response.new
           acc_cont_count = 0
@@ -63,9 +60,7 @@ module Fog
           response.status = 200
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/get_object.rb b/lib/fog/hp/requests/storage/get_object.rb
index 9695ae6..18e2e42 100644
--- a/lib/fog/hp/requests/storage/get_object.rb
+++ b/lib/fog/hp/requests/storage/get_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Get details for an object
         #
         # ==== Parameters
@@ -26,11 +25,9 @@ module Fog
           end
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_object(container_name, object_name, options = {}, &block)
           unless container_name
             raise ArgumentError.new('container_name is required')
@@ -77,9 +74,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/get_object_temp_url.rb b/lib/fog/hp/requests/storage/get_object_temp_url.rb
index 9781f10..3188632 100644
--- a/lib/fog/hp/requests/storage/get_object_temp_url.rb
+++ b/lib/fog/hp/requests/storage/get_object_temp_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class HP
-
       class Real
-
         # Generate a temporary url for an object
         #
         # ==== Parameters
@@ -14,18 +12,15 @@ module Fog
         def get_object_temp_url(container, object, expires, method)
           generate_object_temp_url(container, object, expires, method)
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_object_temp_url(container, object, expires, method)
           @hp_storage_uri = "https://swift-cluster.example.com:443/v1/account"
 
           generate_object_temp_url(container, object, expires, method)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/get_shared_container.rb b/lib/fog/hp/requests/storage/get_shared_container.rb
index 6410f46..a49cf19 100644
--- a/lib/fog/hp/requests/storage/get_shared_container.rb
+++ b/lib/fog/hp/requests/storage/get_shared_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Get details for a shared container
         #
         # ==== Parameters
@@ -40,11 +39,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_shared_container(shared_container_url, options = {})
           response = Excon::Response.new
           data = {
@@ -65,11 +62,8 @@ module Fog
             'X-Trans-Id'               => "tx#{Fog::Mock.random_hex(32)}"
           }
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/get_shared_object.rb b/lib/fog/hp/requests/storage/get_shared_object.rb
index f2a7add..da84342 100644
--- a/lib/fog/hp/requests/storage/get_shared_object.rb
+++ b/lib/fog/hp/requests/storage/get_shared_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Get details for a shared object
         #
         # ==== Parameters
@@ -29,11 +28,9 @@ module Fog
           end
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_shared_object(shared_object_url, &block)
           response = Excon::Response.new
           response.status = 200
@@ -58,9 +55,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/head_container.rb b/lib/fog/hp/requests/storage/head_container.rb
index 2208645..c180770 100644
--- a/lib/fog/hp/requests/storage/head_container.rb
+++ b/lib/fog/hp/requests/storage/head_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # List number of objects and total bytes stored
         #
         # ==== Parameters
@@ -22,20 +21,16 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_container(container_name)
           response = get_container(container_name)
           response.body = nil
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/head_containers.rb b/lib/fog/hp/requests/storage/head_containers.rb
index fc6bfc4..053a94e 100644
--- a/lib/fog/hp/requests/storage/head_containers.rb
+++ b/lib/fog/hp/requests/storage/head_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # List number of containers and total bytes stored
         #
         # ==== Returns
@@ -19,19 +18,15 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_containers
           response = get_containers
           response.body = nil
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/head_object.rb b/lib/fog/hp/requests/storage/head_object.rb
index badbd21..a669dd2 100644
--- a/lib/fog/hp/requests/storage/head_object.rb
+++ b/lib/fog/hp/requests/storage/head_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Get headers for object
         #
         # ==== Parameters
@@ -17,20 +16,16 @@ module Fog
           }, false)
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_object(container_name, object_name, options = {})
           response = get_object(container_name, object_name, options)
           response.body = nil
           response.status = 200
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/head_shared_container.rb b/lib/fog/hp/requests/storage/head_shared_container.rb
index cf16a5d..fe2071f 100644
--- a/lib/fog/hp/requests/storage/head_shared_container.rb
+++ b/lib/fog/hp/requests/storage/head_shared_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # List number of objects and total bytes stored for a shared container
         #
         # ==== Parameters
@@ -26,20 +25,16 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_shared_container(shared_container_url)
           response = get_shared_container(shared_container_url)
           response.body = nil
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/head_shared_object.rb b/lib/fog/hp/requests/storage/head_shared_object.rb
index 855d280..f87b2ec 100644
--- a/lib/fog/hp/requests/storage/head_shared_object.rb
+++ b/lib/fog/hp/requests/storage/head_shared_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Get headers for shared object
         #
         # ==== Parameters
@@ -20,20 +19,16 @@ module Fog
           }, false)
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_shared_object(shared_object_url)
           response = get_shared_object(shared_object_url)
           response.body = nil
           response.status = 200
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/post_container.rb b/lib/fog/hp/requests/storage/post_container.rb
index ac213ca..2f6fe2a 100644
--- a/lib/fog/hp/requests/storage/post_container.rb
+++ b/lib/fog/hp/requests/storage/post_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Create or update metadata for an existing container
         #
         # ==== Parameters
@@ -17,11 +16,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def post_container(container_name, headers = {})
           if self.data[:containers][container_name].nil?
             raise Fog::Storage::HP::NotFound
@@ -30,9 +27,7 @@ module Fog
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/post_object.rb b/lib/fog/hp/requests/storage/post_object.rb
index 9183a77..a6b0e67 100644
--- a/lib/fog/hp/requests/storage/post_object.rb
+++ b/lib/fog/hp/requests/storage/post_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Create or update metadata for an existing object
         #
         # ==== Parameters
@@ -18,11 +17,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def post_object(container_name, object_name, headers = {})
           response = Excon::Response.new
           if container = self.data[:containers][container_name]
@@ -48,9 +45,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/put_container.rb b/lib/fog/hp/requests/storage/put_container.rb
index 7bbb95d..74f47e7 100644
--- a/lib/fog/hp/requests/storage/put_container.rb
+++ b/lib/fog/hp/requests/storage/put_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Create a new container
         #
         # ==== Parameters
@@ -17,7 +16,6 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
@@ -42,7 +40,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/put_object.rb b/lib/fog/hp/requests/storage/put_object.rb
index 3a30d7d..3009981 100644
--- a/lib/fog/hp/requests/storage/put_object.rb
+++ b/lib/fog/hp/requests/storage/put_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Create a new object
         #
         # ==== Parameters
@@ -22,7 +21,7 @@ module Fog
               :path     => "#{Fog::HP.escape(container)}/#{Fog::HP.escape(object)}"
             )
           end
-          if headers.has_key?('Transfer-Encoding')
+          if headers.key?('Transfer-Encoding')
             headers.delete('Content-Length')
           end
           response = request(
@@ -34,11 +33,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_object(container_name, object_name, data, options = {})
           response = Excon::Response.new
           ### Take care of case of copy operation
@@ -97,9 +94,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/requests/storage/put_shared_object.rb b/lib/fog/hp/requests/storage/put_shared_object.rb
index cee3a9d..3f85367 100644
--- a/lib/fog/hp/requests/storage/put_shared_object.rb
+++ b/lib/fog/hp/requests/storage/put_shared_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class HP
       class Real
-
         # Create a new object in a shared container
         #
         # ==== Parameters
@@ -28,7 +27,7 @@ module Fog
               :path     => "#{path}/#{Fog::HP.escape(object_name)}"
             )
           end
-          if headers.has_key?('Transfer-Encoding')
+          if headers.key?('Transfer-Encoding')
             headers.delete('Content-Length')
           end
           response = shared_request(
@@ -40,11 +39,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_shared_object(shared_container_url, object_name, data, options = {}, &block)
           response = Excon::Response.new
           data = Fog::Storage.parse_data(data)
@@ -77,9 +74,7 @@ module Fog
 
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/simple_http_instrumentor.rb b/lib/fog/hp/simple_http_instrumentor.rb
index f536b73..66cbe29 100644
--- a/lib/fog/hp/simple_http_instrumentor.rb
+++ b/lib/fog/hp/simple_http_instrumentor.rb
@@ -5,18 +5,18 @@ module Excon
 
       def instrument(name, params = {}, &block)
         params = params.dup
-        if params.has_key?(:headers) && params[:headers].has_key?('Authorization')
+        if params.key?(:headers) && params[:headers].key?('Authorization')
           params[:headers] = params[:headers].dup
           params[:headers]['Authorization'] = REDACTED
         end
-        if params.has_key?(:password)
+        if params.key?(:password)
           params[:password] = REDACTED
         end
         $stderr.puts("--- #{name} ---")
         if name.include?('.request')
           query = ''
           tmp_query = ''
-          if params.has_key?(:query) && !params[:query].nil?
+          if params.key?(:query) && !params[:query].nil?
             params[:query].each do |key, value|
               tmp_query += "#{key}=#{value}&"
             end
@@ -53,7 +53,6 @@ module Excon
           yield
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/hp/storage.rb b/lib/fog/hp/storage.rb
index 24784b3..19683f8 100644
--- a/lib/fog/hp/storage.rb
+++ b/lib/fog/hp/storage.rb
@@ -3,7 +3,6 @@ require 'fog/hp/core'
 module Fog
   module Storage
     class HP < Fog::Service
-
       requires    :hp_secret_key, :hp_tenant_id, :hp_avl_zone
       recognizes  :hp_auth_uri, :hp_cdn_ssl, :hp_cdn_uri, :credentials, :hp_service_type
       recognizes  :persistent, :connection_options
@@ -47,7 +46,6 @@ module Fog
       request :put_shared_object
 
       module Utils
-
         def cdn
           unless @hp_cdn_uri.nil?
             @cdn ||= Fog::CDN.new(
@@ -207,7 +205,6 @@ module Fog
         #   * body<~String> - url for object
         def create_temp_url(container, object, expires, method, options = {})
           raise ArgumentError, "Insufficient parameters specified." unless (container && object && expires && method)
-          raise ArgumentError, "Storage must my instantiated with the :os_account_meta_temp_url_key option" if @os_account_meta_temp_url_key.nil?
 
           # POST not allowed
           allowed_methods = %w{GET PUT HEAD}
@@ -233,6 +230,11 @@ module Fog
             hmac      = OpenSSL::HMAC.new(@os_account_meta_temp_url_key, OpenSSL::Digest::SHA1.new)
             signature= hmac.update(string_to_sign).hexdigest
           else
+            #Note if the value of the @hp_secret_key is really a password, this will NOT work
+            #HP Public Cloud FormPost and Temporary URL hashing algorithms require the secret key NOT password.
+            if Fog::HP.instance_variable_get("@hp_use_upass_auth_style")
+              raise ArgumentError, "Temporary URLS cannot be generated unless you login via access_key/secret_key"
+            end
             # Only works with 1.9+ Not compatible with 1.8.7
             #signed_string = Digest::HMAC.hexdigest(string_to_sign, @hp_secret_key, Digest::SHA1)
 
@@ -293,7 +295,6 @@ module Fog
         def reset_data
           self.class.data.delete(@hp_access_key)
         end
-
       end
 
       class Real
@@ -311,6 +312,10 @@ module Fog
           unless @hp_access_key
             raise ArgumentError.new("Missing required arguments: hp_access_key. :hp_account_id is deprecated, please use :hp_access_key instead.")
           end
+          if options[:os_account_meta_temp_url_key]
+            Fog::Logger.deprecation(":os_account_meta_temp_url_key is deprecated, and will be removed in a future release. please use the :openstack provider instead.")
+            @os_account_meta_temp_url_key = options.delete(:os_account_meta_temp_url_key)
+          end
           @hp_secret_key = options[:hp_secret_key]
           @hp_auth_uri   = options[:hp_auth_uri]
           @hp_cdn_ssl    = options[:hp_cdn_ssl]
@@ -321,10 +326,9 @@ module Fog
           auth_version = auth_version.to_s.downcase.to_sym
 
           ### Pass the service name for object storage to the authentication call
-          options[:hp_service_type] ||= "Object Storage"
+          options[:hp_service_type] ||= " object-store"
           @hp_tenant_id = options[:hp_tenant_id]
           @hp_avl_zone  = options[:hp_avl_zone]
-          @os_account_meta_temp_url_key = options[:os_account_meta_temp_url_key]
 
           ### Make the authentication call
           if (auth_version == :v2)
@@ -408,7 +412,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/compute.rb b/lib/fog/ibm/compute.rb
index 592bae4..3c4e008 100644
--- a/lib/fog/ibm/compute.rb
+++ b/lib/fog/ibm/compute.rb
@@ -3,7 +3,6 @@ require 'fog/ibm/core'
 module Fog
   module Compute
     class IBM < Fog::Service
-
       requires :ibm_username, :ibm_password
       recognizes :location
 
@@ -81,7 +80,6 @@ module Fog
       end
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -226,9 +224,7 @@ module Fog
           }
           locations
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ibm/core.rb b/lib/fog/ibm/core.rb
index 7f2b14d..088d3d8 100644
--- a/lib/fog/ibm/core.rb
+++ b/lib/fog/ibm/core.rb
@@ -3,7 +3,6 @@ require 'fog/json'
 
 module Fog
   module IBM
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
@@ -17,7 +16,6 @@ module Fog
     end
 
     class Connection < Fog::XML::Connection
-
       def initialize(user, password)
         @user = user
         @password = password
@@ -54,12 +52,11 @@ module Fog
 
     class Mock
       class << self
-
         def id
           Fog::Mock.random_numbers(7).to_i.to_s
         end
-        alias :instance_id :id
-        alias :request_id  :id
+        alias_method :instance_id, :id
+        alias_method :request_id,  :id
 
         def primary_ip
           { "type" => 0, "ip" => Fog::IBM::Mock.ip_address, "hostname" => Fog::IBM::Mock.hostname }
@@ -169,9 +166,7 @@ module Fog
             "state"     => 0
           }
         end
-
       end
     end
-
   end
 end
diff --git a/lib/fog/ibm/models/compute/address.rb b/lib/fog/ibm/models/compute/address.rb
index ce40ddc..2ab7c35 100644
--- a/lib/fog/ibm/models/compute/address.rb
+++ b/lib/fog/ibm/models/compute/address.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class IBM
       class Address < Fog::Model
-
         STATES = {
           0 => 'New',
           1 => 'Allocating',
diff --git a/lib/fog/ibm/models/compute/addresses.rb b/lib/fog/ibm/models/compute/addresses.rb
index 68a849a..061289a 100644
--- a/lib/fog/ibm/models/compute/addresses.rb
+++ b/lib/fog/ibm/models/compute/addresses.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/compute/address'
 module Fog
   module Compute
     class IBM
-
       class Addresses < Fog::Collection
-
         model Fog::Compute::IBM::Address
 
         def all
@@ -21,7 +19,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/image.rb b/lib/fog/ibm/models/compute/image.rb
index f8eb833..175391c 100644
--- a/lib/fog/ibm/models/compute/image.rb
+++ b/lib/fog/ibm/models/compute/image.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class IBM
       class Image < Fog::Model
-
         STATES = {
           0 => 'New',
           1 => 'Available',
@@ -63,7 +62,6 @@ module Fog
           requires :id
           service.delete_image(id).body['success']
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/images.rb b/lib/fog/ibm/models/compute/images.rb
index 5c23043..5d19ac8 100644
--- a/lib/fog/ibm/models/compute/images.rb
+++ b/lib/fog/ibm/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/compute/image'
 module Fog
   module Compute
     class IBM
-
       class Images < Fog::Collection
-
         model Fog::Compute::IBM::Image
 
         def all
@@ -20,7 +18,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/instance-types.rb b/lib/fog/ibm/models/compute/instance-types.rb
index 694dcc2..c8e2dd1 100644
--- a/lib/fog/ibm/models/compute/instance-types.rb
+++ b/lib/fog/ibm/models/compute/instance-types.rb
@@ -4,11 +4,8 @@ require 'fog/ibm/models/compute/instance-type'
 module Fog
   module Compute
     class IBM
-
       class InstanceTypes < Fog::Collection
-
         model Fog::Compute::IBM::InstanceType
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/keys.rb b/lib/fog/ibm/models/compute/keys.rb
index 253aa04..9fed64b 100644
--- a/lib/fog/ibm/models/compute/keys.rb
+++ b/lib/fog/ibm/models/compute/keys.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/compute/key'
 module Fog
   module Compute
     class IBM
-
       class Keys < Fog::Collection
-
         model Fog::Compute::IBM::Key
 
         def all
@@ -28,7 +26,6 @@ module Fog
         def default=(key_name)
           service.modify_key(key_name, 'default' => true)
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/locations.rb b/lib/fog/ibm/models/compute/locations.rb
index eba4cd0..8e6794e 100644
--- a/lib/fog/ibm/models/compute/locations.rb
+++ b/lib/fog/ibm/models/compute/locations.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/compute/location'
 module Fog
   module Compute
     class IBM
-
       class Locations < Fog::Collection
-
         model Fog::Compute::IBM::Location
 
         def all
@@ -20,7 +18,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/server.rb b/lib/fog/ibm/models/compute/server.rb
index d335b36..956b9ba 100644
--- a/lib/fog/ibm/models/compute/server.rb
+++ b/lib/fog/ibm/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class IBM
-
       class Server < Fog::Compute::Server
-
         STATES = {
           0  => 'New',
           1  => 'Provisioning',
@@ -184,10 +182,8 @@ module Fog
          }.merge(opts)
          service.create_image(id, options[:name], options[:description]).body
         end
-        alias :create_image :to_image
+        alias_method :create_image, :to_image
       end
-
     end
   end
-
 end
diff --git a/lib/fog/ibm/models/compute/servers.rb b/lib/fog/ibm/models/compute/servers.rb
index af38fb3..cea5d45 100644
--- a/lib/fog/ibm/models/compute/servers.rb
+++ b/lib/fog/ibm/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/compute/server'
 module Fog
   module Compute
     class IBM
-
       class Servers < Fog::Collection
-
         model Fog::Compute::IBM::Server
 
         def all
@@ -20,7 +18,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/vlan.rb b/lib/fog/ibm/models/compute/vlan.rb
index 446a05b..aefb0f7 100644
--- a/lib/fog/ibm/models/compute/vlan.rb
+++ b/lib/fog/ibm/models/compute/vlan.rb
@@ -4,11 +4,9 @@ module Fog
   module Compute
     class IBM
       class Vlan < Fog::Model
-
         identity :id
         attribute :name
         attribute :location
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/compute/vlans.rb b/lib/fog/ibm/models/compute/vlans.rb
index 58b75e1..080e235 100644
--- a/lib/fog/ibm/models/compute/vlans.rb
+++ b/lib/fog/ibm/models/compute/vlans.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/compute/vlan'
 module Fog
   module Compute
     class IBM
-
       class Vlans < Fog::Collection
-
         model Fog::Compute::IBM::Vlan
 
         def all
@@ -21,7 +19,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/storage/offerings.rb b/lib/fog/ibm/models/storage/offerings.rb
index 009cc5a..05171c3 100644
--- a/lib/fog/ibm/models/storage/offerings.rb
+++ b/lib/fog/ibm/models/storage/offerings.rb
@@ -4,15 +4,12 @@ require 'fog/ibm/models/storage/offering'
 module Fog
   module Storage
     class IBM
-
       class Offerings < Fog::Collection
-
         model Fog::Storage::IBM::Offering
 
         def all
           load(service.list_offerings.body['volumes'])
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/storage/volume.rb b/lib/fog/ibm/models/storage/volume.rb
index 49f94c1..eead192 100644
--- a/lib/fog/ibm/models/storage/volume.rb
+++ b/lib/fog/ibm/models/storage/volume.rb
@@ -4,7 +4,6 @@ module Fog
   module Storage
     class IBM
       class Volume < Fog::Model
-
         STATES = {
           0  => 'New',
           1  => 'Creating',
@@ -91,7 +90,6 @@ module Fog
         def state
           STATES[attributes[:state]]
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/models/storage/volumes.rb b/lib/fog/ibm/models/storage/volumes.rb
index 3bba521..9bcb37d 100644
--- a/lib/fog/ibm/models/storage/volumes.rb
+++ b/lib/fog/ibm/models/storage/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/ibm/models/storage/volume'
 module Fog
   module Storage
     class IBM
-
       class Volumes < Fog::Collection
-
         model Fog::Storage::IBM::Volume
 
         def all
@@ -20,7 +18,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/clone_image.rb b/lib/fog/ibm/requests/compute/clone_image.rb
index 00546a3..50d3aad 100644
--- a/lib/fog/ibm/requests/compute/clone_image.rb
+++ b/lib/fog/ibm/requests/compute/clone_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Clones image specified by image_id
         #
         # ==== Parameters
@@ -25,10 +24,8 @@ module Fog
             }
           )
         end
-
       end
       class Mock
-
         def clone_image(image_id, name, description)
           response = Excon::Response.new
           if image_exists? image_id
@@ -41,7 +38,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/create_address.rb b/lib/fog/ibm/requests/compute/create_address.rb
index 19c5613..7416153 100644
--- a/lib/fog/ibm/requests/compute/create_address.rb
+++ b/lib/fog/ibm/requests/compute/create_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Requests a new static IP address to be created
         #
         # ==== Parameters
@@ -30,11 +29,9 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
-
         def create_address(location_id, offering_id="20001223", options={})
           address         = Fog::IBM::Mock.create_address(location_id, offering_id, options)
           self.data[:addresses][address['id']] = address
@@ -43,7 +40,6 @@ module Fog
           response.body   = address
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/create_image.rb b/lib/fog/ibm/requests/compute/create_image.rb
index a694ee3..07ce2a5 100644
--- a/lib/fog/ibm/requests/compute/create_image.rb
+++ b/lib/fog/ibm/requests/compute/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Requests an image to be created from an Instance
         #
         # ==== Parameters
@@ -32,11 +31,9 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
-
         def create_image(instance_id, name, description)
           response = Excon::Response.new
           if instance_exists? instance_id
@@ -49,7 +46,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/create_instance.rb b/lib/fog/ibm/requests/compute/create_instance.rb
index 7f9c29d..77f0672 100644
--- a/lib/fog/ibm/requests/compute/create_instance.rb
+++ b/lib/fog/ibm/requests/compute/create_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Requests a new Instance to be created.
         #
         # ==== Parameters
@@ -57,11 +56,9 @@ module Fog
             :body     => body_data
           )
         end
-
       end
 
       class Mock
-
         def create_instance(name, image_id, instance_type, location, options={})
           response = Excon::Response.new
           # Since we want to test error conditions, we have a little regex that traps specially formed
@@ -78,7 +75,6 @@ module Fog
             response
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/create_key.rb b/lib/fog/ibm/requests/compute/create_key.rb
index 2d3fecc..85bd055 100644
--- a/lib/fog/ibm/requests/compute/create_key.rb
+++ b/lib/fog/ibm/requests/compute/create_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Requests a new keypair to be created
         #
         # ==== Parameters
@@ -27,11 +26,9 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
-
         # SmartCloud returns the private key when create_key is called
         # We need to store both the private and public key for later use
         def create_key(name, public_key=nil)
@@ -54,7 +51,6 @@ module Fog
           self.data[:private_keys][name] = attributes.merge("keyMaterial" => private_key.to_s)
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/delete_address.rb b/lib/fog/ibm/requests/compute/delete_address.rb
index 9ca8079..c0b8ad6 100644
--- a/lib/fog/ibm/requests/compute/delete_address.rb
+++ b/lib/fog/ibm/requests/compute/delete_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Deletes the Address that the authenticated user manages with the specified :address_id
         #
         # ==== Parameters
@@ -19,11 +18,9 @@ module Fog
             :path     => "/addresses/#{address_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_address(address_id)
           response = Excon::Response.new
           if address_exists? address_id
@@ -39,7 +36,6 @@ module Fog
         def address_exists?(address_id)
           self.data[:addresses].key? address_id
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/delete_image.rb b/lib/fog/ibm/requests/compute/delete_image.rb
index 7db3b95..f9e548d 100644
--- a/lib/fog/ibm/requests/compute/delete_image.rb
+++ b/lib/fog/ibm/requests/compute/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Deletes the image that the authenticated user manages with the specified :image_id
         #
         # ==== Parameters
@@ -19,10 +18,8 @@ module Fog
             :path     => "/offerings/image/#{image_id}"
           )
         end
-
       end
       class Mock
-
         def delete_image(image_id)
           response = Excon::Response.new
           # TODO: We should probably check that an image is deleteable.
@@ -36,7 +33,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/delete_instance.rb b/lib/fog/ibm/requests/compute/delete_instance.rb
index 3b7dcc0..d595399 100644
--- a/lib/fog/ibm/requests/compute/delete_instance.rb
+++ b/lib/fog/ibm/requests/compute/delete_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Deletes the Instance that the authenticated user manages with the specified :instance_id
         #
         # ==== Parameters
@@ -19,11 +18,9 @@ module Fog
             :path     => "/instances/#{instance_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_instance(instance_id)
           response = Excon::Response.new
           if deleteable? instance_id
@@ -45,7 +42,6 @@ module Fog
           return false if [0, 1, 7, 14, 15].include?(instance["status"].to_i)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/delete_key.rb b/lib/fog/ibm/requests/compute/delete_key.rb
index 9ab1388..4a27cdc 100644
--- a/lib/fog/ibm/requests/compute/delete_key.rb
+++ b/lib/fog/ibm/requests/compute/delete_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Deletes the key specified with key_name
         #
         # ==== Parameters
@@ -19,10 +18,8 @@ module Fog
             :path     => "/keys/#{key_name}"
           )
         end
-
       end
       class Mock
-
         def delete_key(key_name)
           response = Excon::Response.new
           if key_exists? key_name
@@ -34,7 +31,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_image.rb b/lib/fog/ibm/requests/compute/get_image.rb
index 58e380d..ada13a5 100644
--- a/lib/fog/ibm/requests/compute/get_image.rb
+++ b/lib/fog/ibm/requests/compute/get_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns details of image specified by id
         #
         # ==== Parameters
@@ -39,11 +38,9 @@ module Fog
             :path     => "/offerings/image/#{image_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_image(image_id)
           response = Excon::Response.new
           if image_exists? image_id
@@ -60,7 +57,6 @@ module Fog
         def image_exists?(image_id)
           self.data[:images].key? image_id
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_image_agreement.rb b/lib/fog/ibm/requests/compute/get_image_agreement.rb
index a7571f2..8825335 100644
--- a/lib/fog/ibm/requests/compute/get_image_agreement.rb
+++ b/lib/fog/ibm/requests/compute/get_image_agreement.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns license agreement of image specified by id
         #
         # ==== Parameters
@@ -24,11 +23,9 @@ module Fog
             :path     => "/offerings/image/#{image_id}/agreement"
           )
         end
-
       end
 
       class Mock
-
         # TODO: Fix this so they work.
         def get_image_agreement(image_id)
           response = Excon::Response.new
@@ -59,7 +56,6 @@ module Fog
                 "type"=>2}]}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_image_manifest.rb b/lib/fog/ibm/requests/compute/get_image_manifest.rb
index fa034f6..2046254 100644
--- a/lib/fog/ibm/requests/compute/get_image_manifest.rb
+++ b/lib/fog/ibm/requests/compute/get_image_manifest.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns manifest of image specified by id
         #
         # ==== Parameters
@@ -19,11 +18,9 @@ module Fog
             :path     => "/offerings/image/#{image_id}/manifest"
           )
         end
-
       end
 
       class Mock
-
         # TODO: Create a data store for this.
         def get_image_manifest(image_id)
           response = Excon::Response.new
@@ -32,7 +29,6 @@ module Fog
               "<?xml version=\"1.0\" encoding=\"UTF-8\"?><parameters xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"platform:/resource/com.ibm.ccl.devcloud.client/schema/parameters.xsd\">\n\t<firewall>\n\t\t<rule>\n\t\t\t<source>0.0.0.0/0</source>\n\t\t\t<minport>1</minport>\n\t\t\t<maxport>65535</maxport>\n\t\t</rule>\n\t</firewall>\n</parameters>"}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_instance.rb b/lib/fog/ibm/requests/compute/get_instance.rb
index b8b2e4b..f948357 100644
--- a/lib/fog/ibm/requests/compute/get_instance.rb
+++ b/lib/fog/ibm/requests/compute/get_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns the Instance that the authenticated user manages with the specified :instance_id
         #
         # ==== Parameters
@@ -38,11 +37,9 @@ module Fog
             :path     => "/instances/#{instance_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_instance(instance_id)
           response = Excon::Response.new
           if instance_exists? instance_id
@@ -69,7 +66,6 @@ module Fog
         def instance_active?(instance_id)
           self.data[:instances][instance_id]["status"] == 5
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_instance_logs.rb b/lib/fog/ibm/requests/compute/get_instance_logs.rb
index d805517..08fff8d 100644
--- a/lib/fog/ibm/requests/compute/get_instance_logs.rb
+++ b/lib/fog/ibm/requests/compute/get_instance_logs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Get an instance's logs
         #
         # ==== Returns
@@ -18,7 +17,6 @@ module Fog
                          (start_index ? "?startIndex=#{start_index}" : '')
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_key.rb b/lib/fog/ibm/requests/compute/get_key.rb
index 589ad4c..cda64ac 100644
--- a/lib/fog/ibm/requests/compute/get_key.rb
+++ b/lib/fog/ibm/requests/compute/get_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns details of key by name specified
         #
         # ==== Parameters
@@ -23,11 +22,9 @@ module Fog
             :path     => "/keys/#{key_name}"
           )
         end
-
       end
 
       class Mock
-
         def get_key(key_name)
           response = Excon::Response.new
           if key_exists? key_name
@@ -42,7 +39,6 @@ module Fog
         def key_exists?(name)
           self.data[:keys].key? name
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_location.rb b/lib/fog/ibm/requests/compute/get_location.rb
index baa81e0..c5364ab 100644
--- a/lib/fog/ibm/requests/compute/get_location.rb
+++ b/lib/fog/ibm/requests/compute/get_location.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Get a location
         #
         # ==== Parameters
@@ -29,11 +28,9 @@ module Fog
             :path     => "/locations/#{location_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_location(location_id)
           response = Excon::Response.new
           if location_exists? location_id
@@ -48,7 +45,6 @@ module Fog
         def location_exists?(location_id)
           self.data[:locations].key? location_id
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/get_request.rb b/lib/fog/ibm/requests/compute/get_request.rb
index a569aa2..dab0a1b 100644
--- a/lib/fog/ibm/requests/compute/get_request.rb
+++ b/lib/fog/ibm/requests/compute/get_request.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns list of instances created with request specified by request_id
         #
         # ==== Parameters
@@ -39,11 +38,9 @@ module Fog
             :path     => "computecloud/enterprise/api/rest/20100331/requests/#{request_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_request(request_id)
           response = Excon::Response.new
           response.status = 200
@@ -71,7 +68,6 @@ module Fog
                "owner"=>"user at example.com"}]}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_address_offerings.rb b/lib/fog/ibm/requests/compute/list_address_offerings.rb
index f3a27c8..76f4c4e 100644
--- a/lib/fog/ibm/requests/compute/list_address_offerings.rb
+++ b/lib/fog/ibm/requests/compute/list_address_offerings.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns the offerings of static address types/pricing for the authenticated user
         #
         # ==== Parameters
@@ -30,11 +29,9 @@ module Fog
             :path     => '/offerings/address'
           )
         end
-
       end
 
       class Mock
-
         def list_address_offerings
           response = Excon::Response.new
           response.status = 200
@@ -51,7 +48,6 @@ module Fog
                 "id"=>"20001223"}]}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_addresses.rb b/lib/fog/ibm/requests/compute/list_addresses.rb
index 0ba2bff..eee3b2f 100644
--- a/lib/fog/ibm/requests/compute/list_addresses.rb
+++ b/lib/fog/ibm/requests/compute/list_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns the list of static IP addresses for current user
         #
         # ==== Parameters
@@ -27,11 +26,9 @@ module Fog
             :path     => '/addresses'
           )
         end
-
       end
 
       class Mock
-
         def list_addresses
           # Loop through addresses and update states and values if they aren't set
           self.data[:addresses].values.each do |address|
@@ -46,7 +43,6 @@ module Fog
           response.body   = { 'addresses' => self.data[:addresses].values }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_images.rb b/lib/fog/ibm/requests/compute/list_images.rb
index 7f66eff..ea735d8 100644
--- a/lib/fog/ibm/requests/compute/list_images.rb
+++ b/lib/fog/ibm/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns the list of Images available to be provisioned on the IBM DeveloperCloud.
         #
         # ==== Parameters
@@ -40,18 +39,15 @@ module Fog
             :path     => '/offerings/image'
           )
         end
-
       end
 
       class Mock
-
         def list_images
           response = Excon::Response.new
           response.status = 200
           response.body = {'images' => self.data[:images].values}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_instances.rb b/lib/fog/ibm/requests/compute/list_instances.rb
index 4f8defa..55a6087 100644
--- a/lib/fog/ibm/requests/compute/list_instances.rb
+++ b/lib/fog/ibm/requests/compute/list_instances.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns list of instances that the authenticated user manages.
         #
         # ==== Parameters
@@ -39,18 +38,15 @@ module Fog
             :path     => '/instances'
           )
         end
-
       end
 
       class Mock
-
         def list_instances
           response = Excon::Response.new
           response.status = 200
           response.body = { 'instances' => self.data[:instances].values }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_keys.rb b/lib/fog/ibm/requests/compute/list_keys.rb
index 2734926..1ff2ed4 100644
--- a/lib/fog/ibm/requests/compute/list_keys.rb
+++ b/lib/fog/ibm/requests/compute/list_keys.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns list of instances that the authenticated user manages.
         #
         # ==== Parameters
@@ -39,18 +38,15 @@ module Fog
             :path     => '/keys'
           )
         end
-
       end
 
       class Mock
-
         def list_keys
           response = Excon::Response.new
           response.status = 200
           response.body = {'keys' => self.data[:keys].values}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_locations.rb b/lib/fog/ibm/requests/compute/list_locations.rb
index a802ee2..5215734 100644
--- a/lib/fog/ibm/requests/compute/list_locations.rb
+++ b/lib/fog/ibm/requests/compute/list_locations.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns the list of Images available to be provisioned on the IBM DeveloperCloud.
         #
         # ==== Parameters
@@ -19,18 +18,15 @@ module Fog
             :path     => "/locations"
           )
         end
-
       end
 
       class Mock
-
         def list_locations
           response = Excon::Response.new
           response.status = 200
           response.body = { "locations" => self.data[:locations].values }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/list_vlans.rb b/lib/fog/ibm/requests/compute/list_vlans.rb
index bb4a087..3fdb58a 100644
--- a/lib/fog/ibm/requests/compute/list_vlans.rb
+++ b/lib/fog/ibm/requests/compute/list_vlans.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Returns the vlan offerings for user
         #
         # ==== Parameters
@@ -27,10 +26,8 @@ module Fog
             :path     => '/offerings/vlan'
           )
         end
-
       end
       class Mock
-
         def list_vlans
           response = Excon::Response.new
           response.status = 200
@@ -40,7 +37,6 @@ module Fog
                 "name"=>"FOG-VLAN1"}]}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/modify_instance.rb b/lib/fog/ibm/requests/compute/modify_instance.rb
index 1210999..bb73e9f 100644
--- a/lib/fog/ibm/requests/compute/modify_instance.rb
+++ b/lib/fog/ibm/requests/compute/modify_instance.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Modify an instance
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
       end
 
       class Mock
-
         def modify_instance(instance_id, params={})
           response = Excon::Response.new
           if instance_exists? instance_id
@@ -64,7 +62,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/compute/modify_key.rb b/lib/fog/ibm/requests/compute/modify_key.rb
index f95287e..42c06f5 100644
--- a/lib/fog/ibm/requests/compute/modify_key.rb
+++ b/lib/fog/ibm/requests/compute/modify_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class IBM
       class Real
-
         # Modify a key
         #
         # ==== Parameters
@@ -21,10 +20,8 @@ module Fog
             :body     => params
           )
         end
-
       end
       class Mock
-
         def modify_key(key_name, params={})
           response = Excon::Response.new
           if key_exists? key_name
@@ -45,7 +42,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/storage/create_volume.rb b/lib/fog/ibm/requests/storage/create_volume.rb
index 2ebeec8..dd34626 100644
--- a/lib/fog/ibm/requests/storage/create_volume.rb
+++ b/lib/fog/ibm/requests/storage/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class IBM
       class Real
-
         # Requests a new Storage Volume be created.
         #
         # ==== Parameters
@@ -43,7 +42,6 @@ module Fog
       end
 
       class Mock
-
         def create_volume(name, offering_id, format, location_id, size)
           volume          = Fog::IBM::Mock.create_volume(name, offering_id, format, location_id, size)
           self.data[:volumes][volume['id']] = volume
@@ -59,7 +57,6 @@ module Fog
           ready_volume(volume_id) unless volume_attached? volume_id
           self.data[:volumes][volume_id].reject { |k,v| k == 'ioPrice' }
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/storage/delete_volume.rb b/lib/fog/ibm/requests/storage/delete_volume.rb
index 7008331..d44db66 100644
--- a/lib/fog/ibm/requests/storage/delete_volume.rb
+++ b/lib/fog/ibm/requests/storage/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class IBM
       class Real
-
         # Deletes the storage that the authenticated user manages with the specified :storage_id
         #
         # ==== Parameters
@@ -19,11 +18,9 @@ module Fog
             :path     => "/storage/#{volume_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_volume(volume_id)
           response = Excon::Response.new
           if volume_exists? volume_id
@@ -35,7 +32,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/storage/get_volume.rb b/lib/fog/ibm/requests/storage/get_volume.rb
index 531bb30..6d7d2cb 100644
--- a/lib/fog/ibm/requests/storage/get_volume.rb
+++ b/lib/fog/ibm/requests/storage/get_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class IBM
       class Real
-
         # Used to retrieve the specified storage volume for specified volume_id
         #
         # ==== Parameters
@@ -18,11 +17,9 @@ module Fog
             :path     => "/storage/#{volume_id}"
           )
         end
-
       end
 
       class Mock
-
         # For whatever reason, get_volume returns different data than an entry in list_volumes
         def get_volume(volume_id)
           response = Excon::Response.new
@@ -65,7 +62,6 @@ module Fog
           # If not ready, make ready
           self.data[:volumes][volume_id]['state'] = 4
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/storage/list_offerings.rb b/lib/fog/ibm/requests/storage/list_offerings.rb
index 5143e8c..2238367 100644
--- a/lib/fog/ibm/requests/storage/list_offerings.rb
+++ b/lib/fog/ibm/requests/storage/list_offerings.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class IBM
       class Real
-
         # Returns the offerings of storage for the authenticated user
         #
         # ==== Parameters
@@ -32,11 +31,9 @@ module Fog
             :path     => '/offerings/storage'
           )
         end
-
       end
 
       class Mock
-
         def list_offerings
           response = Excon::Response.new
           response.status = 200
@@ -69,7 +66,6 @@ module Fog
                 "capacity"=>256}]},
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/requests/storage/list_volumes.rb b/lib/fog/ibm/requests/storage/list_volumes.rb
index 4e229d7..099ded3 100644
--- a/lib/fog/ibm/requests/storage/list_volumes.rb
+++ b/lib/fog/ibm/requests/storage/list_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class IBM
       class Real
-
         # Returns the list of storage volumes
         #
         # ==== Parameters
@@ -29,18 +28,15 @@ module Fog
             :path     => '/storage'
           )
         end
-
       end
 
       class Mock
-
         def list_volumes
           response = Excon::Response.new
           response.status = 200
           response.body = { 'volumes' => format_list_volumes_response }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/ibm/storage.rb b/lib/fog/ibm/storage.rb
index 27851c3..430b542 100644
--- a/lib/fog/ibm/storage.rb
+++ b/lib/fog/ibm/storage.rb
@@ -3,7 +3,6 @@ require 'fog/ibm/core'
 module Fog
   module Storage
     class IBM < Fog::Service
-
       requires :ibm_username, :ibm_password
       recognizes :location
 
@@ -42,11 +41,9 @@ module Fog
             end
           end
         end
-
       end
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -73,9 +70,7 @@ module Fog
           @ibm_password = options[:ibm_password]
           @data = self.class.data[@ibm_username]
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/core.rb b/lib/fog/internet_archive/core.rb
index ec7f342..8a3218e 100644
--- a/lib/fog/internet_archive/core.rb
+++ b/lib/fog/internet_archive/core.rb
@@ -4,7 +4,6 @@ require 'fog/internet_archive/signaturev4'
 
 module Fog
   module InternetArchive
-
     COMPLIANT_BUCKET_NAMES = /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\-(?![\.])){1,61}[a-z0-9]$/
 
     DOMAIN_NAME = 'archive.org'
@@ -52,7 +51,7 @@ module Fog
 
     def self.indexed_request_param(name, values)
       idx = -1
-      Array(values).inject({}) do |params, value|
+      Array(values).reduce({}) do |params, value|
         params["#{name}.#{idx += 1}"] = value
         params
       end
@@ -104,7 +103,6 @@ module Fog
     end
 
     class Mock
-
       def self.arn(vendor, account_id, path, region = nil)
         "arn:aws:#{vendor}:#{region}:#{account_id}:#{path}"
       end
@@ -206,10 +204,10 @@ module Fog
         request_id.join('-')
       end
       class << self
-        alias :reserved_instances_id :request_id
-        alias :reserved_instances_offering_id :request_id
-        alias :sqs_message_id :request_id
-        alias :sqs_sender_id :request_id
+        alias_method :reserved_instances_id, :request_id
+        alias_method :reserved_instances_offering_id, :request_id
+        alias_method :sqs_message_id, :request_id
+        alias_method :sqs_sender_id, :request_id
       end
 
       def self.reservation_id
diff --git a/lib/fog/internet_archive/models/storage/directories.rb b/lib/fog/internet_archive/models/storage/directories.rb
index c1a0790..34c4080 100644
--- a/lib/fog/internet_archive/models/storage/directories.rb
+++ b/lib/fog/internet_archive/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/internet_archive/models/storage/directory'
 module Fog
   module Storage
     class InternetArchive
-
       class Directories < Fog::Collection
-
         model Fog::Storage::InternetArchive::Directory
 
         def all
@@ -35,9 +33,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/models/storage/directory.rb b/lib/fog/internet_archive/models/storage/directory.rb
index 167d730..2e5d1fa 100644
--- a/lib/fog/internet_archive/models/storage/directory.rb
+++ b/lib/fog/internet_archive/models/storage/directory.rb
@@ -5,9 +5,7 @@ require 'fog/internet_archive/models/storage/ia_attributes.rb'
 module Fog
   module Storage
     class InternetArchive
-
       class Directory < Fog::Model
-
         extend Fog::Storage::IAAttributes::ClassMethods
         include Fog::Storage::IAAttributes::InstanceMethods
 
@@ -101,9 +99,7 @@ module Fog
           data = service.get_bucket_location(key)
           data.body['LocationConstraint']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/models/storage/file.rb b/lib/fog/internet_archive/models/storage/file.rb
index c83a4a1..41d99b5 100644
--- a/lib/fog/internet_archive/models/storage/file.rb
+++ b/lib/fog/internet_archive/models/storage/file.rb
@@ -4,9 +4,7 @@ require 'fog/internet_archive/models/storage/ia_attributes.rb'
 module Fog
   module Storage
     class InternetArchive
-
       class File < Fog::Model
-
         extend Fog::Storage::IAAttributes::ClassMethods
         include Fog::Storage::IAAttributes::InstanceMethods
 
@@ -18,7 +16,6 @@ module Fog
 
         attr_writer :body
 
-
         identity  :key,                 :aliases => 'Key'
 
         attribute :cache_control,       :aliases => 'Cache-Control'
@@ -66,7 +63,6 @@ module Fog
           end
         end
 
-
         # Set body attribute.
         #
         # @param [File] new_body
@@ -76,7 +72,6 @@ module Fog
           attributes[:body] = new_body
         end
 
-
         # Get the file instance's directory.
         #
         # @return [Fog::InternetArchive::Storage::Directory]
@@ -85,7 +80,6 @@ module Fog
           @directory
         end
 
-
         # Copy object from one bucket to other bucket.
         #
         #     required attributes: directory, key
@@ -102,7 +96,6 @@ module Fog
           target_directory.files.head(target_file_key)
         end
 
-
         # Destroy file via http DELETE.
         #
         #     required attributes: directory, key
@@ -127,7 +120,6 @@ module Fog
           merge_attributes(new_metadata)
         end
 
-
         remove_method :owner=
         def owner=(new_owner)
           if new_owner
@@ -138,7 +130,6 @@ module Fog
           end
         end
 
-
         # Set Access-Control-List permissions.
         #
         #     valid new_publics: public_read, private
@@ -150,7 +141,6 @@ module Fog
           'public-read'
         end
 
-
         # Get publicly acessible url via http GET.
         #
         #     required attributes: directory, key
@@ -212,7 +202,6 @@ module Fog
           true
         end
 
-
         # Get a url for file.
         #
         #     required attributes: key
@@ -259,9 +248,7 @@ module Fog
           # Complete the upload
           service.complete_multipart_upload(directory.key, key, upload_id, part_tags)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/models/storage/files.rb b/lib/fog/internet_archive/models/storage/files.rb
index 267db71..b307513 100644
--- a/lib/fog/internet_archive/models/storage/files.rb
+++ b/lib/fog/internet_archive/models/storage/files.rb
@@ -4,7 +4,6 @@ require 'fog/internet_archive/models/storage/file'
 module Fog
   module Storage
     class InternetArchive
-
       class Files < Fog::Collection
         extend Fog::Deprecation
         deprecate :get_url, :get_https_url
@@ -41,7 +40,7 @@ module Fog
           end
         end
 
-        alias :each_file_this_page :each
+        alias_method :each_file_this_page, :each
         def each
           if !block_given?
             self
@@ -114,9 +113,7 @@ module Fog
           data.headers['Last-Modified'] = Time.parse(data.get_header('Last-Modified'))
           data.headers['ETag'] = data.get_header('ETag').gsub('"','')
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/models/storage/ia_attributes.rb b/lib/fog/internet_archive/models/storage/ia_attributes.rb
index fe56554..9c26fab 100644
--- a/lib/fog/internet_archive/models/storage/ia_attributes.rb
+++ b/lib/fog/internet_archive/models/storage/ia_attributes.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     module IAAttributes
-
 		  # you can add other x-archive-metadata-* values, but these are standard
 		  IA_STANDARD_METADATA_FIELDS = %q[hidden, title, collection, creator, mediatype, description, date, subject, licenseurl, pick, noindex, notes, rights, contributor, language, coverage, credits]
 
@@ -10,7 +9,7 @@ module Fog
 
 			module ClassMethods
 			  def ia_metadata_attribute(name)
-			    attribute(name, :aliases=>['amz','archive'].collect{|p|"x-#{p}-#{name.to_s.tr('_','-')}"})
+			    attribute(name, :aliases=>['amz','archive'].map{|p|"x-#{p}-#{name.to_s.tr('_','-')}"})
 			  end
 			end
 
@@ -18,7 +17,7 @@ module Fog
 				# set_metadata_array_headers(:collections, options)
 				def set_metadata_array_headers(array_attribute, options={})
 				  attr_values = Array(self.send(array_attribute))
-				  opt_values = options.collect do |key,value|
+				  opt_values = options.map do |key,value|
 				    options.delete(key) if (key.to_s =~ /^x-(amz||archive)-meta(\d*)-#{array_attribute.to_s[0..-2]}/)
 				  end
 				  values = (attr_values + opt_values).compact.sort.uniq
@@ -30,10 +29,8 @@ module Fog
 				      options["x-archive-meta#{format("%02d", i+1)}-#{array_attribute.to_s[0..-2]}"] = value
 				    end
 				  end
-
 				end
 			end
-
 		end
 	end
 end
diff --git a/lib/fog/internet_archive/parsers/storage/access_control_list.rb b/lib/fog/internet_archive/parsers/storage/access_control_list.rb
index 900757c..c3b96fd 100644
--- a/lib/fog/internet_archive/parsers/storage/access_control_list.rb
+++ b/lib/fog/internet_archive/parsers/storage/access_control_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class AccessControlList < Fog::Parsers::Base
-
           def reset
             @in_access_control_list = false
             @grant = { 'Grantee' => {} }
@@ -37,9 +35,7 @@ module Fog
               @grant['Grantee'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/complete_multipart_upload.rb b/lib/fog/internet_archive/parsers/storage/complete_multipart_upload.rb
index 432870f..a9dbf0e 100644
--- a/lib/fog/internet_archive/parsers/storage/complete_multipart_upload.rb
+++ b/lib/fog/internet_archive/parsers/storage/complete_multipart_upload.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class CompleteMultipartUpload < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/copy_object.rb b/lib/fog/internet_archive/parsers/storage/copy_object.rb
index 5cc58a1..cd02e32 100644
--- a/lib/fog/internet_archive/parsers/storage/copy_object.rb
+++ b/lib/fog/internet_archive/parsers/storage/copy_object.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class CopyObject < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'ETag'
@@ -13,9 +11,7 @@ module Fog
               @response[name] = Time.parse(value)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/cors_configuration.rb b/lib/fog/internet_archive/parsers/storage/cors_configuration.rb
index 8d0b615..9cd3b0d 100644
--- a/lib/fog/internet_archive/parsers/storage/cors_configuration.rb
+++ b/lib/fog/internet_archive/parsers/storage/cors_configuration.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class CorsConfiguration < Fog::Parsers::Base
           def reset
             @in_cors_configuration_list = false
@@ -32,9 +31,7 @@ module Fog
               (@cors_rule[name] ||= []) << value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/delete_multiple_objects.rb b/lib/fog/internet_archive/parsers/storage/delete_multiple_objects.rb
index 0ff7de3..0e93418 100644
--- a/lib/fog/internet_archive/parsers/storage/delete_multiple_objects.rb
+++ b/lib/fog/internet_archive/parsers/storage/delete_multiple_objects.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class DeleteMultipleObjects < Fog::Parsers::Base
-
           def reset
             @deleted = { 'Deleted' => {} }
             @error = { 'Error' => {} }
@@ -40,11 +38,8 @@ module Fog
               @error['Error'][name] = value
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/internet_archive/parsers/storage/get_bucket.rb b/lib/fog/internet_archive/parsers/storage/get_bucket.rb
index 8866772..d82012e 100644
--- a/lib/fog/internet_archive/parsers/storage/get_bucket.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_bucket.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetBucket < Fog::Parsers::Base
-
           def reset
             @object = { 'Owner' => {} }
             @response = { 'Contents' => [], 'CommonPrefixes' => [] }
@@ -53,9 +51,7 @@ module Fog
               @object[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/get_bucket_lifecycle.rb b/lib/fog/internet_archive/parsers/storage/get_bucket_lifecycle.rb
index 6ae5dac..4b2e8bc 100644
--- a/lib/fog/internet_archive/parsers/storage/get_bucket_lifecycle.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_bucket_lifecycle.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetBucketLifecycle < Fog::Parsers::Base
-
           def reset
             @expiration = {}
             @transition = {}
diff --git a/lib/fog/internet_archive/parsers/storage/get_bucket_location.rb b/lib/fog/internet_archive/parsers/storage/get_bucket_location.rb
index 393cf6c..5803873 100644
--- a/lib/fog/internet_archive/parsers/storage/get_bucket_location.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_bucket_location.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetBucketLocation < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'LocationConstraint'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/get_bucket_logging.rb b/lib/fog/internet_archive/parsers/storage/get_bucket_logging.rb
index d495228..0978cde 100644
--- a/lib/fog/internet_archive/parsers/storage/get_bucket_logging.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_bucket_logging.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetBucketLogging < Fog::Parsers::Base
-
           def reset
             @grant = { 'Grantee' => {} }
             @response = { 'BucketLoggingStatus' => {} }
@@ -31,9 +29,7 @@ module Fog
               @grant['Grantee'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/get_bucket_website.rb b/lib/fog/internet_archive/parsers/storage/get_bucket_website.rb
index 7d50089..d1def46 100644
--- a/lib/fog/internet_archive/parsers/storage/get_bucket_website.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_bucket_website.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetBucketWebsite < Fog::Parsers::Base
-
           def reset
             @response = { 'ErrorDocument' => {}, 'IndexDocument' => {} }
           end
@@ -17,9 +15,7 @@ module Fog
               @response['IndexDocument'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/get_request_payment.rb b/lib/fog/internet_archive/parsers/storage/get_request_payment.rb
index 20855d4..b2f680c 100644
--- a/lib/fog/internet_archive/parsers/storage/get_request_payment.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_request_payment.rb
@@ -2,18 +2,14 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetRequestPayment < Fog::Parsers::Base
-
           def end_element(name)
             case name
             when 'Payer'
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/get_service.rb b/lib/fog/internet_archive/parsers/storage/get_service.rb
index 401b2db..ccd0aee 100644
--- a/lib/fog/internet_archive/parsers/storage/get_service.rb
+++ b/lib/fog/internet_archive/parsers/storage/get_service.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class GetService < Fog::Parsers::Base
-
           def reset
             @bucket = {}
             @response = { 'Owner' => {}, 'Buckets' => [] }
@@ -23,9 +21,7 @@ module Fog
               @bucket[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/initiate_multipart_upload.rb b/lib/fog/internet_archive/parsers/storage/initiate_multipart_upload.rb
index f5e439d..584b7ec 100644
--- a/lib/fog/internet_archive/parsers/storage/initiate_multipart_upload.rb
+++ b/lib/fog/internet_archive/parsers/storage/initiate_multipart_upload.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class InitiateMultipartUpload < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/list_multipart_uploads.rb b/lib/fog/internet_archive/parsers/storage/list_multipart_uploads.rb
index 82fbd27..6792796 100644
--- a/lib/fog/internet_archive/parsers/storage/list_multipart_uploads.rb
+++ b/lib/fog/internet_archive/parsers/storage/list_multipart_uploads.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class ListMultipartUploads < Fog::Parsers::Base
-
           def reset
             @upload = { 'Initiator' => {}, 'Owner' => {} }
             @response = { 'Upload' => [] }
@@ -47,9 +45,7 @@ module Fog
               @upload = { 'Initiator' => {}, 'Owner' => {} }
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/parsers/storage/list_parts.rb b/lib/fog/internet_archive/parsers/storage/list_parts.rb
index 229ee7c..d779fc8 100644
--- a/lib/fog/internet_archive/parsers/storage/list_parts.rb
+++ b/lib/fog/internet_archive/parsers/storage/list_parts.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Storage
       module InternetArchive
-
         class ListParts < Fog::Parsers::Base
-
           def reset
             @part = {}
             @response = { 'Initiator' => {}, 'Part' => [] }
@@ -31,9 +29,7 @@ module Fog
               @part[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/abort_multipart_upload.rb b/lib/fog/internet_archive/requests/storage/abort_multipart_upload.rb
index 6a1e345..f57c398 100644
--- a/lib/fog/internet_archive/requests/storage/abort_multipart_upload.rb
+++ b/lib/fog/internet_archive/requests/storage/abort_multipart_upload.rb
@@ -21,7 +21,6 @@ module Fog
             :query      => {'uploadId' => upload_id}
           })
         end
-
       end # Real
     end # Storage
   end # InternetArchive
diff --git a/lib/fog/internet_archive/requests/storage/acl_utils.rb b/lib/fog/internet_archive/requests/storage/acl_utils.rb
index 1523a33..11dc8cd 100644
--- a/lib/fog/internet_archive/requests/storage/acl_utils.rb
+++ b/lib/fog/internet_archive/requests/storage/acl_utils.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class InternetArchive
-
       require 'fog/internet_archive/parsers/storage/access_control_list'
 
       private
@@ -22,11 +21,11 @@ module Fog
             data << "    <Grant>\n"
             grantee = grant['Grantee']
             type = case
-            when grantee.has_key?('ID')
+            when grantee.key?('ID')
               'CanonicalUser'
-            when grantee.has_key?('EmailAddress')
+            when grantee.key?('EmailAddress')
               'AmazonCustomerByEmail'
-            when grantee.has_key?('URI')
+            when grantee.key?('URI')
               'Group'
             end
 
@@ -56,7 +55,6 @@ module Fog
           Nokogiri::XML::SAX::Parser.new(parser).parse(acl_xml)
           parser.response
         end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/complete_multipart_upload.rb b/lib/fog/internet_archive/requests/storage/complete_multipart_upload.rb
index f6e2c63..99daec0 100644
--- a/lib/fog/internet_archive/requests/storage/complete_multipart_upload.rb
+++ b/lib/fog/internet_archive/requests/storage/complete_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/complete_multipart_upload'
 
         # Complete a multipart upload
@@ -41,7 +40,6 @@ module Fog
             :query      => {'uploadId' => upload_id}
           })
         end
-
       end # Real
     end # Storage
   end # InternetArchive
diff --git a/lib/fog/internet_archive/requests/storage/copy_object.rb b/lib/fog/internet_archive/requests/storage/copy_object.rb
index ee5a95d..5b86e31 100644
--- a/lib/fog/internet_archive/requests/storage/copy_object.rb
+++ b/lib/fog/internet_archive/requests/storage/copy_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/copy_object'
 
         # Copy an object from one S3 bucket to another
@@ -39,11 +38,9 @@ module Fog
             :path     => CGI.escape(target_object_name)
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
           response = Excon::Response.new
           source_bucket = self.data[:buckets][source_bucket_name]
@@ -74,7 +71,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/cors_utils.rb b/lib/fog/internet_archive/requests/storage/cors_utils.rb
index b2b8001..d56d25d 100644
--- a/lib/fog/internet_archive/requests/storage/cors_utils.rb
+++ b/lib/fog/internet_archive/requests/storage/cors_utils.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class InternetArchive
-
       require 'fog/internet_archive/parsers/storage/cors_configuration'
 
       private
@@ -35,7 +34,6 @@ module Fog
           Nokogiri::XML::SAX::Parser.new(parser).parse(cors_xml)
           parser.response
         end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/delete_bucket.rb b/lib/fog/internet_archive/requests/storage/delete_bucket.rb
index 91f6049..b6166c6 100644
--- a/lib/fog/internet_archive/requests/storage/delete_bucket.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Delete an S3 bucket
         #
         # @param bucket_name [String] name of bucket to delete
@@ -20,11 +19,9 @@ module Fog
             :method   => 'DELETE'
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_bucket(bucket_name)
           response = Excon::Response.new
           if self.data[:buckets][bucket_name].nil?
@@ -39,9 +36,7 @@ module Fog
           end
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/delete_bucket_cors.rb b/lib/fog/internet_archive/requests/storage/delete_bucket_cors.rb
index 6ec2121..b880beb 100644
--- a/lib/fog/internet_archive/requests/storage/delete_bucket_cors.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_bucket_cors.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Deletes the cors configuration information set for the bucket.
         #
         # @param bucket_name [String] name of bucket to delete cors rules from
@@ -21,9 +20,7 @@ module Fog
             :query    => {'cors' => nil}
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/delete_bucket_lifecycle.rb b/lib/fog/internet_archive/requests/storage/delete_bucket_lifecycle.rb
index 3a6b1e2..e07af56 100644
--- a/lib/fog/internet_archive/requests/storage/delete_bucket_lifecycle.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_bucket_lifecycle.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Delete lifecycle configuration for a bucket
         #
         # @param bucket_name [String] name of bucket to delete lifecycle configuration from
diff --git a/lib/fog/internet_archive/requests/storage/delete_bucket_policy.rb b/lib/fog/internet_archive/requests/storage/delete_bucket_policy.rb
index 9cf6d20..d528434 100644
--- a/lib/fog/internet_archive/requests/storage/delete_bucket_policy.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_bucket_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Delete policy for a bucket
         #
         # @param bucket_name [String] name of bucket to delete policy from
@@ -21,9 +20,7 @@ module Fog
             :query    => {'policy' => nil}
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/delete_bucket_website.rb b/lib/fog/internet_archive/requests/storage/delete_bucket_website.rb
index 7c90bb6..748f444 100644
--- a/lib/fog/internet_archive/requests/storage/delete_bucket_website.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_bucket_website.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Delete website configuration for a bucket
         #
         # @param bucket_name [String] name of bucket to delete website configuration from
@@ -21,9 +20,7 @@ module Fog
             :query    => {'website' => nil}
           })
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb b/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb
index f076892..362bab7 100644
--- a/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/delete_multiple_objects'
 
         # Delete multiple objects from S3
@@ -56,11 +55,9 @@ module Fog
             :query      => {'delete' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_multiple_objects(bucket_name, object_names, options = {})
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -85,9 +82,7 @@ module Fog
           response['Deleted'] = { 'Key' => object_name }
           response
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/internet_archive/requests/storage/delete_object.rb b/lib/fog/internet_archive/requests/storage/delete_object.rb
index a5a6eb4..856bc51 100644
--- a/lib/fog/internet_archive/requests/storage/delete_object.rb
+++ b/lib/fog/internet_archive/requests/storage/delete_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Delete an object from S3
         #
         # @param bucket_name [String] Name of bucket containing object to delete
@@ -26,11 +25,9 @@ module Fog
             :path       => path
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def delete_object(bucket_name, object_name, options = {})
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -43,7 +40,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket.rb b/lib/fog/internet_archive/requests/storage/get_bucket.rb
index 8078d4d..7fdb6de 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_bucket'
 
         # List information about objects in an S3 bucket
@@ -51,11 +50,9 @@ module Fog
             :query    => options
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_bucket(bucket_name, options = {})
           prefix, marker, delimiter, max_keys = \
             options['prefix'], options['marker'], options['delimiter'], options['max-keys']
@@ -66,12 +63,12 @@ module Fog
           end
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
-            contents = bucket[:objects].values.collect(&:first).sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
+            contents = bucket[:objects].values.map(&:first).sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
                 (prefix    && object['Key'][0...prefix.length] != prefix) ||
                 (marker    && object['Key'] <= marker) ||
                 (delimiter && object['Key'][(prefix ? prefix.length : 0)..-1].include?(delimiter) \
                            && common_prefixes << object['Key'].sub(/^(#{prefix}[^#{delimiter}]+.).*/, '\1')) ||
-                object.has_key?(:delete_marker)
+                object.key?(:delete_marker)
               end.map do |object|
                 data = object.reject {|key, value| !['ETag', 'Key', 'StorageClass'].include?(key)}
                 data.merge!({
@@ -105,7 +102,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_acl.rb b/lib/fog/internet_archive/requests/storage/get_bucket_acl.rb
index 709a684..aae0875 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_acl.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/access_control_list'
 
         # Get access control list for an S3 bucket
@@ -40,11 +39,9 @@ module Fog
             :query      => {'acl' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/internet_archive/requests/storage/acl_utils'
 
         def get_bucket_acl(bucket_name)
@@ -62,7 +59,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_cors.rb b/lib/fog/internet_archive/requests/storage/get_bucket_cors.rb
index 4cd1e22..86e4ecd 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_cors.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_cors.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/cors_configuration'
 
         # Gets the CORS configuration for an S3 bucket
@@ -36,11 +35,9 @@ module Fog
             :query      => {'cors' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/internet_archive/requests/storage/cors_utils'
 
         def get_bucket_cors(bucket_name)
@@ -58,7 +55,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_lifecycle.rb b/lib/fog/internet_archive/requests/storage/get_bucket_lifecycle.rb
index 67176f0..2845854 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_lifecycle.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_lifecycle.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_bucket_lifecycle'
 
         # Get bucket lifecycle configuration
@@ -30,9 +29,7 @@ module Fog
                     :query    => {'lifecycle' => nil}
                   })
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_location.rb b/lib/fog/internet_archive/requests/storage/get_bucket_location.rb
index fffbe5e..2e1ef0b 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_location.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_location.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_bucket_location'
 
         # Get location constraint for an S3 bucket
@@ -26,11 +25,9 @@ module Fog
             :query    => {'location' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_bucket_location(bucket_name)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -51,7 +48,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_logging.rb b/lib/fog/internet_archive/requests/storage/get_bucket_logging.rb
index 18bfbed..1ebd808 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_logging.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_logging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_bucket_logging'
 
         # Get logging status for an S3 bucket
@@ -40,7 +39,6 @@ module Fog
             :query      => {'logging' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_policy.rb b/lib/fog/internet_archive/requests/storage/get_bucket_policy.rb
index d021e8a..10f9699 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_policy.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Get bucket policy for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to get policy for
@@ -26,9 +25,7 @@ module Fog
           })
           response.body = Fog::JSON.decode(response.body) unless response.body.nil?
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/get_bucket_website.rb b/lib/fog/internet_archive/requests/storage/get_bucket_website.rb
index f359730..1ed3d64 100644
--- a/lib/fog/internet_archive/requests/storage/get_bucket_website.rb
+++ b/lib/fog/internet_archive/requests/storage/get_bucket_website.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_bucket_website'
 
         # Get website configuration for an S3 bucket
@@ -33,7 +32,6 @@ module Fog
             :query      => {'website' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_object.rb b/lib/fog/internet_archive/requests/storage/get_object.rb
index 1cbeed7..e2decd9 100644
--- a/lib/fog/internet_archive/requests/storage/get_object.rb
+++ b/lib/fog/internet_archive/requests/storage/get_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Get an object from S3
         #
         # @param bucket_name [String] Name of bucket to read from
@@ -53,13 +52,10 @@ module Fog
             :path     => CGI.escape(object_name),
           }))
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_object(bucket_name, object_name, options = {}, &block)
-
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
           end
@@ -71,7 +67,7 @@ module Fog
           response = Excon::Response.new
           if (bucket = self.data[:buckets][bucket_name])
             object = nil
-            if bucket[:objects].has_key?(object_name)
+            if bucket[:objects].key?(object_name)
               object = bucket[:objects][object_name].first
             end
 
diff --git a/lib/fog/internet_archive/requests/storage/get_object_acl.rb b/lib/fog/internet_archive/requests/storage/get_object_acl.rb
index 4850027..c09c9dc 100644
--- a/lib/fog/internet_archive/requests/storage/get_object_acl.rb
+++ b/lib/fog/internet_archive/requests/storage/get_object_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/access_control_list'
 
         # Get access control list for an S3 object
@@ -47,11 +46,9 @@ module Fog
             :query      => query
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         require 'fog/internet_archive/requests/storage/acl_utils'
 
         def get_object_acl(bucket_name, object_name, options = {})
@@ -69,7 +66,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_object_http_url.rb b/lib/fog/internet_archive/requests/storage/get_object_http_url.rb
index c43e561..4268eac 100644
--- a/lib/fog/internet_archive/requests/storage/get_object_http_url.rb
+++ b/lib/fog/internet_archive/requests/storage/get_object_http_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class InternetArchive
-
       module GetObjectHttpUrl
-
         def get_object_http_url(bucket_name, object_name, expires, options = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -25,11 +23,9 @@ module Fog
             :query    => options[:query]
           }, expires)
         end
-
       end
 
       class Real
-
         # Get an expiring object http url from S3
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -42,13 +38,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectHttpUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectHttpUrl
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_object_https_url.rb b/lib/fog/internet_archive/requests/storage/get_object_https_url.rb
index 94c24ed..0b39379 100644
--- a/lib/fog/internet_archive/requests/storage/get_object_https_url.rb
+++ b/lib/fog/internet_archive/requests/storage/get_object_https_url.rb
@@ -1,17 +1,13 @@
 module Fog
   module Storage
     class InternetArchive
-
       module GetObjectHttpsUrl
-
         def get_object_https_url(bucket_name, object_name, expires, options = {})
           get_object_url(bucket_name, object_name, expires, options.merge(:scheme => 'https'))
         end
-
       end
 
       class Real
-
         # Get an expiring object https url from S3
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -24,13 +20,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectHttpsUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectHttpsUrl
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_object_torrent.rb b/lib/fog/internet_archive/requests/storage/get_object_torrent.rb
index 1231d87..6115d0c 100644
--- a/lib/fog/internet_archive/requests/storage/get_object_torrent.rb
+++ b/lib/fog/internet_archive/requests/storage/get_object_torrent.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Get torrent for an S3 object
         #
         # @param bucket_name [String] name of bucket containing object
@@ -40,7 +39,6 @@ module Fog
             :query      => {'torrent' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_object_url.rb b/lib/fog/internet_archive/requests/storage/get_object_url.rb
index 1deb2f3..3bf9592 100644
--- a/lib/fog/internet_archive/requests/storage/get_object_url.rb
+++ b/lib/fog/internet_archive/requests/storage/get_object_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class InternetArchive
-
       module GetObjectUrl
-
         def get_object_url(bucket_name, object_name, expires, options = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -29,7 +27,6 @@ module Fog
       end
 
       class Real
-
         # Get an expiring object url from S3
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -42,13 +39,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include GetObjectUrl
-
       end
 
       class Mock # :nodoc:all
-
         include GetObjectUrl
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_request_payment.rb b/lib/fog/internet_archive/requests/storage/get_request_payment.rb
index 5babd5a..6a90ff5 100644
--- a/lib/fog/internet_archive/requests/storage/get_request_payment.rb
+++ b/lib/fog/internet_archive/requests/storage/get_request_payment.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_request_payment'
 
         # Get configured payer for an S3 bucket
@@ -26,11 +25,9 @@ module Fog
             :query    => {'requestPayment' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_request_payment(bucket_name)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -42,7 +39,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/get_service.rb b/lib/fog/internet_archive/requests/storage/get_service.rb
index 6525dc2..469a2be 100644
--- a/lib/fog/internet_archive/requests/storage/get_service.rb
+++ b/lib/fog/internet_archive/requests/storage/get_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/get_service'
 
         # List information about S3 buckets for authorized user
@@ -28,11 +27,9 @@ module Fog
             :parser   => Fog::Parsers::Storage::InternetArchive::GetService.new
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def get_service
           response = Excon::Response.new
           response.headers['Status'] = 200
@@ -47,7 +44,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/head_object.rb b/lib/fog/internet_archive/requests/storage/head_object.rb
index 628d4e2..036ce54 100644
--- a/lib/fog/internet_archive/requests/storage/head_object.rb
+++ b/lib/fog/internet_archive/requests/storage/head_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Get headers for an object from S3
         #
         # @param bucket_name [String] Name of bucket to read from
@@ -44,17 +43,14 @@ module Fog
             :path       => CGI.escape(object_name)
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def head_object(bucket_name, object_name, options = {})
           response = get_object(bucket_name, object_name, options)
           response.body = nil
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/initiate_multipart_upload.rb b/lib/fog/internet_archive/requests/storage/initiate_multipart_upload.rb
index b84d7d0..5991008 100644
--- a/lib/fog/internet_archive/requests/storage/initiate_multipart_upload.rb
+++ b/lib/fog/internet_archive/requests/storage/initiate_multipart_upload.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/initiate_multipart_upload'
 
         # Initiate a multipart upload to an S3 bucket
@@ -37,7 +36,6 @@ module Fog
             :query      => {'uploads' => nil}
           })
         end
-
       end # Real
     end # Storage
   end # InternetArchive
diff --git a/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb b/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb
index 65dab3c..2f6cea9 100644
--- a/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb
+++ b/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/list_multipart_uploads'
 
         # List multipart uploads for a bucket
@@ -47,7 +46,6 @@ module Fog
             :query    => options.merge!({'uploads' => nil})
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/list_parts.rb b/lib/fog/internet_archive/requests/storage/list_parts.rb
index b3c4485..b636585 100644
--- a/lib/fog/internet_archive/requests/storage/list_parts.rb
+++ b/lib/fog/internet_archive/requests/storage/list_parts.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/parsers/storage/list_parts'
 
         # List parts for a multipart upload
@@ -48,7 +47,6 @@ module Fog
             :query    => options.merge!({'uploadId' => upload_id})
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb b/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb
index 9d1b66a..054c01e 100644
--- a/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb
+++ b/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Get a hash of hidden fields for form uploading to S3, in the form {:field_name => :field_value}
         # Form should look like: <form action="http://#{bucket_name}.#{Fog::InternetArchive::API_DOMAIN_NAME}/" method="post" enctype="multipart/form-data">
         # These hidden fields should then appear, followed by a field named 'file' which is either a textarea or file input.
@@ -31,7 +30,6 @@ module Fog
           end
           options
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket.rb b/lib/fog/internet_archive/requests/storage/put_bucket.rb
index a447d5c..bcdce73 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Create an S3 bucket
         #
         # @param bucket_name [String] name of bucket to create
@@ -35,11 +34,9 @@ DATA
             :method     => 'PUT'
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_bucket(bucket_name, options = {})
           acl = options['x-amz-acl'] || 'private'
           if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
@@ -67,7 +64,6 @@ DATA
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket_acl.rb b/lib/fog/internet_archive/requests/storage/put_bucket_acl.rb
index 08ab7fe..77c7496 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket_acl.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/requests/storage/acl_utils'
 
         # Change access control list for an S3 bucket
@@ -65,7 +64,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket_cors.rb b/lib/fog/internet_archive/requests/storage/put_bucket_cors.rb
index 6644806..80732cc 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket_cors.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket_cors.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/requests/storage/cors_utils'
 
         # Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.
@@ -43,7 +42,6 @@ module Fog
           self.data[:cors][:bucket][bucket_name] = Fog::Storage::InternetArchive.hash_to_cors(cors)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket_lifecycle.rb b/lib/fog/internet_archive/requests/storage/put_bucket_lifecycle.rb
index 7f5e28d..f38a7c8 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket_lifecycle.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket_lifecycle.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Change lifecycle configuration for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to set lifecycle configuration for
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket_logging.rb b/lib/fog/internet_archive/requests/storage/put_bucket_logging.rb
index 21cad53..4cb2378 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket_logging.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket_logging.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Change logging status for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -74,7 +73,6 @@ DATA
             :query    => {'logging' => nil}
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket_policy.rb b/lib/fog/internet_archive/requests/storage/put_bucket_policy.rb
index 83f5834..c770834 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket_policy.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Change bucket policy for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -20,9 +19,7 @@ module Fog
             :query    => {'policy' => nil}
           })
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/internet_archive/requests/storage/put_bucket_website.rb b/lib/fog/internet_archive/requests/storage/put_bucket_website.rb
index 97cda54..3634d70 100644
--- a/lib/fog/internet_archive/requests/storage/put_bucket_website.rb
+++ b/lib/fog/internet_archive/requests/storage/put_bucket_website.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Change website configuration for an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -40,11 +39,9 @@ DATA
             :query    => {'website' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_bucket_website(bucket_name, suffix, options = {})
           response = Excon::Response.new
           if self.data[:buckets][bucket_name]
@@ -56,9 +53,7 @@ DATA
 
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/put_object.rb b/lib/fog/internet_archive/requests/storage/put_object.rb
index 06c2e99..9089dab 100644
--- a/lib/fog/internet_archive/requests/storage/put_object.rb
+++ b/lib/fog/internet_archive/requests/storage/put_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Create an object in an S3 bucket
         #
         # @param bucket_name [String] Name of bucket to create object in
@@ -39,11 +38,9 @@ module Fog
             :path       => CGI.escape(object_name)
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_object(bucket_name, object_name, data, options = {})
           acl = options['x-amz-acl'] || 'private'
           if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
@@ -91,7 +88,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/put_object_acl.rb b/lib/fog/internet_archive/requests/storage/put_object_acl.rb
index c6c6093..8e25de7 100644
--- a/lib/fog/internet_archive/requests/storage/put_object_acl.rb
+++ b/lib/fog/internet_archive/requests/storage/put_object_acl.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         require 'fog/internet_archive/requests/storage/acl_utils'
 
         # Change access control list for an S3 object
@@ -69,7 +68,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/requests/storage/put_object_url.rb b/lib/fog/internet_archive/requests/storage/put_object_url.rb
index d5ca461..1a76c06 100644
--- a/lib/fog/internet_archive/requests/storage/put_object_url.rb
+++ b/lib/fog/internet_archive/requests/storage/put_object_url.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       module PutObjectUrl
-
         def put_object_url(bucket_name, object_name, expires, headers = {}, options = {})
           unless bucket_name
             raise ArgumentError.new('bucket_name is required')
@@ -22,7 +21,6 @@ module Fog
       end
 
       class Real
-
         # Get an expiring object url from S3 for putting an object
         #
         # @param bucket_name [String] Name of bucket containing object
@@ -35,13 +33,10 @@ module Fog
         # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
 
         include PutObjectUrl
-
       end
 
       class Mock # :nodoc:all
-
         include PutObjectUrl
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/put_request_payment.rb b/lib/fog/internet_archive/requests/storage/put_request_payment.rb
index 4f2752e..06c7b31 100644
--- a/lib/fog/internet_archive/requests/storage/put_request_payment.rb
+++ b/lib/fog/internet_archive/requests/storage/put_request_payment.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Change who pays for requests to an S3 bucket
         #
         # @param bucket_name [String] name of bucket to modify
@@ -26,11 +25,9 @@ DATA
             :query    => {'requestPayment' => nil}
           })
         end
-
       end
 
       class Mock # :nodoc:all
-
         def put_request_payment(bucket_name, payer)
           response = Excon::Response.new
           if bucket = self.data[:buckets][bucket_name]
@@ -42,7 +39,6 @@ DATA
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/internet_archive/requests/storage/sync_clock.rb b/lib/fog/internet_archive/requests/storage/sync_clock.rb
index 7137b0e..9ed4dcf 100644
--- a/lib/fog/internet_archive/requests/storage/sync_clock.rb
+++ b/lib/fog/internet_archive/requests/storage/sync_clock.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Sync clock against S3 to avoid skew errors
         #
         def sync_clock
@@ -13,15 +12,12 @@ module Fog
           end
           Fog::Time.now = Time.parse(response.headers['Date'])
         end
-
       end # Real
 
       class Mock # :nodoc:all
-
         def sync_clock
           true
         end
-
       end # Mock
     end # Storage
   end # InternetArchive
diff --git a/lib/fog/internet_archive/requests/storage/upload_part.rb b/lib/fog/internet_archive/requests/storage/upload_part.rb
index b77f69c..10fd759 100644
--- a/lib/fog/internet_archive/requests/storage/upload_part.rb
+++ b/lib/fog/internet_archive/requests/storage/upload_part.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class InternetArchive
       class Real
-
         # Upload a part for a multipart upload
         #
         # @param bucket_name [String] Name of bucket to add part to
@@ -34,7 +33,6 @@ module Fog
             :query      => {'uploadId' => upload_id, 'partNumber' => part_number}
           })
         end
-
       end # Real
     end # Storage
   end # InternetArchive
diff --git a/lib/fog/internet_archive/signaturev4.rb b/lib/fog/internet_archive/signaturev4.rb
index 16c8f43..d3201c3 100644
--- a/lib/fog/internet_archive/signaturev4.rb
+++ b/lib/fog/internet_archive/signaturev4.rb
@@ -56,7 +56,7 @@ DATA
       end
 
       def signed_headers(headers)
-        headers.keys.collect {|key| key.to_s}.sort.collect {|key| key.downcase}.join(';')
+        headers.keys.map {|key| key.to_s}.sort.map {|key| key.downcase}.join(';')
       end
 
       def derived_hmac(date)
@@ -66,8 +66,6 @@ DATA
         kSigning = Fog::HMAC.new('sha256', kService).sign('aws4_request')
         Fog::HMAC.new('sha256', kSigning)
       end
-
-
     end
   end
 end
diff --git a/lib/fog/internet_archive/storage.rb b/lib/fog/internet_archive/storage.rb
index f0b8ffa..dffd8d5 100644
--- a/lib/fog/internet_archive/storage.rb
+++ b/lib/fog/internet_archive/storage.rb
@@ -3,7 +3,6 @@ require 'fog/internet_archive/core'
 module Fog
   module Storage
     class InternetArchive < Fog::Service
-
       requires :ia_access_key_id, :ia_secret_access_key
       recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent, :ia_session_token, :ia_credentials_expire_at
 
@@ -62,7 +61,6 @@ module Fog
       request :upload_part
 
       module Utils
-
         attr_accessor :region
 
         def http_url(params, expires)
@@ -78,7 +76,6 @@ module Fog
           http_url(params, expires)
         end
 
-
         private
 
         def scheme_host_path_query(params, expires)
@@ -106,7 +103,6 @@ module Fog
           port_part = params[:port] && ":#{params[:port]}"
           "#{params[:scheme]}://#{params[:host]}#{port_part}/#{params[:path]}?#{query.join('&')}"
         end
-
       end
 
       class Mock
@@ -220,7 +216,6 @@ module Fog
           @ia_session_token     = options[:ia_session_token]
           @ia_credentials_expire_at = options[:ia_credentials_expire_at]
         end
-
       end
 
       class Real
diff --git a/lib/fog/joyent.rb b/lib/fog/joyent.rb
index 88be77f..660c3f4 100644
--- a/lib/fog/joyent.rb
+++ b/lib/fog/joyent.rb
@@ -8,6 +8,5 @@ module Fog
 
     service(:analytics, 'Analytics')
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/joyent/analytics.rb b/lib/fog/joyent/analytics.rb
index 49c9dfb..8742d7b 100644
--- a/lib/fog/joyent/analytics.rb
+++ b/lib/fog/joyent/analytics.rb
@@ -46,7 +46,6 @@ module Fog
 
       model :value
 
-
       class Mock
         def self.data
           @data ||= Hash.new do |hash, key|
@@ -167,7 +166,7 @@ module Fog
             @header_method = method(:header_for_signature_auth)
 
             if options[:joyent_keyfile]
-              if File.exists?(options[:joyent_keyfile])
+              if File.exist?(options[:joyent_keyfile])
                 @joyent_keyfile = options[:joyent_keyfile]
                 @key_manager.add(@joyent_keyfile)
               else
@@ -206,7 +205,6 @@ module Fog
             opts[:body] = Fog::JSON.encode(opts[:body])
           end
 
-
           response = @connection.request(opts)
           if response.headers["Content-Type"] == "application/json"
             response.body = json_decode(response.body)
@@ -306,7 +304,6 @@ module Fog
             raise Fog::Compute::Joyent::Errors::ServiceUnavailable.new('Either there\'s no capacity in this datacenter, or we\'re in a maintenance window', request, response)
           end
         end
-
       end # Real
     end
   end
diff --git a/lib/fog/joyent/compute.rb b/lib/fog/joyent/compute.rb
index 3d46993..c3965fe 100644
--- a/lib/fog/joyent/compute.rb
+++ b/lib/fog/joyent/compute.rb
@@ -5,7 +5,6 @@ require 'net/ssh'
 module Fog
   module Compute
     class Joyent < Fog::Service
-
       requires :joyent_username
 
       recognizes :joyent_password
@@ -115,7 +114,6 @@ module Fog
         attr_accessor :joyent_url
 
         def initialize(options = {})
-
           @connection_options = options[:connection_options] || {}
           @persistent = options[:persistent] || false
 
@@ -137,7 +135,7 @@ module Fog
             @header_method = method(:header_for_signature_auth)
 
             if options[:joyent_keyfile]
-              if File.exists?(options[:joyent_keyfile])
+              if File.exist?(options[:joyent_keyfile])
                 @joyent_keyfile = options[:joyent_keyfile]
                 @key_manager.add(@joyent_keyfile)
               else
@@ -176,7 +174,6 @@ module Fog
             opts[:body] = Fog::JSON.encode(opts[:body])
           end
 
-
           response = @connection.request(opts)
           if response.headers["Content-Type"] == "application/json"
             response.body = json_decode(response.body)
@@ -274,7 +271,6 @@ module Fog
             raise Joyent::Errors::ServiceUnavailable.new('Either there\'s no capacity in this datacenter, or we\'re in a maintenance window', request, response)
           end
         end
-
       end # Real
     end
   end
diff --git a/lib/fog/joyent/core.rb b/lib/fog/joyent/core.rb
index debd99f..ffdec81 100644
--- a/lib/fog/joyent/core.rb
+++ b/lib/fog/joyent/core.rb
@@ -6,6 +6,5 @@ module Fog
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/joyent/errors.rb b/lib/fog/joyent/errors.rb
index 8e7541b..13c8dd9 100644
--- a/lib/fog/joyent/errors.rb
+++ b/lib/fog/joyent/errors.rb
@@ -3,7 +3,6 @@ require 'fog/joyent/core'
 module Fog
   module Compute
     class Joyent < Fog::Service
-
       class Errors
         module MessageParserMixin
           def message
diff --git a/lib/fog/joyent/models/analytics/field.rb b/lib/fog/joyent/models/analytics/field.rb
index 02815b0..d4c51aa 100644
--- a/lib/fog/joyent/models/analytics/field.rb
+++ b/lib/fog/joyent/models/analytics/field.rb
@@ -7,7 +7,6 @@ module Fog
         attribute :name
         attribute :label
         attribute :type
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/fields.rb b/lib/fog/joyent/models/analytics/fields.rb
index 5b3ae3e..a2eac31 100644
--- a/lib/fog/joyent/models/analytics/fields.rb
+++ b/lib/fog/joyent/models/analytics/fields.rb
@@ -4,7 +4,6 @@ module Fog
   module Joyent
     class Analytics
       class Fields < Fog::Collection
-
         model Fog::Joyent::Analytics::Field
 
         def all
@@ -19,7 +18,6 @@ module Fog
           name, other_attributes = attributes
           super(other_attributes.merge('name' => name))
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/instrumentation.rb b/lib/fog/joyent/models/analytics/instrumentation.rb
index a932e58..e2fea88 100644
--- a/lib/fog/joyent/models/analytics/instrumentation.rb
+++ b/lib/fog/joyent/models/analytics/instrumentation.rb
@@ -76,7 +76,6 @@ module Fog
             Fog::Joyent::Analytics::Value.new(datum)
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/instrumentations.rb b/lib/fog/joyent/models/analytics/instrumentations.rb
index 5a54ac8..6795e3f 100644
--- a/lib/fog/joyent/models/analytics/instrumentations.rb
+++ b/lib/fog/joyent/models/analytics/instrumentations.rb
@@ -4,7 +4,6 @@ module Fog
   module Joyent
     class Analytics
       class Instrumentations < Fog::Collection
-
         model Fog::Joyent::Analytics::Instrumentation
 
         def all
@@ -18,8 +17,6 @@ module Fog
         rescue Fog::Compute::Joyent::Errors::NotFound
           nil
         end
-
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/joyent_module.rb b/lib/fog/joyent/models/analytics/joyent_module.rb
index 4eab489..417e132 100644
--- a/lib/fog/joyent/models/analytics/joyent_module.rb
+++ b/lib/fog/joyent/models/analytics/joyent_module.rb
@@ -1,6 +1,5 @@
 require 'fog/core/model'
 
-
 # named 'JoyentModule' to avoid name conflicts with ruby's 'Module'
 module Fog
   module Joyent
@@ -8,7 +7,6 @@ module Fog
       class JoyentModule < Fog::Model
         attribute :name
         attribute :label
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/joyent_modules.rb b/lib/fog/joyent/models/analytics/joyent_modules.rb
index e2e9c4b..6972c7e 100644
--- a/lib/fog/joyent/models/analytics/joyent_modules.rb
+++ b/lib/fog/joyent/models/analytics/joyent_modules.rb
@@ -4,7 +4,6 @@ module Fog
   module Joyent
     class Analytics
       class JoyentModules < Fog::Collection
-
         model Fog::Joyent::Analytics::JoyentModule
 
         def all
@@ -19,7 +18,6 @@ module Fog
           name, other_attributes = attributes
           super(other_attributes.merge('name' => name))
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/metric.rb b/lib/fog/joyent/models/analytics/metric.rb
index 396cb61..f497322 100644
--- a/lib/fog/joyent/models/analytics/metric.rb
+++ b/lib/fog/joyent/models/analytics/metric.rb
@@ -11,7 +11,6 @@ module Fog
         attribute :fields
         attribute :unit
         attribute :type
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/metrics.rb b/lib/fog/joyent/models/analytics/metrics.rb
index 833707a..ad2f000 100644
--- a/lib/fog/joyent/models/analytics/metrics.rb
+++ b/lib/fog/joyent/models/analytics/metrics.rb
@@ -4,14 +4,12 @@ module Fog
   module Joyent
     class Analytics
       class Metrics < Fog::Collection
-
         model Fog::Joyent::Analytics::Metric
 
         def all
           data = service.describe_analytics.body['metrics']
           load(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/transformations.rb b/lib/fog/joyent/models/analytics/transformations.rb
index 39dc908..78cb769 100644
--- a/lib/fog/joyent/models/analytics/transformations.rb
+++ b/lib/fog/joyent/models/analytics/transformations.rb
@@ -4,7 +4,6 @@ module Fog
   module Joyent
     class Analytics
       class Transformations < Fog::Collection
-
         model Fog::Joyent::Analytics::Transformation
 
         def all
@@ -19,7 +18,6 @@ module Fog
           name, other_attributes = attributes
           super(other_attributes.merge('name' => name))
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/analytics/types.rb b/lib/fog/joyent/models/analytics/types.rb
index bd2a146..8e026c3 100644
--- a/lib/fog/joyent/models/analytics/types.rb
+++ b/lib/fog/joyent/models/analytics/types.rb
@@ -4,7 +4,6 @@ module Fog
   module Joyent
     class Analytics
       class Types < Fog::Collection
-
         model Fog::Joyent::Analytics::Type
 
         def all
@@ -19,7 +18,6 @@ module Fog
           name, other_attributes = attributes
           super(other_attributes.merge('name' => name))
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/datacenter.rb b/lib/fog/joyent/models/compute/datacenter.rb
index 14cc42a..25734b5 100644
--- a/lib/fog/joyent/models/compute/datacenter.rb
+++ b/lib/fog/joyent/models/compute/datacenter.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Datacenter < Fog::Model
-
         identity :name
 
         attribute :url
diff --git a/lib/fog/joyent/models/compute/datacenters.rb b/lib/fog/joyent/models/compute/datacenters.rb
index d66d78a..370c82c 100644
--- a/lib/fog/joyent/models/compute/datacenters.rb
+++ b/lib/fog/joyent/models/compute/datacenters.rb
@@ -3,10 +3,8 @@ require 'fog/joyent/models/compute/datacenter'
 
 module Fog
   module Compute
-
     class Joyent
       class Datacenters < Fog::Collection
-
         model Fog::Compute::Joyent::Datacenter
 
         def all
@@ -17,9 +15,7 @@ module Fog
         def get(id)
           all[id]
         end
-
       end
     end # Joyent
-
   end # Compute
 end # Fog
diff --git a/lib/fog/joyent/models/compute/flavor.rb b/lib/fog/joyent/models/compute/flavor.rb
index 090ae06..f3d6ad9 100644
--- a/lib/fog/joyent/models/compute/flavor.rb
+++ b/lib/fog/joyent/models/compute/flavor.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Flavor < Fog::Model
-
         identity :id
 
         attribute :name
@@ -14,7 +13,6 @@ module Fog
         attribute :description
         attribute :version
         attribute :group
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/flavors.rb b/lib/fog/joyent/models/compute/flavors.rb
index 782a351..e842b81 100644
--- a/lib/fog/joyent/models/compute/flavors.rb
+++ b/lib/fog/joyent/models/compute/flavors.rb
@@ -3,10 +3,8 @@ require 'fog/joyent/models/compute/flavor'
 
 module Fog
   module Compute
-
     class Joyent
       class Flavors < Fog::Collection
-
         model Fog::Compute::Joyent::Flavor
 
         def all
@@ -17,9 +15,7 @@ module Fog
           data = service.get_package(id).body
           new(data)
         end
-
       end
     end # Joyent
-
   end # Compute
 end # Fog
diff --git a/lib/fog/joyent/models/compute/image.rb b/lib/fog/joyent/models/compute/image.rb
index e4ff4b3..75c587d 100644
--- a/lib/fog/joyent/models/compute/image.rb
+++ b/lib/fog/joyent/models/compute/image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -21,7 +20,6 @@ module Fog
         attribute :acl
         attribute :created, :type => :time
         attribute :default, :type => :boolean
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/images.rb b/lib/fog/joyent/models/compute/images.rb
index 579742e..164a8aa 100644
--- a/lib/fog/joyent/models/compute/images.rb
+++ b/lib/fog/joyent/models/compute/images.rb
@@ -3,10 +3,8 @@ require 'fog/joyent/models/compute/image'
 
 module Fog
   module Compute
-
     class Joyent
       class Images < Fog::Collection
-
         model Fog::Compute::Joyent::Image
 
         def all
@@ -26,9 +24,7 @@ module Fog
           end
           new(data)
         end
-
       end # Images
     end # Joyent
-
   end # Compute
 end # Fog
diff --git a/lib/fog/joyent/models/compute/keys.rb b/lib/fog/joyent/models/compute/keys.rb
index c9a0ed1..7bbdba7 100644
--- a/lib/fog/joyent/models/compute/keys.rb
+++ b/lib/fog/joyent/models/compute/keys.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Joyent
       class Keys < Fog::Collection
-
         model Fog::Compute::Joyent::Key
 
         def all
@@ -27,7 +26,6 @@ module Fog
 
           service.create_key(params)
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/network.rb b/lib/fog/joyent/models/compute/network.rb
index 4696ebe..4e87033 100644
--- a/lib/fog/joyent/models/compute/network.rb
+++ b/lib/fog/joyent/models/compute/network.rb
@@ -6,7 +6,6 @@ module Fog
 
         attribute :name
         attribute :public
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/networks.rb b/lib/fog/joyent/models/compute/networks.rb
index 521bcc3..d5bf1cc 100644
--- a/lib/fog/joyent/models/compute/networks.rb
+++ b/lib/fog/joyent/models/compute/networks.rb
@@ -3,7 +3,6 @@ module Fog
   module Compute
     class Joyent
       class Networks < Fog::Collection
-
         model Fog::Compute::Joyent::Network
 
         def all
diff --git a/lib/fog/joyent/models/compute/server.rb b/lib/fog/joyent/models/compute/server.rb
index a0d3b0f..2196dc7 100644
--- a/lib/fog/joyent/models/compute/server.rb
+++ b/lib/fog/joyent/models/compute/server.rb
@@ -2,7 +2,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Joyent
-
       class Server < Fog::Compute::Server
         identity :id
 
@@ -119,7 +118,6 @@ module Fog
           service.delete_all_machine_tags(self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/servers.rb b/lib/fog/joyent/models/compute/servers.rb
index 1e99f05..fe942c9 100644
--- a/lib/fog/joyent/models/compute/servers.rb
+++ b/lib/fog/joyent/models/compute/servers.rb
@@ -3,7 +3,6 @@ require 'fog/joyent/models/compute/server'
 
 module Fog
   module Compute
-
     class Joyent
       class Servers < Fog::Collection
         model Fog::Compute::Joyent::Server
@@ -30,9 +29,7 @@ module Fog
           server.tags = server.list_tags if server.tags.nil?
           server
         end
-
       end
     end # Joyent
-
   end # Compute
 end # Fog
diff --git a/lib/fog/joyent/models/compute/snapshot.rb b/lib/fog/joyent/models/compute/snapshot.rb
index be2717d..c28575c 100644
--- a/lib/fog/joyent/models/compute/snapshot.rb
+++ b/lib/fog/joyent/models/compute/snapshot.rb
@@ -38,7 +38,6 @@ module Fog
 
           service.servers.get(self.machine_id)
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/models/compute/snapshots.rb b/lib/fog/joyent/models/compute/snapshots.rb
index 946ce0b..7e39c78 100644
--- a/lib/fog/joyent/models/compute/snapshots.rb
+++ b/lib/fog/joyent/models/compute/snapshots.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Joyent
       class Snapshots < Fog::Collection
-
         model Fog::Compute::Joyent::Snapshot
 
         def create(machine_id, snapshot_name)
@@ -30,7 +29,6 @@ module Fog
             nil
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/add_machine_tags.rb b/lib/fog/joyent/requests/compute/add_machine_tags.rb
index 28eafd1..cc5fad5 100644
--- a/lib/fog/joyent/requests/compute/add_machine_tags.rb
+++ b/lib/fog/joyent/requests/compute/add_machine_tags.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Real
         # https://us-west-1.api.joyentcloud.com/docs#AddMachineTags
         def add_machine_tags(machine_id, tags={})
diff --git a/lib/fog/joyent/requests/compute/create_key.rb b/lib/fog/joyent/requests/compute/create_key.rb
index 4975f36..5bde09b 100644
--- a/lib/fog/joyent/requests/compute/create_key.rb
+++ b/lib/fog/joyent/requests/compute/create_key.rb
@@ -26,7 +26,6 @@ module Fog
       end # Mock
 
       class Real
-
         # Creates a new SSH Key
         # ==== Parameters
         # * name<~String> - Name to assign to this key
@@ -49,7 +48,6 @@ module Fog
             :expects => 201
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/create_machine_snapshot.rb b/lib/fog/joyent/requests/compute/create_machine_snapshot.rb
index dee83bb..daf9f95 100644
--- a/lib/fog/joyent/requests/compute/create_machine_snapshot.rb
+++ b/lib/fog/joyent/requests/compute/create_machine_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Real
-
         def create_machine_snapshot(machine_id, snapshot_name)
           request(
             :method => "POST",
@@ -11,7 +10,6 @@ module Fog
             :expects => [201]
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/delete_key.rb b/lib/fog/joyent/requests/compute/delete_key.rb
index 3c5a6fb..f841a4e 100644
--- a/lib/fog/joyent/requests/compute/delete_key.rb
+++ b/lib/fog/joyent/requests/compute/delete_key.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def delete_key(keyname)
           if self.data[:keys].delete(keyname)
@@ -23,7 +22,6 @@ module Fog
           )
         end
       end # Real
-
     end
   end
 end
diff --git a/lib/fog/joyent/requests/compute/delete_machine_metadata.rb b/lib/fog/joyent/requests/compute/delete_machine_metadata.rb
index bf13f61..b158da4 100644
--- a/lib/fog/joyent/requests/compute/delete_machine_metadata.rb
+++ b/lib/fog/joyent/requests/compute/delete_machine_metadata.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
-
     class Joyent
       class Real
-
         # https://us-west-1.api.joyentcloud.com/docs#DeleteAllMachineMetadata
         def delete_machine_metadata(machine_id, key)
           request(
diff --git a/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb b/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb
index be5aecd..0ff5487 100644
--- a/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb
+++ b/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Real
         def delete_machine_snapshot(machine_id, snapshot)
           request(
@@ -13,9 +12,7 @@ module Fog
       end
 
       class Mock
-
       end
-
     end
   end
 end
diff --git a/lib/fog/joyent/requests/compute/get_dataset.rb b/lib/fog/joyent/requests/compute/get_dataset.rb
index fb0b7ae..3656a02 100644
--- a/lib/fog/joyent/requests/compute/get_dataset.rb
+++ b/lib/fog/joyent/requests/compute/get_dataset.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def get_dataset(id)
           if ds = self.data[:datasets][id]
@@ -23,7 +22,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/joyent/requests/compute/get_image.rb b/lib/fog/joyent/requests/compute/get_image.rb
index e53c178..0d54fef 100644
--- a/lib/fog/joyent/requests/compute/get_image.rb
+++ b/lib/fog/joyent/requests/compute/get_image.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def get_image(id)
           if ds = self.data[:datasets][id]
@@ -24,7 +23,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/joyent/requests/compute/get_key.rb b/lib/fog/joyent/requests/compute/get_key.rb
index 79f551b..f48cd23 100644
--- a/lib/fog/joyent/requests/compute/get_key.rb
+++ b/lib/fog/joyent/requests/compute/get_key.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Mock
-
         def get_key(keyid)
           if key = self.data[:keys][keyid]
             response = Excon::Response.new
diff --git a/lib/fog/joyent/requests/compute/get_machine.rb b/lib/fog/joyent/requests/compute/get_machine.rb
index c1dccfc..12ae0e0 100644
--- a/lib/fog/joyent/requests/compute/get_machine.rb
+++ b/lib/fog/joyent/requests/compute/get_machine.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def get_machine(uuid)
           if machine = self.data[:machines][uuid]
diff --git a/lib/fog/joyent/requests/compute/get_machine_metadata.rb b/lib/fog/joyent/requests/compute/get_machine_metadata.rb
index 8e3c485..3730fe2 100644
--- a/lib/fog/joyent/requests/compute/get_machine_metadata.rb
+++ b/lib/fog/joyent/requests/compute/get_machine_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Real
-
         def get_machine_metadata(machine_id, options = {})
           query = {}
           if options[:credentials]
@@ -19,7 +18,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/get_machine_tag.rb b/lib/fog/joyent/requests/compute/get_machine_tag.rb
index e2d2542..7d91c8e 100644
--- a/lib/fog/joyent/requests/compute/get_machine_tag.rb
+++ b/lib/fog/joyent/requests/compute/get_machine_tag.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Joyent
       class Real
-
         # https://us-west-1.api.joyentcloud.com/docs#GetMachineTag
         def get_machine_tag(machine_id, tagname)
           request(
@@ -13,7 +12,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/get_package.rb b/lib/fog/joyent/requests/compute/get_package.rb
index b09c5f0..a1085da 100644
--- a/lib/fog/joyent/requests/compute/get_package.rb
+++ b/lib/fog/joyent/requests/compute/get_package.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class Joyent
       class Mock
-
         def get_package(name)
           if pkg = self.data[:packages][name]
             response = Excon::Response.new
@@ -27,7 +26,6 @@ module Fog
             :idempotent => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/list_datacenters.rb b/lib/fog/joyent/requests/compute/list_datacenters.rb
index 608fa92..3bfaf77 100644
--- a/lib/fog/joyent/requests/compute/list_datacenters.rb
+++ b/lib/fog/joyent/requests/compute/list_datacenters.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Real
         def list_datacenters
           request(
@@ -12,7 +11,6 @@ module Fog
           )
         end
       end # Real
-
     end
   end
 end
diff --git a/lib/fog/joyent/requests/compute/list_datasets.rb b/lib/fog/joyent/requests/compute/list_datasets.rb
index dea3ceb..450b80c 100644
--- a/lib/fog/joyent/requests/compute/list_datasets.rb
+++ b/lib/fog/joyent/requests/compute/list_datasets.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def list_datasets
           res = Excon::Response.new
diff --git a/lib/fog/joyent/requests/compute/list_images.rb b/lib/fog/joyent/requests/compute/list_images.rb
index c1ad428..c449313 100644
--- a/lib/fog/joyent/requests/compute/list_images.rb
+++ b/lib/fog/joyent/requests/compute/list_images.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def list_images
           res = Excon::Response.new
diff --git a/lib/fog/joyent/requests/compute/list_keys.rb b/lib/fog/joyent/requests/compute/list_keys.rb
index d93e329..0e7f890 100644
--- a/lib/fog/joyent/requests/compute/list_keys.rb
+++ b/lib/fog/joyent/requests/compute/list_keys.rb
@@ -20,7 +20,6 @@ module Fog
           )
         end
       end # Real
-
     end
   end
 end
diff --git a/lib/fog/joyent/requests/compute/list_machine_tags.rb b/lib/fog/joyent/requests/compute/list_machine_tags.rb
index fca539e..159e1c7 100644
--- a/lib/fog/joyent/requests/compute/list_machine_tags.rb
+++ b/lib/fog/joyent/requests/compute/list_machine_tags.rb
@@ -14,7 +14,6 @@ module Fog
       end
 
       class Mock
-
       end
     end
   end
diff --git a/lib/fog/joyent/requests/compute/list_machines.rb b/lib/fog/joyent/requests/compute/list_machines.rb
index b5436a7..89e8777 100644
--- a/lib/fog/joyent/requests/compute/list_machines.rb
+++ b/lib/fog/joyent/requests/compute/list_machines.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def list_machines(options={})
           res = Excon::Response.new
diff --git a/lib/fog/joyent/requests/compute/list_networks.rb b/lib/fog/joyent/requests/compute/list_networks.rb
index d17371d..2d86f5e 100644
--- a/lib/fog/joyent/requests/compute/list_networks.rb
+++ b/lib/fog/joyent/requests/compute/list_networks.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def list_networks(options={})
           res = Excon::Response.new
diff --git a/lib/fog/joyent/requests/compute/list_packages.rb b/lib/fog/joyent/requests/compute/list_packages.rb
index bc6a879..9603697 100644
--- a/lib/fog/joyent/requests/compute/list_packages.rb
+++ b/lib/fog/joyent/requests/compute/list_packages.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Joyent
-
       class Mock
         def list_packages
           response = Excon::Response.new()
@@ -30,8 +29,6 @@ module Fog
           )
         end
       end # Real
-
     end
-
   end
 end
diff --git a/lib/fog/libvirt/compute.rb b/lib/fog/libvirt/compute.rb
index 1987ece..bbd7ea3 100644
--- a/lib/fog/libvirt/compute.rb
+++ b/lib/fog/libvirt/compute.rb
@@ -5,7 +5,6 @@ require 'fog/libvirt/models/compute/util/uri'
 module Fog
   module Compute
     class Libvirt < Fog::Service
-
       requires   :libvirt_uri
       recognizes :libvirt_username, :libvirt_password
       recognizes :libvirt_ip_command
@@ -76,7 +75,6 @@ module Fog
         attr_reader :uri
         attr_reader :ip_command
 
-
         def initialize(options={})
           @uri = ::Fog::Compute::LibvirtUtil::URI.new(enhance_uri(options[:libvirt_uri]))
           @ip_command = options[:libvirt_ip_command]
@@ -106,7 +104,6 @@ module Fog
           rescue ::Libvirt::ConnectionError
             raise Fog::Errors::Error.new("Error making a connection to libvirt URI #{uri.uri}:\n#{$!}")
           end
-
         end
 
         def terminate
@@ -127,14 +124,13 @@ module Fog
             if querystring.nil?
               append="?socket=/var/run/libvirt/libvirt-sock"
             else
-              if !::CGI.parse(querystring).has_key?("socket")
+              if !::CGI.parse(querystring).key?("socket")
                 append="&socket=/var/run/libvirt/libvirt-sock"
               end
             end
           end
           uri+append
         end
-
       end
     end
   end
diff --git a/lib/fog/libvirt/core.rb b/lib/fog/libvirt/core.rb
index d7ec9ab..73fce10 100644
--- a/lib/fog/libvirt/core.rb
+++ b/lib/fog/libvirt/core.rb
@@ -4,10 +4,8 @@ require 'fog/json'
 
 module Fog
   module Libvirt
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/libvirt/models/compute/interface.rb b/lib/fog/libvirt/models/compute/interface.rb
index cc01fed..a7ebde6 100644
--- a/lib/fog/libvirt/models/compute/interface.rb
+++ b/lib/fog/libvirt/models/compute/interface.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Libvirt
-
       class Interface < Fog::Model
-
         identity :name
         attribute :mac
         attribute :active
@@ -22,7 +20,6 @@ module Fog
           active
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/libvirt/models/compute/interfaces.rb b/lib/fog/libvirt/models/compute/interfaces.rb
index d01d22c..48f696d 100644
--- a/lib/fog/libvirt/models/compute/interfaces.rb
+++ b/lib/fog/libvirt/models/compute/interfaces.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/interface'
 module Fog
   module Compute
     class Libvirt
-
       class Interfaces < Fog::Collection
-
         model Fog::Compute::Libvirt::Interface
 
         def all(filter={})
@@ -16,9 +14,7 @@ module Fog
         def get(name)
           self.all(:name => name).first
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/libvirt/models/compute/network.rb b/lib/fog/libvirt/models/compute/network.rb
index 122181c..6a80247 100644
--- a/lib/fog/libvirt/models/compute/network.rb
+++ b/lib/fog/libvirt/models/compute/network.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/util/util'
 module Fog
   module Compute
     class Libvirt
-
       class Network < Fog::Model
-
         include Fog::Compute::LibvirtUtil
 
         identity :uuid
@@ -25,10 +23,7 @@ module Fog
         def shutdown
           service.destroy_network(uuid)
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/libvirt/models/compute/networks.rb b/lib/fog/libvirt/models/compute/networks.rb
index 233e433..760ccf2 100644
--- a/lib/fog/libvirt/models/compute/networks.rb
+++ b/lib/fog/libvirt/models/compute/networks.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/network'
 module Fog
   module Compute
     class Libvirt
-
       class Networks < Fog::Collection
-
         model Fog::Compute::Libvirt::Network
 
         def all(filter={})
@@ -16,9 +14,7 @@ module Fog
         def get(uuid)
           self.all(:uuid => uuid).first
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/libvirt/models/compute/nic.rb b/lib/fog/libvirt/models/compute/nic.rb
index 225f914..485b417 100644
--- a/lib/fog/libvirt/models/compute/nic.rb
+++ b/lib/fog/libvirt/models/compute/nic.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Libvirt
-
       class Nic < Fog::Model
-
         identity :mac
         attribute :id
         attribute :type
@@ -46,10 +44,7 @@ module Fog
             :model => "virtio"
           }
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/libvirt/models/compute/nics.rb b/lib/fog/libvirt/models/compute/nics.rb
index 7686bef..7a326f3 100644
--- a/lib/fog/libvirt/models/compute/nics.rb
+++ b/lib/fog/libvirt/models/compute/nics.rb
@@ -4,13 +4,9 @@ require 'fog/libvirt/models/compute/nic'
 module Fog
   module Compute
     class Libvirt
-
       class Nics < Fog::Collection
-
         model Fog::Compute::Libvirt::Nic
-
       end
-
     end
   end
 end
diff --git a/lib/fog/libvirt/models/compute/node.rb b/lib/fog/libvirt/models/compute/node.rb
index 43d3721..02d3fc7 100644
--- a/lib/fog/libvirt/models/compute/node.rb
+++ b/lib/fog/libvirt/models/compute/node.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Libvirt
-
       class Node < Fog::Model
-
         identity :uuid
 
         attribute :model
@@ -25,10 +23,7 @@ module Fog
         attribute :product
         attribute :serial
         attribute :hostname
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/libvirt/models/compute/nodes.rb b/lib/fog/libvirt/models/compute/nodes.rb
index f1386c7..72d6d7b 100644
--- a/lib/fog/libvirt/models/compute/nodes.rb
+++ b/lib/fog/libvirt/models/compute/nodes.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/node'
 module Fog
   module Compute
     class Libvirt
-
       class Nodes < Fog::Collection
-
         model Fog::Compute::Libvirt::Node
 
         def all(filter={ })
@@ -16,7 +14,6 @@ module Fog
         def get
           all.first
         end
-
       end
     end
   end
diff --git a/lib/fog/libvirt/models/compute/pool.rb b/lib/fog/libvirt/models/compute/pool.rb
index 1d9b568..d186b86 100644
--- a/lib/fog/libvirt/models/compute/pool.rb
+++ b/lib/fog/libvirt/models/compute/pool.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Libvirt
-
       class Pool < Fog::Model
         attr_reader :xml
 
@@ -79,10 +78,7 @@ module Fog
         def volumes
           service.list_pool_volumes uuid
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/libvirt/models/compute/pools.rb b/lib/fog/libvirt/models/compute/pools.rb
index 78e1672..2f3f73f 100644
--- a/lib/fog/libvirt/models/compute/pools.rb
+++ b/lib/fog/libvirt/models/compute/pools.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/pool'
 module Fog
   module Compute
     class Libvirt
-
       class Pools < Fog::Collection
-
         model Fog::Compute::Libvirt::Pool
 
         def all(filter = {})
@@ -16,9 +14,7 @@ module Fog
         def get(uuid)
           self.all(:uuid => uuid).first
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/libvirt/models/compute/server.rb b/lib/fog/libvirt/models/compute/server.rb
index 598bd8d..43e95df 100644
--- a/lib/fog/libvirt/models/compute/server.rb
+++ b/lib/fog/libvirt/models/compute/server.rb
@@ -5,9 +5,7 @@ require 'net/ssh/proxy/command'
 module Fog
   module Compute
     class Libvirt
-
       class Server < Fog::Compute::Server
-
         include Fog::Compute::LibvirtUtil
         attr_reader :xml
 
@@ -117,9 +115,9 @@ module Fog
         end
 
         #alias methods
-        alias :halt    :poweroff
-        alias :stop    :shutdown
-        alias :active? :active
+        alias_method :halt,    :poweroff
+        alias_method :stop,    :shutdown
+        alias_method :active?, :active
 
         def volumes
           # lazy loading of volumes
@@ -241,7 +239,6 @@ module Fog
             ssh_options[:port]=port unless keyfile.nil?
             ssh_options[:paranoid]=true if service.uri.no_verify?
 
-
             begin
               result=Fog::SSH.new(host, user, ssh_options).run(ip_command)
             rescue Errno::ECONNREFUSED
@@ -250,7 +247,6 @@ module Fog
               raise Fog::Errors::Error.new("Error authenticating over ssh to host #{host} and user #{user}")
             end
 
-
             # Check for a clean exit code
             if result.first.status == 0
               ip_address=result.first.stdout.strip
@@ -283,7 +279,6 @@ module Fog
             ip_address=ip_address.chomp
           end
 
-
           # The Ip-address command has been run either local or remote now
 
           if ip_address==""
@@ -390,10 +385,7 @@ module Fog
         def default_display
           {:port => '-1', :listen => '127.0.0.1', :type => 'vnc', :password => '' }
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/libvirt/models/compute/servers.rb b/lib/fog/libvirt/models/compute/servers.rb
index e2fc279..a28db2f 100644
--- a/lib/fog/libvirt/models/compute/servers.rb
+++ b/lib/fog/libvirt/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/server'
 module Fog
   module Compute
     class Libvirt
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Libvirt::Server
 
         def all(filter={})
@@ -17,7 +15,6 @@ module Fog
           data = service.list_domains(:uuid => uuid)
           new data.first if data
         end
-
       end
     end
   end
diff --git a/lib/fog/libvirt/models/compute/util/uri.rb b/lib/fog/libvirt/models/compute/util/uri.rb
index d84949e..cbb2e86 100644
--- a/lib/fog/libvirt/models/compute/util/uri.rb
+++ b/lib/fog/libvirt/models/compute/util/uri.rb
@@ -4,9 +4,7 @@ require 'cgi'
 module Fog
   module Compute
     module LibvirtUtil
-
       class URI
-
         attr_reader :uri
 
         def initialize(uri)
@@ -109,7 +107,6 @@ module Fog
           else
             return true
           end
-
         end
 
         def tty?
@@ -120,14 +117,13 @@ module Fog
           value("pkipath")
         end
 
-
         # A libvirt URI allows you to specify extra params
         # http://libvirt.org/remote.html
         private
         def value(name)
           unless @parsed_uri.query.nil?
             params=CGI.parse(@parsed_uri.query)
-            if params.has_key?(name)
+            if params.key?(name)
               return params[name].first
             else
               return nil
@@ -136,10 +132,7 @@ module Fog
             return nil
           end
         end
-
-
       end
     end
   end
 end
-
diff --git a/lib/fog/libvirt/models/compute/util/util.rb b/lib/fog/libvirt/models/compute/util/util.rb
index d668e46..28aadf7 100644
--- a/lib/fog/libvirt/models/compute/util/util.rb
+++ b/lib/fog/libvirt/models/compute/util/util.rb
@@ -6,7 +6,6 @@ require 'securerandom'
 module Fog
   module Compute
     module LibvirtUtil
-
       def xml_element(xml, path, attribute=nil)
         xml = Nokogiri::XML(xml)
         attribute.nil? ? (xml/path).first.text : (xml/path).first[attribute.to_sym]
diff --git a/lib/fog/libvirt/models/compute/volume.rb b/lib/fog/libvirt/models/compute/volume.rb
index 7bb0ccc..5bf2759 100644
--- a/lib/fog/libvirt/models/compute/volume.rb
+++ b/lib/fog/libvirt/models/compute/volume.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/util/util'
 module Fog
   module Compute
     class Libvirt
-
       class Volume < Fog::Model
-
         attr_reader :xml
         include Fog::Compute::LibvirtUtil
 
@@ -119,8 +117,6 @@ module Fog
           [size, unit]
         end
       end
-
     end
   end
-
 end
diff --git a/lib/fog/libvirt/models/compute/volumes.rb b/lib/fog/libvirt/models/compute/volumes.rb
index 512f498..a29a0b4 100644
--- a/lib/fog/libvirt/models/compute/volumes.rb
+++ b/lib/fog/libvirt/models/compute/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/libvirt/models/compute/volume'
 module Fog
   module Compute
     class Libvirt
-
       class Volumes < Fog::Collection
-
         model Fog::Compute::Libvirt::Volume
 
         def all(filter = {})
@@ -16,9 +14,7 @@ module Fog
         def get(key)
           self.all(:key => key).first
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/libvirt/requests/compute/create_volume.rb b/lib/fog/libvirt/requests/compute/create_volume.rb
index 0623ec3..f1f90d8 100644
--- a/lib/fog/libvirt/requests/compute/create_volume.rb
+++ b/lib/fog/libvirt/requests/compute/create_volume.rb
@@ -9,7 +9,6 @@ module Fog
 
       class Mock
         def create_volume(pool_name, xml)
-
         end
       end
     end
diff --git a/lib/fog/libvirt/requests/compute/define_pool.rb b/lib/fog/libvirt/requests/compute/define_pool.rb
index 24b5328..8874bf4 100644
--- a/lib/fog/libvirt/requests/compute/define_pool.rb
+++ b/lib/fog/libvirt/requests/compute/define_pool.rb
@@ -9,7 +9,6 @@ module Fog
 
       class Mock
         def define_pool(xml)
-
         end
       end
     end
diff --git a/lib/fog/libvirt/requests/compute/get_node_info.rb b/lib/fog/libvirt/requests/compute/get_node_info.rb
index 9903d76..9d5aa67 100644
--- a/lib/fog/libvirt/requests/compute/get_node_info.rb
+++ b/lib/fog/libvirt/requests/compute/get_node_info.rb
@@ -26,12 +26,10 @@ module Fog
         def node_attr attr, xml
           xml_element(xml, "sysinfo/system/entry[@name='#{attr}']").strip
         end
-
       end
 
       class Mock
         def get_node_info
-
         end
       end
     end
diff --git a/lib/fog/libvirt/requests/compute/list_domains.rb b/lib/fog/libvirt/requests/compute/list_domains.rb
index 0516040..c756b32 100644
--- a/lib/fog/libvirt/requests/compute/list_domains.rb
+++ b/lib/fog/libvirt/requests/compute/list_domains.rb
@@ -5,9 +5,9 @@ module Fog
         def list_domains(filter = { })
           data=[]
 
-          if filter.has_key?(:uuid)
+          if filter.key?(:uuid)
             data << client.lookup_domain_by_uuid(filter[:uuid])
-          elsif filter.has_key?(:name)
+          elsif filter.key?(:name)
             data << client.lookup_domain_by_name(filter[:name])
           else
             client.list_defined_domains.each { |name| data << client.lookup_domain_by_name(name) } unless filter[:defined] == false
@@ -69,7 +69,6 @@ module Fog
             :state           => states[dom.info.state]
           }
         end
-
       end
 
       class Mock
diff --git a/lib/fog/libvirt/requests/compute/list_interfaces.rb b/lib/fog/libvirt/requests/compute/list_interfaces.rb
index 2af2ff6..d938437 100644
--- a/lib/fog/libvirt/requests/compute/list_interfaces.rb
+++ b/lib/fog/libvirt/requests/compute/list_interfaces.rb
@@ -25,7 +25,6 @@ module Fog
             when :name
               client.lookup_interface_by_name(filter[:name])
           end
-
         end
 
         def interface_to_attributes(net)
@@ -36,7 +35,6 @@ module Fog
             :active => net.active?
           }
         end
-
       end
 
       class Mock
diff --git a/lib/fog/libvirt/requests/compute/list_networks.rb b/lib/fog/libvirt/requests/compute/list_networks.rb
index 508fd99..5f55c2a 100644
--- a/lib/fog/libvirt/requests/compute/list_networks.rb
+++ b/lib/fog/libvirt/requests/compute/list_networks.rb
@@ -3,7 +3,6 @@ module Fog
     class Libvirt
       class Real
         def list_networks(filter = { })
-
           data=[]
           if filter.keys.empty?
             (client.list_networks + client.list_defined_networks).each do |network_name|
@@ -24,7 +23,6 @@ module Fog
             when :name
               client.lookup_network_by_name(filter[:name])
           end
-
         end
 
         def network_to_attributes(net)
@@ -35,7 +33,6 @@ module Fog
             :bridge_name => net.bridge_name
           }
         end
-
       end
 
       class Mock
diff --git a/lib/fog/libvirt/requests/compute/list_pool_volumes.rb b/lib/fog/libvirt/requests/compute/list_pool_volumes.rb
index d3b15da..6faba30 100644
--- a/lib/fog/libvirt/requests/compute/list_pool_volumes.rb
+++ b/lib/fog/libvirt/requests/compute/list_pool_volumes.rb
@@ -8,12 +8,10 @@ module Fog
             volume_to_attributes(pool.lookup_volume_by_name(volume_name))
           end
         end
-
       end
 
       class Mock
         def list_pool_volumes(uuid)
-
         end
       end
     end
diff --git a/lib/fog/libvirt/requests/compute/list_pools.rb b/lib/fog/libvirt/requests/compute/list_pools.rb
index e4b2220..8113b6a 100644
--- a/lib/fog/libvirt/requests/compute/list_pools.rb
+++ b/lib/fog/libvirt/requests/compute/list_pools.rb
@@ -4,9 +4,9 @@ module Fog
       class Real
         def list_pools(filter = { })
           data=[]
-          if filter.has_key?(:name)
+          if filter.key?(:name)
             data << find_pool_by_name(filter[:name])
-          elsif filter.has_key?(:uuid)
+          elsif filter.key?(:uuid)
             data << find_pool_by_uuid(filter[:uuid])
           else
             (client.list_storage_pools + client.list_defined_storage_pools).each do |name|
@@ -43,7 +43,6 @@ module Fog
         rescue ::Libvirt::RetrieveError
           nil
         end
-
       end
 
       class Mock
diff --git a/lib/fog/libvirt/requests/compute/list_volumes.rb b/lib/fog/libvirt/requests/compute/list_volumes.rb
index af8723e..8c7ac6a 100644
--- a/lib/fog/libvirt/requests/compute/list_volumes.rb
+++ b/lib/fog/libvirt/requests/compute/list_volumes.rb
@@ -19,7 +19,6 @@ module Fog
         private
 
         def volume_to_attributes(vol)
-
           format_type = xml_element(vol.xml_desc, "/volume/target/format", "type") rescue nil # not all volumes have types, e.g. LVM
           return nil if format_type == "dir"
 
diff --git a/lib/fog/libvirt/requests/compute/update_display.rb b/lib/fog/libvirt/requests/compute/update_display.rb
index 7d44cd9..a2141e1 100644
--- a/lib/fog/libvirt/requests/compute/update_display.rb
+++ b/lib/fog/libvirt/requests/compute/update_display.rb
@@ -3,7 +3,7 @@ module Fog
     class Libvirt
       class Real
         def update_display(options = { })
-          raise ArgumentError, "uuid is a required parameter" unless options.has_key? :uuid
+          raise ArgumentError, "uuid is a required parameter" unless options.key? :uuid
           display          = { }
           display[:type]   = options[:type] || 'vnc'
           display[:port]   = (options[:port] || -1).to_s
@@ -22,7 +22,7 @@ module Fog
 
       class Mock
         def update_display(options = { })
-          raise ArgumentError, "uuid is a required parameter" unless options.has_key? :uuid
+          raise ArgumentError, "uuid is a required parameter" unless options.key? :uuid
           true
         end
       end
diff --git a/lib/fog/linode/compute.rb b/lib/fog/linode/compute.rb
index 5b823ac..4447c52 100644
--- a/lib/fog/linode/compute.rb
+++ b/lib/fog/linode/compute.rb
@@ -3,7 +3,6 @@ require 'fog/linode/core'
 module Fog
   module Compute
     class Linode < Fog::Service
-
       requires :linode_api_key
       recognizes :port, :scheme, :persistent
 
@@ -40,6 +39,8 @@ module Fog
       request :linode_ip_addprivate
       request :linode_config_list
       request :linode_config_create
+      request :linode_config_delete
+      request :linode_config_update
       request :linode_create
       request :linode_delete
       request :linode_list
@@ -51,7 +52,6 @@ module Fog
       # request :linode_resize
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -73,11 +73,9 @@ module Fog
         def reset_data
           self.class.data.delete(@linode_api_key)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @linode_api_key = options[:linode_api_key]
           @host   = options[:host]    || "api.linode.com"
@@ -110,7 +108,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/core.rb b/lib/fog/linode/core.rb
index 948a19a..5734aab 100644
--- a/lib/fog/linode/core.rb
+++ b/lib/fog/linode/core.rb
@@ -8,4 +8,3 @@ module Fog
     service(:dns,     'DNS')
   end
 end
-
diff --git a/lib/fog/linode/dns.rb b/lib/fog/linode/dns.rb
index 144ec7f..d49edd3 100644
--- a/lib/fog/linode/dns.rb
+++ b/lib/fog/linode/dns.rb
@@ -3,7 +3,6 @@ require 'fog/linode/core'
 module Fog
   module DNS
     class Linode < Fog::Service
-
       requires :linode_api_key
       recognizes :port, :scheme, :persistent
 
@@ -24,7 +23,6 @@ module Fog
       request :domain_resource_update
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -46,11 +44,9 @@ module Fog
         def reset_data
           self.class.data.delete(@linode_api_key)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @connection_options = options[:connection_options] || {}
           @host           = options[:host]        || "api.linode.com"
@@ -85,7 +81,6 @@ module Fog
           end
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/models/compute/disks.rb b/lib/fog/linode/models/compute/disks.rb
index 06ff71c..f92fe9f 100644
--- a/lib/fog/linode/models/compute/disks.rb
+++ b/lib/fog/linode/models/compute/disks.rb
@@ -16,7 +16,7 @@ module Fog
         def get(id)
           requires :server
           new disks(server.id, id).first
-        rescue Fog::Linode::Compute::NotFound
+        rescue Fog::Compute::Linode::NotFound
           nil
         end
 
diff --git a/lib/fog/linode/models/compute/flavor.rb b/lib/fog/linode/models/compute/flavor.rb
index d41c62c..5a19a0c 100644
--- a/lib/fog/linode/models/compute/flavor.rb
+++ b/lib/fog/linode/models/compute/flavor.rb
@@ -9,10 +9,7 @@ module Fog
         attribute :name
         attribute :ram
         attribute :price
-
-        def cores
-          4 # linode always has 4 cores
-        end
+        attribute :cores
 
         def bits
           0 # these are determined by images you select not the hardware
diff --git a/lib/fog/linode/models/compute/flavors.rb b/lib/fog/linode/models/compute/flavors.rb
index d989b48..530ec32 100644
--- a/lib/fog/linode/models/compute/flavors.rb
+++ b/lib/fog/linode/models/compute/flavors.rb
@@ -13,7 +13,7 @@ module Fog
 
         def get(id)
           new flavors(id).first
-        rescue Fog::Linode::Compute::NotFound
+        rescue Fog::Compute::Linode::NotFound
           nil
         end
 
diff --git a/lib/fog/linode/models/compute/server.rb b/lib/fog/linode/models/compute/server.rb
index c660338..41fd8a1 100644
--- a/lib/fog/linode/models/compute/server.rb
+++ b/lib/fog/linode/models/compute/server.rb
@@ -66,6 +66,10 @@ module Fog
           service.linode_delete id
         end
 
+        def ready?
+          status == 1
+        end
+
         private
         def config
           service.linode_config_list(id).body['DATA'].first['ConfigID']
@@ -79,9 +83,9 @@ module Fog
         end
 
         def create_disks
-          @swap = disks.create :type => :swap, :name => @name, :size => @flavor.ram
+          @swap = disks.create :type => :swap, :name => @name, :size => 256
           @disk = disks.create(:type => @type, :image => @image, :stack_script => @stack_script,
-                               :password => @password, :name => @name, :size => (@flavor.disk*1024)- at flavor.ram)
+                               :password => @password, :name => @name, :size => (@flavor.disk*1024)-256)
         end
 
         def create_config
diff --git a/lib/fog/linode/models/dns/record.rb b/lib/fog/linode/models/dns/record.rb
index f2019a4..48ebbdf 100644
--- a/lib/fog/linode/models/dns/record.rb
+++ b/lib/fog/linode/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class Linode
-
       class Record < Fog::Model
         extend Fog::Deprecation
         deprecate :ip, :value
@@ -63,9 +62,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/linode/models/dns/records.rb b/lib/fog/linode/models/dns/records.rb
index 33b41e8..340dc3a 100644
--- a/lib/fog/linode/models/dns/records.rb
+++ b/lib/fog/linode/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/linode/models/dns/record'
 module Fog
   module DNS
     class Linode
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::Linode::Record
@@ -29,9 +27,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/linode/models/dns/zone.rb b/lib/fog/linode/models/dns/zone.rb
index bd9d5fb..80f9232 100644
--- a/lib/fog/linode/models/dns/zone.rb
+++ b/lib/fog/linode/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/linode/models/dns/records'
 module Fog
   module DNS
     class Linode
-
       class Zone < Fog::Model
-
         identity :id,           :aliases => ['DomainID', 'DOMAINID', 'ResourceID']
 
         attribute :description, :aliases => 'DESCRIPTION'
@@ -75,9 +73,7 @@ module Fog
           merge_attributes(response.body['DATA'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/linode/models/dns/zones.rb b/lib/fog/linode/models/dns/zones.rb
index fd2e085..cbd467c 100644
--- a/lib/fog/linode/models/dns/zones.rb
+++ b/lib/fog/linode/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/linode/models/dns/zone'
 module Fog
   module DNS
     class Linode
-
       class Zones < Fog::Collection
-
         model Fog::DNS::Linode::Zone
 
         def all
@@ -21,9 +19,7 @@ module Fog
             nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/linode/requests/compute/avail_datacenters.rb b/lib/fog/linode/requests/compute/avail_datacenters.rb
index 26bf5f9..c048c3b 100644
--- a/lib/fog/linode/requests/compute/avail_datacenters.rb
+++ b/lib/fog/linode/requests/compute/avail_datacenters.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Get available data centers
         #
         # ==== Returns
@@ -16,7 +15,6 @@ module Fog
             :query    => { :api_action => 'avail.datacenters' }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/avail_distributions.rb b/lib/fog/linode/requests/compute/avail_distributions.rb
index 940dd63..8308d00 100644
--- a/lib/fog/linode/requests/compute/avail_distributions.rb
+++ b/lib/fog/linode/requests/compute/avail_distributions.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Get available distributions
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => { :api_action => 'avail.distributions' }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/avail_kernels.rb b/lib/fog/linode/requests/compute/avail_kernels.rb
index 3d695ef..6c0c125 100644
--- a/lib/fog/linode/requests/compute/avail_kernels.rb
+++ b/lib/fog/linode/requests/compute/avail_kernels.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Get available kernels
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => { :api_action => 'avail.kernels' }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/avail_linodeplans.rb b/lib/fog/linode/requests/compute/avail_linodeplans.rb
index 111d3a7..7cda177 100644
--- a/lib/fog/linode/requests/compute/avail_linodeplans.rb
+++ b/lib/fog/linode/requests/compute/avail_linodeplans.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Get available plans
         #
         # ==== Parameters
@@ -23,11 +22,8 @@ module Fog
             :query    => { :api_action => 'avail.linodeplans' }.merge!(options)
           )
 
-          #hack for plans not filtering by id like they should above, remove when they fix it.
-          result.body["DATA"] = result.body["DATA"].select { |item| item['PLANID'] == linodeplan_id } if linodeplan_id
           result
         end
-
       end
 
       class Mock
@@ -58,6 +54,7 @@ module Fog
           { "PRICE" => 19.95, "RAM" => 512, "XFER" => 200,
             "PLANID" => linodeplan_id, "LABEL" => "Linode #{linodeplan_id}",
             "DISK" => 20,
+            "CORES" => 1,
             "AVAIL" => {
               "3"=>48, "2"=>207, "7"=>161, "6"=>143, "4"=>108, "8"=>60
             }
diff --git a/lib/fog/linode/requests/compute/avail_stackscripts.rb b/lib/fog/linode/requests/compute/avail_stackscripts.rb
index 0b0d8df..88df620 100644
--- a/lib/fog/linode/requests/compute/avail_stackscripts.rb
+++ b/lib/fog/linode/requests/compute/avail_stackscripts.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def avail_stackscripts(options={})
           result = request(
             :expects  => 200,
@@ -12,7 +11,6 @@ module Fog
           result.body['DATA'].each { |r| r['DISTRIBUTIONIDLIST'] = r['DISTRIBUTIONIDLIST'].to_s }
           result
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_boot.rb b/lib/fog/linode/requests/compute/linode_boot.rb
index 48db21c..8b8f269 100644
--- a/lib/fog/linode/requests/compute/linode_boot.rb
+++ b/lib/fog/linode/requests/compute/linode_boot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_boot(linode_id, config_id)
           request(
             :expects => 200,
@@ -10,7 +9,6 @@ module Fog
             :query => { :api_action => 'linode.boot', :linodeId => linode_id, :configId => config_id }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_config_create.rb b/lib/fog/linode/requests/compute/linode_config_create.rb
index e603d43..19431c0 100644
--- a/lib/fog/linode/requests/compute/linode_config_create.rb
+++ b/lib/fog/linode/requests/compute/linode_config_create.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_config_create(linode_id, kernel_id, name, disk_list)
           request(
             :expects  => 200,
@@ -16,7 +15,6 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_config_delete.rb b/lib/fog/linode/requests/compute/linode_config_delete.rb
new file mode 100644
index 0000000..27bc212
--- /dev/null
+++ b/lib/fog/linode/requests/compute/linode_config_delete.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Compute
+    class Linode
+      class Real
+        def linode_config_delete(linode_id, config_id)
+          request(
+            :expects  => 200,
+            :method   => 'GET',
+            :query    => {
+              :api_action => 'linode.config.delete',
+              :linodeId => linode_id,
+              :configId => config_id
+            }
+          )
+        end
+      end
+
+      class Mock
+        def linode_config_delete(linode_id, config_id)
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "ERRORARRAY" => [],
+            "ACTION"     => "linode.config.delete",
+            "DATA"       => { "ConfigID" => rand(10000..99999) }
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/linode/requests/compute/linode_config_list.rb b/lib/fog/linode/requests/compute/linode_config_list.rb
index 3b66526..d73c8e1 100644
--- a/lib/fog/linode/requests/compute/linode_config_list.rb
+++ b/lib/fog/linode/requests/compute/linode_config_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_config_list(linode_id, config_id=nil, options={})
           if config_id
             options.merge!(:configid => config_id)
@@ -13,7 +12,6 @@ module Fog
             :query    => { :api_action => 'linode.config.list', :linodeId => linode_id }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_config_update.rb b/lib/fog/linode/requests/compute/linode_config_update.rb
new file mode 100644
index 0000000..dd7df8f
--- /dev/null
+++ b/lib/fog/linode/requests/compute/linode_config_update.rb
@@ -0,0 +1,33 @@
+module Fog
+  module Compute
+    class Linode
+      class Real
+        # api docs say LinodeID is optional, turns out its required
+        def linode_config_update(linode_id, config_id, options={})
+          request(
+            :expects  => 200,
+            :method   => 'GET',
+            :query    => { 
+              :api_action => 'linode.config.update', 
+              :configId => config_id,
+              :linodeID => linode_id
+            }.merge!(options)
+          )
+        end
+      end
+
+      class Mock
+        def linode_config_update(linode_id, config_id, options={})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "ERRORARRAY" => [],
+            "ACTION"     => "linode.config.update",
+            "DATA"       => { "ConfigID" => rand(10000..99999) }
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/linode/requests/compute/linode_create.rb b/lib/fog/linode/requests/compute/linode_create.rb
index 8361127..9860d0f 100644
--- a/lib/fog/linode/requests/compute/linode_create.rb
+++ b/lib/fog/linode/requests/compute/linode_create.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Creates a linode and assigns you full privileges
         #
         # ==== Parameters
@@ -26,7 +25,6 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_delete.rb b/lib/fog/linode/requests/compute/linode_delete.rb
index b915a65..414c8ac 100644
--- a/lib/fog/linode/requests/compute/linode_delete.rb
+++ b/lib/fog/linode/requests/compute/linode_delete.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # List all linodes user has access or delete to
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             :query    => { :api_action => 'linode.delete', :linodeId => linode_id }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_disk_create.rb b/lib/fog/linode/requests/compute/linode_disk_create.rb
index 2e8a2dc..c877185 100644
--- a/lib/fog/linode/requests/compute/linode_disk_create.rb
+++ b/lib/fog/linode/requests/compute/linode_disk_create.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_disk_create(linode_id, name, type, size)
           request(
             :expects  => 200,
@@ -16,7 +15,6 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb b/lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb
index 0b4b2ce..d3dfc19 100644
--- a/lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb
+++ b/lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_disk_createfromdistribution(linode_id, distro_id, name, size, password)
           request(
             :expects  => 200,
@@ -17,7 +16,6 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb b/lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb
index 7d0d964..26f03b8 100644
--- a/lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb
+++ b/lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_disk_createfromstackscript(linode_id, script_id, distro_id, name, size, password, options={})
           request(
             :expects  => 200,
@@ -19,7 +18,6 @@ module Fog
             }
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/compute/linode_disk_delete.rb b/lib/fog/linode/requests/compute/linode_disk_delete.rb
index e4d7929..182e0f8 100644
--- a/lib/fog/linode/requests/compute/linode_disk_delete.rb
+++ b/lib/fog/linode/requests/compute/linode_disk_delete.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_disk_delete(linode_id, disk_id)
           request(
             :expects  => 200,
@@ -14,7 +13,6 @@ module Fog
             }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_disk_list.rb b/lib/fog/linode/requests/compute/linode_disk_list.rb
index 6cf383a..6ecd9cf 100644
--- a/lib/fog/linode/requests/compute/linode_disk_list.rb
+++ b/lib/fog/linode/requests/compute/linode_disk_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_disk_list(linode_id, disk_id=nil)
           options = {}
           if disk_id
@@ -14,7 +13,6 @@ module Fog
             :query    => { :api_action => 'linode.disk.list', :linodeId => linode_id }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_ip_addprivate.rb b/lib/fog/linode/requests/compute/linode_ip_addprivate.rb
index a627ba0..8cc1169 100644
--- a/lib/fog/linode/requests/compute/linode_ip_addprivate.rb
+++ b/lib/fog/linode/requests/compute/linode_ip_addprivate.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_ip_addprivate(linode_id)
           request(
             :expects  => 200,
@@ -10,7 +9,6 @@ module Fog
             :query    => { :api_action => 'linode.ip.addprivate', :linodeId => linode_id }
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/compute/linode_ip_list.rb b/lib/fog/linode/requests/compute/linode_ip_list.rb
index ba2998d..fd909cd 100644
--- a/lib/fog/linode/requests/compute/linode_ip_list.rb
+++ b/lib/fog/linode/requests/compute/linode_ip_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_ip_list(linode_id, ip_id=nil)
           options = {}
           if ip_id
@@ -14,7 +13,6 @@ module Fog
             :query    => { :api_action => 'linode.ip.list', :linodeId => linode_id }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_list.rb b/lib/fog/linode/requests/compute/linode_list.rb
index 0f1beda..1ef8835 100644
--- a/lib/fog/linode/requests/compute/linode_list.rb
+++ b/lib/fog/linode/requests/compute/linode_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # List all linodes user has access or delete to
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
             :query    => { :api_action => 'linode.list' }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_reboot.rb b/lib/fog/linode/requests/compute/linode_reboot.rb
index f9657e5..f7572c6 100644
--- a/lib/fog/linode/requests/compute/linode_reboot.rb
+++ b/lib/fog/linode/requests/compute/linode_reboot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Issues a shutdown, and then a boot job for a given linode
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             :query    => { :api_action => 'linode.reboot', :linodeId => linode_id }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_shutdown.rb b/lib/fog/linode/requests/compute/linode_shutdown.rb
index 736d1d4..4efa4c5 100644
--- a/lib/fog/linode/requests/compute/linode_shutdown.rb
+++ b/lib/fog/linode/requests/compute/linode_shutdown.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_shutdown(linode_id)
           request(
             :expects => 200,
@@ -10,7 +9,6 @@ module Fog
             :query => { :api_action => 'linode.shutdown', :linodeId => linode_id }
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/linode_update.rb b/lib/fog/linode/requests/compute/linode_update.rb
index 50ce94a..b080449 100644
--- a/lib/fog/linode/requests/compute/linode_update.rb
+++ b/lib/fog/linode/requests/compute/linode_update.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         def linode_update(linode_id, options={})
           request(
             :expects  => 200,
@@ -10,7 +9,6 @@ module Fog
             :query    => { :api_action => 'linode.update', :linodeId => linode_id }.merge!(options)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/linode/requests/compute/stackscript_list.rb b/lib/fog/linode/requests/compute/stackscript_list.rb
index b98119d..a5e135c 100644
--- a/lib/fog/linode/requests/compute/stackscript_list.rb
+++ b/lib/fog/linode/requests/compute/stackscript_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Linode
       class Real
-
         # Get available stack scripts
         #
         # ==== Parameters
@@ -25,7 +24,6 @@ module Fog
           result.body['DATA'].each { |r| r['DISTRIBUTIONIDLIST'] = r['DISTRIBUTIONIDLIST'].to_s }
           result
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_create.rb b/lib/fog/linode/requests/dns/domain_create.rb
index 0164600..79e93fa 100644
--- a/lib/fog/linode/requests/dns/domain_create.rb
+++ b/lib/fog/linode/requests/dns/domain_create.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # Creates a domain record
         #
         # ==== Parameters
@@ -36,7 +35,6 @@ module Fog
             }.merge!( options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_delete.rb b/lib/fog/linode/requests/dns/domain_delete.rb
index 47ec126..f554c25 100644
--- a/lib/fog/linode/requests/dns/domain_delete.rb
+++ b/lib/fog/linode/requests/dns/domain_delete.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # Delete the given domain from the list Linode hosts
         #
         # ==== Parameters
@@ -20,7 +19,6 @@ module Fog
             :query    => { :api_action => 'domain.delete', :domainId => domain_id }
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_list.rb b/lib/fog/linode/requests/dns/domain_list.rb
index e7f99ae..435514a 100644
--- a/lib/fog/linode/requests/dns/domain_list.rb
+++ b/lib/fog/linode/requests/dns/domain_list.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # List of domains (you have access to)
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
             :query    => { :api_action => 'domain.list' }.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_resource_create.rb b/lib/fog/linode/requests/dns/domain_resource_create.rb
index 52df564..0291e22 100644
--- a/lib/fog/linode/requests/dns/domain_resource_create.rb
+++ b/lib/fog/linode/requests/dns/domain_resource_create.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # Creates a resource record in a domain
         #
         # ==== Parameters
@@ -37,7 +36,6 @@ module Fog
             }.merge!( options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_resource_delete.rb b/lib/fog/linode/requests/dns/domain_resource_delete.rb
index 40de204..7917cf1 100644
--- a/lib/fog/linode/requests/dns/domain_resource_delete.rb
+++ b/lib/fog/linode/requests/dns/domain_resource_delete.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # Delete the given resource from a domain
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             :query    => { :api_action => 'domain.resource.delete', :domainId => domain_id, :resourceID => resource_id }
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_resource_list.rb b/lib/fog/linode/requests/dns/domain_resource_list.rb
index 4a8fb1b..8b5d3b9 100644
--- a/lib/fog/linode/requests/dns/domain_resource_list.rb
+++ b/lib/fog/linode/requests/dns/domain_resource_list.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # List of resource records for a domain
         #
         # ==== Parameters
@@ -36,7 +35,6 @@ module Fog
             :query    => query
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_resource_update.rb b/lib/fog/linode/requests/dns/domain_resource_update.rb
index 236b658..44bc585 100644
--- a/lib/fog/linode/requests/dns/domain_resource_update.rb
+++ b/lib/fog/linode/requests/dns/domain_resource_update.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # Updates a resource record in a domain
         #
         # ==== Parameters
@@ -27,7 +26,6 @@ module Fog
         #     * DATA<~Hash>:
         #       * 'ResourceID'<~Integer>: ID of the resource record updated
         def domain_resource_update(domain_id, resource_id, options = {})
-
           query= {}
           request(
             :expects  => 200,
@@ -39,7 +37,6 @@ module Fog
             }.merge!( options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/linode/requests/dns/domain_update.rb b/lib/fog/linode/requests/dns/domain_update.rb
index c5d0a03..e6ea534 100644
--- a/lib/fog/linode/requests/dns/domain_update.rb
+++ b/lib/fog/linode/requests/dns/domain_update.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Linode
       class Real
-
         # Update a domain record
         #
         # ==== Parameters
@@ -25,15 +24,12 @@ module Fog
         #     * DATA<~Hash>:
         #       * 'DomainID'<~Integer>: domain ID
         def domain_update(domain_id, options = {})
-
           request(
             :expects  => 200,
             :method   => 'GET',
             :query    => { :api_action => 'domain.update', :domainId => domain_id }.merge!(options)
           )
-
         end
-
       end
     end
   end
diff --git a/lib/fog/local/core.rb b/lib/fog/local/core.rb
index 89567c1..7212b18 100644
--- a/lib/fog/local/core.rb
+++ b/lib/fog/local/core.rb
@@ -2,10 +2,8 @@ require 'fog/core'
 
 module Fog
   module Local
-
     extend Fog::Provider
 
     service(:storage, 'Storage')
-
   end
 end
diff --git a/lib/fog/local/models/storage/directories.rb b/lib/fog/local/models/storage/directories.rb
index 97b37e6..d974263 100644
--- a/lib/fog/local/models/storage/directories.rb
+++ b/lib/fog/local/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/local/models/storage/directory'
 module Fog
   module Storage
     class Local
-
       class Directories < Fog::Collection
-
         model Fog::Storage::Local::Directory
 
         def all
@@ -29,9 +27,7 @@ module Fog
             nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/local/models/storage/directory.rb b/lib/fog/local/models/storage/directory.rb
index 4ce8e3f..8ed9d13 100644
--- a/lib/fog/local/models/storage/directory.rb
+++ b/lib/fog/local/models/storage/directory.rb
@@ -4,9 +4,7 @@ require 'fog/local/models/storage/files'
 module Fog
   module Storage
     class Local
-
       class Directory < Fog::Model
-
         identity  :key
 
         def destroy
@@ -49,9 +47,7 @@ module Fog
         def path
           service.path_to(key)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/local/models/storage/file.rb b/lib/fog/local/models/storage/file.rb
index 82bfa52..bc7e80b 100644
--- a/lib/fog/local/models/storage/file.rb
+++ b/lib/fog/local/models/storage/file.rb
@@ -4,9 +4,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class Local
-
       class File < Fog::Model
-
         identity  :key,             :aliases => 'Key'
 
         attribute :content_length,  :aliases => 'Content-Length', :type => :integer
@@ -48,7 +46,7 @@ module Fog
 
         def destroy
           requires :directory, :key
-          ::File.delete(path) if ::File.exists?(path)
+          ::File.delete(path) if ::File.exist?(path)
           dirs = path.split(::File::SEPARATOR)[0...-1]
           dirs.length.times do |index|
             dir_path = dirs[0..-index].join(::File::SEPARATOR)
@@ -60,7 +58,7 @@ module Fog
               break
             end
             pwd = Dir.pwd
-            if ::File.exists?(dir_path) && ::File.directory?(dir_path)
+            if ::File.exist?(dir_path) && ::File.directory?(dir_path)
               Dir.chdir(dir_path)
               if Dir.glob('*').empty?
                 Dir.rmdir(dir_path)
@@ -97,14 +95,16 @@ module Fog
               next
             end
             # create directory if it doesn't already exist
-            unless ::File.directory?(dir_path)
+            begin
               Dir.mkdir(dir_path)
+            rescue Errno::EEXIST
+              raise unless ::File.directory?(dir_path)
             end
           end
           file = ::File.new(path, 'wb')
           if body.is_a?(String)
             file.write(body)
-          elsif body.kind_of? ::File and ::File.exists?(body.path)
+          elsif body.kind_of? ::File and ::File.exist?(body.path)
             FileUtils.cp(body.path, path)
           else
             file.write(body.read)
@@ -126,9 +126,7 @@ module Fog
         def path
           service.path_to(::File.join(directory.key, key))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/local/models/storage/files.rb b/lib/fog/local/models/storage/files.rb
index 498190c..e701202 100644
--- a/lib/fog/local/models/storage/files.rb
+++ b/lib/fog/local/models/storage/files.rb
@@ -4,9 +4,7 @@ require 'fog/local/models/storage/file'
 module Fog
   module Storage
     class Local
-
       class Files < Fog::Collection
-
         attribute :directory
 
         model Fog::Storage::Local::File
@@ -36,7 +34,7 @@ module Fog
         def get(key, &block)
           requires :directory
           path = file_path(key)
-          if ::File.exists?(path)
+          if ::File.exist?(path)
             data = {
               :content_length => ::File.size(path),
               :key            => key,
@@ -59,7 +57,7 @@ module Fog
         def head(key)
           requires :directory
           path = file_path(key)
-          if ::File.exists?(path)
+          if ::File.exist?(path)
             new({
               :content_length => ::File.size(path),
               :key            => key,
@@ -80,7 +78,6 @@ module Fog
         def file_path(key)
           service.path_to(::File.join(directory.key, key))
         end
-
       end
     end
   end
diff --git a/lib/fog/local/storage.rb b/lib/fog/local/storage.rb
index 713a856..55aaacf 100644
--- a/lib/fog/local/storage.rb
+++ b/lib/fog/local/storage.rb
@@ -3,7 +3,6 @@ require 'fog/local/core'
 module Fog
   module Storage
     class Local < Fog::Service
-
       requires :local_root
       recognizes :endpoint, :scheme, :host, :port, :path
 
@@ -16,7 +15,6 @@ module Fog
       require 'uri'
 
       class Mock
-
         attr_reader :endpoint
 
         def self.data
@@ -62,7 +60,6 @@ module Fog
       end
 
       class Real
-
         attr_reader :endpoint
 
         def initialize(options={})
@@ -94,7 +91,6 @@ module Fog
           URI::Generic.build(options).to_s
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/compute.rb b/lib/fog/ninefold/compute.rb
index 0ee6522..946d1f8 100644
--- a/lib/fog/ninefold/compute.rb
+++ b/lib/fog/ninefold/compute.rb
@@ -3,7 +3,6 @@ require 'fog/ninefold/core'
 module Fog
   module Compute
     class Ninefold < Fog::Service
-
       API_URL = "http://api.ninefold.com/compute/v1.0/"
 
       requires :ninefold_compute_key, :ninefold_compute_secret
@@ -69,7 +68,6 @@ module Fog
       request :update_load_balancer_rule
 
       class Mock
-
         def initialize(options)
           @api_url = options[:ninefold_api_url] || API_URL
           @ninefold_compute_key = options[:ninefold_compute_key]
@@ -82,7 +80,6 @@ module Fog
       end
 
       class Real
-
         def initialize(options)
           @api_url                  = options[:ninefold_api_url] || API_URL
           @ninefold_compute_key     = options[:ninefold_compute_key]
@@ -96,7 +93,7 @@ module Fog
           params['response'] = "json"
           # convert params to strings for sort
           req_params = params.merge('apiKey' => @ninefold_compute_key, 'command' => command)
-          req = URI.escape(req_params.sort_by{|k,v| k.to_s }.collect{|e| "#{e[0].to_s}=#{e[1].to_s}"}.join('&'))
+          req = URI.escape(req_params.sort_by{|k,v| k.to_s }.map{|e| "#{e[0].to_s}=#{e[1].to_s}"}.join('&'))
           encoded_signature = url_escape(encode_signature(req))
 
           options = {
@@ -113,7 +110,7 @@ module Fog
             # the values out with a prefix, and if there is an empty data entry return an
             # empty version of the expected type (if provided)
             response = Fog::JSON.decode(response.body)
-            if options.has_key? :response_prefix
+            if options.key? :response_prefix
               keys = options[:response_prefix].split('/')
               keys.each do |k|
                 if response[k]
@@ -131,7 +128,7 @@ module Fog
           end
         end
 
-      private
+        private
         def url_escape(string)
           string.gsub(/([^ a-zA-Z0-9_.-]+)/n) do
             '%' + $1.unpack('H2' * $1.size).join('%').upcase
diff --git a/lib/fog/ninefold/core.rb b/lib/fog/ninefold/core.rb
index 42cf0a1..261e195 100644
--- a/lib/fog/ninefold/core.rb
+++ b/lib/fog/ninefold/core.rb
@@ -3,11 +3,9 @@ require 'fog/json'
 
 module Fog
   module Ninefold
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
     service(:storage, 'Storage')
-
   end
 end
diff --git a/lib/fog/ninefold/models/compute/address.rb b/lib/fog/ninefold/models/compute/address.rb
index 8dd50e1..02a0588 100644
--- a/lib/fog/ninefold/models/compute/address.rb
+++ b/lib/fog/ninefold/models/compute/address.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Ninefold
-
       class Address < Fog::Model
-
         identity  :id
 
         attribute :account
@@ -96,7 +94,6 @@ module Fog
         def to_boolean(val)
           val && (val.to_s.match(/(true|t|yes|y|1)$/i) != nil)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/models/compute/addresses.rb b/lib/fog/ninefold/models/compute/addresses.rb
index 15f7e78..6e2b852 100644
--- a/lib/fog/ninefold/models/compute/addresses.rb
+++ b/lib/fog/ninefold/models/compute/addresses.rb
@@ -4,9 +4,7 @@ require 'fog/ninefold/models/compute/address'
 module Fog
   module Compute
     class Ninefold
-
       class Addresses < Fog::Collection
-
         model Fog::Compute::Ninefold::Address
 
         def all
@@ -23,9 +21,7 @@ module Fog
             new(data[0])
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/models/compute/flavor.rb b/lib/fog/ninefold/models/compute/flavor.rb
index 9294b95..89d0376 100644
--- a/lib/fog/ninefold/models/compute/flavor.rb
+++ b/lib/fog/ninefold/models/compute/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Ninefold
-
       class Flavor < Fog::Model
-
         identity :id
 
         attribute :cpunumber
@@ -20,10 +18,7 @@ module Fog
         attribute :offerha
         attribute :storagetype
         attribute :tags
-
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/models/compute/flavors.rb b/lib/fog/ninefold/models/compute/flavors.rb
index 4212ab3..c624a06 100644
--- a/lib/fog/ninefold/models/compute/flavors.rb
+++ b/lib/fog/ninefold/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/ninefold/models/compute/flavor'
 module Fog
   module Compute
     class Ninefold
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::Ninefold::Flavor
 
         def all
@@ -22,9 +20,7 @@ module Fog
             new(data[0])
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/models/compute/image.rb b/lib/fog/ninefold/models/compute/image.rb
index ceb7ed8..ddaad1d 100644
--- a/lib/fog/ninefold/models/compute/image.rb
+++ b/lib/fog/ninefold/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Ninefold
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :account
@@ -34,9 +32,7 @@ module Fog
         attribute :templatetype
         attribute :zoneid
         attribute :zonename
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/models/compute/images.rb b/lib/fog/ninefold/models/compute/images.rb
index 41ea913..650a40c 100644
--- a/lib/fog/ninefold/models/compute/images.rb
+++ b/lib/fog/ninefold/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/ninefold/models/compute/image'
 module Fog
   module Compute
     class Ninefold
-
       class Images < Fog::Collection
-
         model Fog::Compute::Ninefold::Image
 
         def all(offering = 'executable')
@@ -22,9 +20,7 @@ module Fog
             new(data[0])
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb b/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb
index 3853c42..b01d844 100644
--- a/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb
+++ b/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Ninefold
-
       class IpForwardingRule < Fog::Model
-
         identity  :id
 
         attribute :protocol
@@ -72,7 +70,6 @@ module Fog
             job['jobid'] || job['id']
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb b/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb
index ae0826c..36078ff 100644
--- a/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb
+++ b/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb
@@ -4,9 +4,7 @@ require 'fog/ninefold/models/compute/ip_forwarding_rule'
 module Fog
   module Compute
     class Ninefold
-
       class IpForwardingRules < Fog::Collection
-
         model Fog::Compute::Ninefold::IpForwardingRule
 
         def all
@@ -23,9 +21,7 @@ module Fog
             new(data[0])
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/models/compute/server.rb b/lib/fog/ninefold/models/compute/server.rb
index 42d709b..76ece1a 100644
--- a/lib/fog/ninefold/models/compute/server.rb
+++ b/lib/fog/ninefold/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Ninefold
-
       class Server < Fog::Compute::Server
         extend Fog::Deprecation
         deprecate :serviceofferingid, :flavor_id
@@ -66,7 +65,6 @@ module Fog
         #attribute :flavor_id, :aliases => "server_type", :squash => "id"
         #attribute :zone_id, :aliases => "zone", :squash => "id"
 
-
         def initialize(attributes={})
           merge_attributes({
             :flavor_id => 105, # '1CPU, 384MB, 80GB HDD'
@@ -178,7 +176,6 @@ module Fog
             job['jobid'] || job['id']
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/models/compute/servers.rb b/lib/fog/ninefold/models/compute/servers.rb
index 6293bbd..e0e26d6 100644
--- a/lib/fog/ninefold/models/compute/servers.rb
+++ b/lib/fog/ninefold/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/ninefold/models/compute/server'
 module Fog
   module Compute
     class Ninefold
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Ninefold::Server
 
         def all
@@ -23,9 +21,7 @@ module Fog
             new(data[0])
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb b/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb
index 9c46622..5044a9f 100644
--- a/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb
+++ b/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb
@@ -9,5 +9,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/ninefold/requests/compute/associate_ip_address.rb b/lib/fog/ninefold/requests/compute/associate_ip_address.rb
index 1d5113a..dea4d95 100644
--- a/lib/fog/ninefold/requests/compute/associate_ip_address.rb
+++ b/lib/fog/ninefold/requests/compute/associate_ip_address.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def associate_ip_address(options = {})
           request('associateIpAddress', options, :expects => [200],
                   :response_prefix => 'associateipaddressresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/change_service_for_virtual_machine.rb b/lib/fog/ninefold/requests/compute/change_service_for_virtual_machine.rb
index c59bb73..1842454 100644
--- a/lib/fog/ninefold/requests/compute/change_service_for_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/change_service_for_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def change_service_for_virtual_machine(options = {})
           request('changeServiceForVirtualMachine', options, :expects => [200],
                   :response_prefix => 'changeserviceforvirtualmachineresponse/virtualmachine', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/create_ip_forwarding_rule.rb b/lib/fog/ninefold/requests/compute/create_ip_forwarding_rule.rb
index d1ddcf1..8d207bc 100644
--- a/lib/fog/ninefold/requests/compute/create_ip_forwarding_rule.rb
+++ b/lib/fog/ninefold/requests/compute/create_ip_forwarding_rule.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def create_ip_forwarding_rule(options = {})
           request('createIpForwardingRule', options, :expects => [200],
                   :response_prefix => 'createipforwardingruleresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/delete_ip_forwarding_rule.rb b/lib/fog/ninefold/requests/compute/delete_ip_forwarding_rule.rb
index bd97345..5121bad 100644
--- a/lib/fog/ninefold/requests/compute/delete_ip_forwarding_rule.rb
+++ b/lib/fog/ninefold/requests/compute/delete_ip_forwarding_rule.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def delete_ip_forwarding_rule(options = {})
           request('deleteIpForwardingRule', options, :expects => [200],
                   :response_prefix => 'deleteipforwardingruleresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/deploy_virtual_machine.rb b/lib/fog/ninefold/requests/compute/deploy_virtual_machine.rb
index 084c142..9517d97 100644
--- a/lib/fog/ninefold/requests/compute/deploy_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/deploy_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def deploy_virtual_machine(options = {})
           request('deployVirtualMachine', options, :expects => [200],
                   :response_prefix => 'deployvirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/destroy_virtual_machine.rb b/lib/fog/ninefold/requests/compute/destroy_virtual_machine.rb
index a4bd514..4666f9c 100644
--- a/lib/fog/ninefold/requests/compute/destroy_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/destroy_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def destroy_virtual_machine(options = {})
           request('destroyVirtualMachine', options, :expects => [200],
                   :response_prefix => 'destroyvirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/disable_static_nat.rb b/lib/fog/ninefold/requests/compute/disable_static_nat.rb
index b982dfc..a1905d4 100644
--- a/lib/fog/ninefold/requests/compute/disable_static_nat.rb
+++ b/lib/fog/ninefold/requests/compute/disable_static_nat.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def disable_static_nat(options = {})
           request('disableStaticNat', options, :expects => [200],
                   :response_prefix => 'disablestaticnatresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/disassociate_ip_address.rb b/lib/fog/ninefold/requests/compute/disassociate_ip_address.rb
index d31f162..bd8e899 100644
--- a/lib/fog/ninefold/requests/compute/disassociate_ip_address.rb
+++ b/lib/fog/ninefold/requests/compute/disassociate_ip_address.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def disassociate_ip_address(options = {})
           request('disassociateIpAddress', options, :expects => [200],
                   :response_prefix => 'disassociateipaddressresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/enable_static_nat.rb b/lib/fog/ninefold/requests/compute/enable_static_nat.rb
index eddd6b4..c883d81 100644
--- a/lib/fog/ninefold/requests/compute/enable_static_nat.rb
+++ b/lib/fog/ninefold/requests/compute/enable_static_nat.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def enable_static_nat(options = {})
           request('enableStaticNat', options, :expects => [200],
                   :response_prefix => 'enablestaticnatresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_accounts.rb b/lib/fog/ninefold/requests/compute/list_accounts.rb
index 866fdb2..337af07 100644
--- a/lib/fog/ninefold/requests/compute/list_accounts.rb
+++ b/lib/fog/ninefold/requests/compute/list_accounts.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_accounts(options = {})
           request('listAccounts', options, :expects => [200],
                   :response_prefix => 'listaccountsresponse/account', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_async_jobs.rb b/lib/fog/ninefold/requests/compute/list_async_jobs.rb
index c96b570..e8ecde5 100644
--- a/lib/fog/ninefold/requests/compute/list_async_jobs.rb
+++ b/lib/fog/ninefold/requests/compute/list_async_jobs.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_async_jobs(options = {})
           request('listAsyncJobs', options, :expects => [200],
                   :response_prefix => 'listasyncjobsresponse/asyncjobs', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_capabilities.rb b/lib/fog/ninefold/requests/compute/list_capabilities.rb
index 7a50069..748e44f 100644
--- a/lib/fog/ninefold/requests/compute/list_capabilities.rb
+++ b/lib/fog/ninefold/requests/compute/list_capabilities.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_capabilities(options = {})
           request('listCapabilities', options, :expects => [200],
                   :response_prefix => 'listcapabilitiesresponse/capability', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_disk_offerings.rb b/lib/fog/ninefold/requests/compute/list_disk_offerings.rb
index fa64094..dcd08bc 100644
--- a/lib/fog/ninefold/requests/compute/list_disk_offerings.rb
+++ b/lib/fog/ninefold/requests/compute/list_disk_offerings.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_disk_offerings(options = {})
           request('listDiskOfferings', options, :expects => [200],
                   :response_prefix => 'listdiskofferingsresponse/diskoffering', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_events.rb b/lib/fog/ninefold/requests/compute/list_events.rb
index fe775b4..3c697a1 100644
--- a/lib/fog/ninefold/requests/compute/list_events.rb
+++ b/lib/fog/ninefold/requests/compute/list_events.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_events(options = {})
           request('listEvents', options, :expects => [200],
                   :response_prefix => 'listeventsresponse/event', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_hypervisors.rb b/lib/fog/ninefold/requests/compute/list_hypervisors.rb
index 5f8dd67..a3541b7 100644
--- a/lib/fog/ninefold/requests/compute/list_hypervisors.rb
+++ b/lib/fog/ninefold/requests/compute/list_hypervisors.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_hypervisors(options = {})
           request('listHypervisors', options, :expects => [200],
                   :response_prefix => 'listhypervisorsresponse/hypervisor', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_ip_forwarding_rules.rb b/lib/fog/ninefold/requests/compute/list_ip_forwarding_rules.rb
index 70a774d..72b4ae2 100644
--- a/lib/fog/ninefold/requests/compute/list_ip_forwarding_rules.rb
+++ b/lib/fog/ninefold/requests/compute/list_ip_forwarding_rules.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_ip_forwarding_rules(options = {})
           request('listIpForwardingRules', options, :expects => [200],
                   :response_prefix => 'listipforwardingrulesresponse/ipforwardingrule', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb b/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb
index 535d648..b88f0c9 100644
--- a/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb
+++ b/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb
@@ -9,7 +9,3 @@ module Fog
     end
   end
 end
-
-
-
-
diff --git a/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb b/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb
index cb2f1aa..1361972 100644
--- a/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb
+++ b/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb
@@ -9,6 +9,3 @@ module Fog
     end
   end
 end
-
-
-
diff --git a/lib/fog/ninefold/requests/compute/list_network_offerings.rb b/lib/fog/ninefold/requests/compute/list_network_offerings.rb
index 30e900c..7abd3d4 100644
--- a/lib/fog/ninefold/requests/compute/list_network_offerings.rb
+++ b/lib/fog/ninefold/requests/compute/list_network_offerings.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_network_offerings(options = {})
           request('listNetworkOfferings', options, :expects => [200],
                   :response_prefix => 'listnetworkofferingsresponse/networkoffering', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_networks.rb b/lib/fog/ninefold/requests/compute/list_networks.rb
index bc7fb8b..5a7813b 100644
--- a/lib/fog/ninefold/requests/compute/list_networks.rb
+++ b/lib/fog/ninefold/requests/compute/list_networks.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_networks(options = {})
           request('listNetworks', options, :expects => [200],
                   :response_prefix => 'listnetworksresponse/network', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_public_ip_addresses.rb b/lib/fog/ninefold/requests/compute/list_public_ip_addresses.rb
index f060b6b..3902dbb 100644
--- a/lib/fog/ninefold/requests/compute/list_public_ip_addresses.rb
+++ b/lib/fog/ninefold/requests/compute/list_public_ip_addresses.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_public_ip_addresses(options = {})
           request('listPublicIpAddresses', options, :expects => [200],
                   :response_prefix => 'listpublicipaddressesresponse/publicipaddress', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_resource_limits.rb b/lib/fog/ninefold/requests/compute/list_resource_limits.rb
index 757443f..e38aaca 100644
--- a/lib/fog/ninefold/requests/compute/list_resource_limits.rb
+++ b/lib/fog/ninefold/requests/compute/list_resource_limits.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_resource_limits(options = {})
           request('listResourceLimits', options, :expects => [200],
                   :response_prefix => 'listresourcelimitsresponse/resourcelimit', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_service_offerings.rb b/lib/fog/ninefold/requests/compute/list_service_offerings.rb
index 4f57fe0..93c4615 100644
--- a/lib/fog/ninefold/requests/compute/list_service_offerings.rb
+++ b/lib/fog/ninefold/requests/compute/list_service_offerings.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_service_offerings(options = {})
           request('listServiceOfferings', options, :expects => [200],
                   :response_prefix => 'listserviceofferingsresponse/serviceoffering', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_templates.rb b/lib/fog/ninefold/requests/compute/list_templates.rb
index 2d2eab6..86b34da 100644
--- a/lib/fog/ninefold/requests/compute/list_templates.rb
+++ b/lib/fog/ninefold/requests/compute/list_templates.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_templates(options = {})
           request('listTemplates', options, :expects => [200],
                   :response_prefix => 'listtemplatesresponse/template', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_virtual_machines.rb b/lib/fog/ninefold/requests/compute/list_virtual_machines.rb
index b9e1f1b..99544d6 100644
--- a/lib/fog/ninefold/requests/compute/list_virtual_machines.rb
+++ b/lib/fog/ninefold/requests/compute/list_virtual_machines.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_virtual_machines(options = {})
           request('listVirtualMachines', options, :expects => [200],
                   :response_prefix => 'listvirtualmachinesresponse/virtualmachine', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/list_zones.rb b/lib/fog/ninefold/requests/compute/list_zones.rb
index e8c623a..b37a417 100644
--- a/lib/fog/ninefold/requests/compute/list_zones.rb
+++ b/lib/fog/ninefold/requests/compute/list_zones.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def list_zones(options = {})
           request('listZones', options, :expects => [200],
                   :response_prefix => 'listzonesresponse/zone', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/query_async_job_result.rb b/lib/fog/ninefold/requests/compute/query_async_job_result.rb
index ab916ad..a091f94 100644
--- a/lib/fog/ninefold/requests/compute/query_async_job_result.rb
+++ b/lib/fog/ninefold/requests/compute/query_async_job_result.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def query_async_job_result(options = {})
           request('queryAsyncJobResult', options, :expects => [200],
                   :response_prefix => 'queryasyncjobresultresponse', :response_type => Array)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/reboot_virtual_machine.rb b/lib/fog/ninefold/requests/compute/reboot_virtual_machine.rb
index 85963cc..64d2c48 100644
--- a/lib/fog/ninefold/requests/compute/reboot_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/reboot_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def reboot_virtual_machine(options = {})
           request('rebootVirtualMachine', options, :expects => [200],
                   :response_prefix => 'rebootvirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb b/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb
index a4fb7b3..8bfb6d8 100644
--- a/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb
+++ b/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb
@@ -9,4 +9,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/ninefold/requests/compute/reset_password_for_virtual_machine.rb b/lib/fog/ninefold/requests/compute/reset_password_for_virtual_machine.rb
index 7fe6747..1d30c24 100644
--- a/lib/fog/ninefold/requests/compute/reset_password_for_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/reset_password_for_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def reset_password_for_virtual_machine(options = {})
           request('resetPasswordForVirtualMachine', options, :expects => [200],
                   :response_prefix => 'resetpasswordforvirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/start_virtual_machine.rb b/lib/fog/ninefold/requests/compute/start_virtual_machine.rb
index fd86d9e..a38c397 100644
--- a/lib/fog/ninefold/requests/compute/start_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/start_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def start_virtual_machine(options = {})
           request('startVirtualMachine', options, :expects => [200],
                   :response_prefix => 'startvirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/stop_virtual_machine.rb b/lib/fog/ninefold/requests/compute/stop_virtual_machine.rb
index 542eec5..44823b2 100644
--- a/lib/fog/ninefold/requests/compute/stop_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/stop_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def stop_virtual_machine(options = {})
           request('stopVirtualMachine', options, :expects => [200],
                   :response_prefix => 'stopvirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb b/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb
index 86e4563..71f5703 100644
--- a/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb
+++ b/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb
@@ -9,7 +9,3 @@ module Fog
     end
   end
 end
-
-
-
-
diff --git a/lib/fog/ninefold/requests/compute/update_virtual_machine.rb b/lib/fog/ninefold/requests/compute/update_virtual_machine.rb
index 6254e9d..eaebea8 100644
--- a/lib/fog/ninefold/requests/compute/update_virtual_machine.rb
+++ b/lib/fog/ninefold/requests/compute/update_virtual_machine.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class Ninefold
       class Real
-
         def update_virtual_machine(options = {})
           request('updateVirtualMachine', options, :expects => [200],
                   :response_prefix => 'updatevirtualmachineresponse', :response_type => Hash)
         end
-
       end
     end
   end
diff --git a/lib/fog/ninefold/storage.rb b/lib/fog/ninefold/storage.rb
index 7c955f6..70a28ee 100644
--- a/lib/fog/ninefold/storage.rb
+++ b/lib/fog/ninefold/storage.rb
@@ -32,7 +32,6 @@ module Fog
         def request(options)
           raise "Ninefold Storage mocks not implemented"
         end
-
       end
 
       class Real < Fog::Storage::Atmos::Real
diff --git a/lib/fog/opennebula.rb b/lib/fog/opennebula.rb
new file mode 100644
index 0000000..eecf9fa
--- /dev/null
+++ b/lib/fog/opennebula.rb
@@ -0,0 +1 @@
+require 'fog/opennebula/compute'
diff --git a/lib/fog/opennebula/README.md b/lib/fog/opennebula/README.md
new file mode 100755
index 0000000..f897d63
--- /dev/null
+++ b/lib/fog/opennebula/README.md
@@ -0,0 +1,113 @@
+# Getting started with OpenNebula (one) Fog provider
+
+[OpenNebula](http://www.opennebula.org) provides ruby bindings to access the xml-rpc
+
+The opennebula fog extensions provides examples for using Fog with OpenNebula (4.4).
+
+**Note:** This provider is under construction! This means everything that is provided should work without problems, but there are many features not available yet. Please contribute!
+
+## Requirements
+
+For working with this provider the following pre-requisites are needed:
+
+* Ruby version 1.8.x or 1.9.x
+* `fog` gem
+* Working OpenNebula instance with XML-RPC and credentials
+* This version is tested with OpenNebula 4.4 and the opennebula gem dependency is hardcoded to this version. it should work with version 4.6, but is not tested.
+
+
+## Examples
+
+General proceeding:
+
+* Connect to one-rpc
+* create new vm object
+* fetch a template/flavor from one (this template should be predefined)
+* assigne the flavor/template to the vm
+* change the attributes of this flavor/template (name, cpu, memory, nics....)
+* save/instantiate the vm
+
+```ruby
+require 'fog'
+
+# connect to your one rpc
+con = Fog::Compute.new(
+    {
+      :provider => 'OpenNebula',
+      :opennebula_username => 'user',
+      :opennebula_password => 'password',
+      :opennebula_endpoint => 'http://oned.domain:2633/RPC2'
+    }
+  )
+
+
+# list all vms
+con.servers
+
+# list all flavors (templates in OpenNebula slang)
+con.flavors
+
+# get flavor with id 4
+con.flavors.get 4
+
+# list all Virtual Networks
+con.networks
+con.networks.get 2
+
+# get all usergroups
+con.groups
+
+# create a new vm (creates the object, the vm is not instantiated yet)
+newvm = con.servers.new
+
+# set the flavor of the vm
+newvm.flavor = con.flavors.get 4
+
+# set the name of the vm
+newvm.name = "FooBarVM"
+
+# set the groupid of the vm 
+newvm.gid = 0
+
+# set cores and memory (MB)
+newvm.flavor.vcpu = 2
+newvm.flavor.memory = 256
+
+# create a new network interface attached to the network with id 1 and virtio as driver/model
+network = client.networks.get(1)
+nic = con.interfaces.new({ :vnet => network, :model => "virtio"})
+
+# Attach the new nic to our vm
+newvm.flavor.nic = [ nic ]
+
+# instantiat the new vm
+newvm.save
+```
+
+## Features
+
+tbd
+
+## not working yet
+
+* con.groups.get 4
+
+_AND_ everything not mentioned in features or examples ;)
+
+
+## Troubleshooting
+
+* ArgumentError: opennebula is not a recognized compute provider
+  * is the correct gem version included?
+
+## Additional Resources
+* [Fog cloud library](http://fog.io)
+* [Fog documentation](http://rubydoc.info/gems/fog)
+* [Fog Github repo](https://github.com/fog/fog)
+* [Fog Release Notes](https://github.com/fog/fog/blob/master/changelog.txt)
+* [Ruby OpenNebula Cloud API](http://docs.opennebula.org/stable/integration/system_interfaces/ruby.html)
+* [OpenNebula ruby bindings](http://docs.opennebula.org/doc/stable/oca/ruby/)
+
+## Support and Feedback
+
+Please contribute and send feedback! Just do it here!
diff --git a/lib/fog/opennebula/compute.rb b/lib/fog/opennebula/compute.rb
new file mode 100644
index 0000000..4f94e79
--- /dev/null
+++ b/lib/fog/opennebula/compute.rb
@@ -0,0 +1,57 @@
+require 'fog/opennebula/core'
+
+module Fog
+ module Compute
+  class OpenNebula < Fog::Service
+      requires   :opennebula_endpoint
+      recognizes :opennebula_username, :opennebula_password
+
+      model_path 'fog/opennebula/models/compute'
+      model       :server
+      collection  :servers
+      model       :network
+      collection  :networks
+      model       :flavor
+      collection  :flavors
+      model       :interface
+      collection  :interfaces
+      model       :group
+      collection  :groups
+      
+      request_path 'fog/opennebula/requests/compute'
+      request :list_vms
+      request :list_groups
+      request :list_networks
+      request :vm_allocate
+      request :vm_destroy
+      request :get_vnc_console
+      request :vm_resume
+      request :vm_stop
+      request :template_pool
+
+    class Mock
+      include Collections
+      def initialize(options={})
+        require 'opennebula'
+      end
+
+      def client
+        return @client
+      end
+    end
+
+    class Real
+      include Collections
+
+      def client
+        return @client
+      end
+
+      def initialize(options={})
+        require 'opennebula'
+        @client = ::OpenNebula::Client.new("#{options[:opennebula_username]}:#{options[:opennebula_password]}", options[:opennebula_endpoint])
+      end
+    end
+  end
+ end
+end
diff --git a/lib/fog/opennebula/core.rb b/lib/fog/opennebula/core.rb
new file mode 100644
index 0000000..8fa3394
--- /dev/null
+++ b/lib/fog/opennebula/core.rb
@@ -0,0 +1,8 @@
+require 'fog/core'
+
+module Fog
+  module OpenNebula
+    extend Fog::Provider
+    service(:compute, 'Compute')
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/flavor.rb b/lib/fog/opennebula/models/compute/flavor.rb
new file mode 100644
index 0000000..69ae14d
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/flavor.rb
@@ -0,0 +1,133 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Flavor < Fog::Model
+        identity :id
+        attribute :name
+        attribute :content
+        attribute :cpu
+        attribute :vcpu
+        attribute :memory
+        attribute :sched_requirements
+        attribute :sched_rank
+        attribute :sched_ds_requirements
+        attribute :sched_ds_rank
+        attribute :disk
+        attribute :nic
+        attribute :os
+        attribute :graphics
+        attribute :raw
+
+
+        def to_label
+          "#{name} -- #{vcpu} VCPU - #{memory}MB Mem"
+        end
+
+        def to_s
+          "" + get_cpu \
+            + get_vcpu \
+            + get_memory \
+            + get_disk \
+            + get_nic \
+            + get_os \
+            + get_graphics \
+            + get_raw \
+            + get_sched_requirements \
+            + get_sched_ds_requirements \
+            + get_sched_rank \
+            + get_sched_ds_rank
+        end
+
+        def get_cpu
+          "CPU=#{vcpu.to_f/10}\n"
+        end  
+
+        def get_vcpu
+          vcpu = 1 unless vcpu
+          "VCPU=#{vcpu}\n"
+        end  
+
+        def get_memory
+          memory = 128 unless memory
+          "MEMORY=#{memory}\n"
+        end  
+
+        def get_raw
+          return "" unless raw
+          "RAW=#{raw}\n"
+        end
+
+        def get_disk
+          return "" unless disk
+          ret = ""
+          if disk.is_a? Array
+            disk.each do |d|
+              ret += "DISK=#{d}\n"
+            end
+          else
+            ret = "DISK=#{disk}\n"
+          end
+          ret.gsub!(/\{/, '[')
+          ret.gsub!(/\}/, ']')
+          ret.gsub!(/>/,'')
+          ret 
+        end
+
+        def get_os
+          return "" unless os
+          ret = "OS=#{os}\n"
+          ret.gsub!(/\{/, '[')
+          ret.gsub!(/\}/, ']')
+          ret.gsub!(/>/,'')
+          ret 
+        end
+
+        def get_graphics
+          return "" unless graphics 
+          ret = "GRAPHICS=#{graphics}\n"
+          ret.gsub!(/\{/, '[')
+          ret.gsub!(/\}/, ']')
+          ret.gsub!(/>/,'')
+          ret 
+        end
+
+        def get_nic
+          # NIC=[MODEL="virtio",NETWORK="vlan17",NETWORK_UNAME="oneadmin"]
+          return "" if( nic.nil? || !(nic.is_a? Array))
+          ret = ""
+
+          nic.each do |n|
+            ret += %Q|NIC=[MODEL="#{n.model}",NETWORK_ID="#{n.vnet.id}"]\n|
+          end
+          #ret.gsub!(/\{/, '[')
+          #ret.gsub!(/\}/, ']')
+          #ret.gsub!(/>/,'')
+          ret 
+        end
+
+        def get_sched_ds_requirements
+          return "" unless sched_ds_requirements 
+          %Q|SCHED_DS_REQUIREMENTS="#{sched_ds_requirements}"\n|
+        end
+
+        def get_sched_ds_rank
+          return "" unless sched_ds_rank 
+          %Q|SCHED_DS_RANK="#{sched_ds_rank}"\n|
+        end
+
+        def get_sched_requirements
+          return "" unless sched_requirements 
+          %Q|SCHED_REQUIREMENTS="#{sched_requirements}"\n|
+        end
+
+        def get_sched_rank
+          return "" unless sched_rank 
+          %Q|SCHED_RANK="#{sched_rank}"\n|
+        end
+
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/flavors.rb b/lib/fog/opennebula/models/compute/flavors.rb
new file mode 100644
index 0000000..9e804db
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/flavors.rb
@@ -0,0 +1,35 @@
+require 'fog/core/collection'
+require 'fog/opennebula/models/compute/flavor'
+
+module Fog
+  module Compute
+    class OpenNebula
+
+      class Flavors < Fog::Collection
+
+        model Fog::Compute::OpenNebula::Flavor
+
+        def all
+          data = service.template_pool
+          load(data)
+        end
+
+        def get(flavor_id)
+          data = service.template_pool({:id => flavor_id})
+          load(data).first
+        rescue Fog::Compute::OpenNebula::NotFound
+          nil
+        end
+
+        def get_by_name(flavor_name)
+          data = service.template_pool({:name => flavor_name})
+          load(data)
+        rescue Fog::Compute::OpenNebula::NotFound
+          nil
+        end
+
+      end
+
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/group.rb b/lib/fog/opennebula/models/compute/group.rb
new file mode 100644
index 0000000..be22933
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/group.rb
@@ -0,0 +1,22 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Group < Fog::Model
+
+        identity :id
+        attribute :name
+
+        def save
+          raise Fog::Errors::Error.new('Creating a new group is not yet implemented. Contributions welcome!')
+        end
+
+        def to_label
+          name
+        end
+
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/groups.rb b/lib/fog/opennebula/models/compute/groups.rb
new file mode 100644
index 0000000..7f22890
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/groups.rb
@@ -0,0 +1,34 @@
+require 'fog/core/collection'
+require 'fog/opennebula/models/compute/group'
+
+module Fog
+  module Compute
+    class OpenNebula
+
+      class Groups < Fog::Collection
+
+        model Fog::Compute::OpenNebula::Group
+
+        def all(filter={})
+          load(service.list_groups(filter))
+        end
+
+        def get(id)
+          group = self.all({:id => id})
+          
+          if group.length > 1
+            raise Fog::Errors::Error.new("groups.get should return only one group, not #{group.length}!")
+          end
+
+          group.first
+        end
+
+        def get_by_name(str)
+          self.all({:name => str})
+        end
+
+      end
+
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/interface.rb b/lib/fog/opennebula/models/compute/interface.rb
new file mode 100644
index 0000000..d25bc22
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/interface.rb
@@ -0,0 +1,33 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Interface < Fog::Model
+
+        identity :id
+        attribute :vnet
+        attribute :model
+        attribute :name
+        attribute :mac
+
+        def save
+          raise Fog::Errors::Error.new('Creating a new interface is not yet implemented. Contributions welcome!')
+        end
+ 
+        def vnetid
+          return ""
+        end
+
+        def persisted?
+          mac
+        end
+
+        def destroy
+          raise Fog::Errors::Error.new('Destroying an interface is not yet implemented. Contributions welcome!')
+        end
+
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/interfaces.rb b/lib/fog/opennebula/models/compute/interfaces.rb
new file mode 100644
index 0000000..324e481
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/interfaces.rb
@@ -0,0 +1,12 @@
+require 'fog/core/collection'
+require 'fog/opennebula/models/compute/interface'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Interfaces < Fog::Collection
+        model Fog::Compute::OpenNebula::Interface
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/network.rb b/lib/fog/opennebula/models/compute/network.rb
new file mode 100644
index 0000000..a6a5612
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/network.rb
@@ -0,0 +1,41 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Network < Fog::Model
+
+        identity :id
+        attribute :name
+        attribute :uid
+        attribute :gid
+        attribute :description
+        attribute :vlan
+
+        def description
+          attributes[:description] || ""
+        end
+
+        def vlan
+          attributes[:vlan] || ""
+        end
+
+        def save
+          raise Fog::Errors::Error.new('Creating a new network is not yet implemented. Contributions welcome!')
+        end
+
+        def shutdown
+          raise Fog::Errors::Error.new('Shutting down a new network is not yet implemented. Contributions welcome!')
+        end
+
+        def to_label
+          ret = ""
+          ret += "#{description} - " unless description.empty?
+          ret += "VLAN #{vlan} - " unless vlan.empty?
+          ret += "#{name}"
+        end
+
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/networks.rb b/lib/fog/opennebula/models/compute/networks.rb
new file mode 100644
index 0000000..b7df468
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/networks.rb
@@ -0,0 +1,21 @@
+require 'fog/core/collection'
+require 'fog/opennebula/models/compute/network'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Networks < Fog::Collection
+        model Fog::Compute::OpenNebula::Network
+
+        def all(filter={})
+          load(service.list_networks(filter))
+        end
+
+        def get(id)
+          self.all({:id => id}).first
+        end
+
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/server.rb b/lib/fog/opennebula/models/compute/server.rb
new file mode 100644
index 0000000..82d2480
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/server.rb
@@ -0,0 +1,92 @@
+require 'fog/compute/models/server'
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Server < Fog::Compute::Server
+        identity :id
+        attribute :template_str
+        attribute :name
+        attribute :uuid
+        attribute :state
+        attribute :status
+        attribute :ip
+        attribute :mac
+        attribute :vcpu
+        attribute :cpu
+        attribute :memory
+        attribute :user
+        attribute :gid
+        attribute :group
+        attribute :onevm_object
+        attribute :flavor
+
+        def save
+          merge_attributes(service.vm_allocate(attributes))
+        end
+
+        # only for integration in foreman
+        # needed by formbuilder
+        # should be handled by foreman and not by fog
+        def vminterfaces
+          []
+        end
+
+        # only for integration in foreman
+        # needed by formbuilder
+        # should be handled by foreman and not from by fog
+        def vminterfaces_attributes=(attributes)
+          true
+        end
+
+        def vm_ip_address
+          ip
+        end
+
+        def private_ip_address
+          ip
+        end
+
+        def public_ip_address
+          ip
+        end
+
+        def vm_mac_address
+          mac
+        end
+
+        def start
+          if status == 4
+            service.vm_resume(id)
+          end
+          true
+        end	
+
+        def stop
+          Fog::Logger.warning("stop VM: ID:#{id}")
+          service.vm_stop(id)
+        end
+
+        def destroy
+          service.vm_destroy(id)
+        end
+
+        def ready?
+          (status == 3) 
+        end
+
+        # only for integration in foreman
+        # needed by formbuilder
+        # should be handled by foreman and not by fog
+        def template_id
+          ""
+        end
+
+        def console_output
+          requires :id
+          service.get_vnc_console(id, "vnc", onevm_object)
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/models/compute/servers.rb b/lib/fog/opennebula/models/compute/servers.rb
new file mode 100644
index 0000000..4c8127b
--- /dev/null
+++ b/lib/fog/opennebula/models/compute/servers.rb
@@ -0,0 +1,26 @@
+require 'fog/core/collection'
+require 'fog/opennebula/models/compute/server'
+
+
+module Fog
+  module Compute
+    class OpenNebula
+
+      class Servers < Fog::Collection
+
+        model Fog::Compute::OpenNebula::Server
+
+        def all(filter={})
+          load(service.list_vms(filter))
+        end
+
+        def get(id)
+          data = service.list_vms({:id => id})
+          new data.first unless data.empty?
+        end
+
+      end
+    end
+  end
+end
+
diff --git a/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb b/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb
new file mode 100644
index 0000000..e099f19
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb
@@ -0,0 +1,336 @@
+# -------------------------------------------------------------------------- #
+# Copyright 2002-2014, OpenNebula Project (OpenNebula.org), C12G Labs        #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License"); you may    #
+# not use this file except in compliance with the License. You may obtain    #
+# a copy of the License at                                                   #
+#                                                                            #
+# http://www.apache.org/licenses/LICENSE-2.0                                 #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS,          #
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+#--------------------------------------------------------------------------- #
+
+#
+# This class provides support for launching and stopping a websockify proxy
+#
+
+require 'rubygems'
+require 'json'
+require 'opennebula'
+
+
+#if !ONE_LOCATION
+    NOVNC_LOCK_FILE = "/var/lock/.novnc.lock"
+#else
+#    NOVNC_LOCK_FILE= ONE_LOCATION + "/var/.novnc.lock"
+#end
+
+TOKEN_EXPIRE_SECONDS = 4
+
+VNC_STATES = [
+        #0,  #LCM_INIT
+        #1,  #PROLOG
+        #2,  #BOOT
+        "3",  #RUNNING
+        "4",  #MIGRATE
+        #5,  #SAVE_STOP
+        #6,  #SAVE_SUSPEND
+        #7,  #SAVE_MIGRATE
+        #8,  #PROLOG_MIGRATE
+        #9,  #PROLOG_RESUME
+        #10, #EPILOG_STOP
+        #11, #EPILOG
+        "12", #SHUTDOWN
+        "13", #CANCEL
+        #14, #FAILURE
+        #15, #CLEANUP_RESUBMIT
+        "16", #UNKNOWN
+        "17", #HOTPLUG
+        "18", #SHUTDOWN_POWEROFF
+        #19, #BOOT_UNKNOWN
+        #20, #BOOT_POWEROFF
+        #21, #BOOT_SUSPENDED
+        #22, #BOOT_STOPPED
+        #23, #CLEANUP_DELETE
+        "24", #HOTPLUG_SNAPSHOT
+        "25", #HOTPLUG_NIC
+        "26", #HOTPLUG_SAVEAS
+        "27", #HOTPLUG_SAVEAS_POWEROFF
+        "28", #HOTPLUG_SAVEAS_SUSPENDED
+        "29"  #SHUTDOWN_UNDEPLOY
+        #30, #EPILOG_UNDEPLOY
+        #31, #PROLOG_UNDEPLOY
+        #32  #BOOT_UNDEPLOY
+]
+
+VAR_LOCATION = Dir.pwd + "/extras/noVNC" 
+SHARE_LOCATION = Dir.pwd + "/extras/noVNC"
+class OpenNebulaVNC
+
+    attr_reader :proxy_port
+
+    def initialize(config, logger, options = {})
+        opts={ :json_errors => true,
+               :token_folder_name => 'sunstone_vnc_tokens'}.merge(options)
+
+        @pipe = nil
+        @token_folder = File.join(VAR_LOCATION, opts[:token_folder_name])
+        @proxy_path   = File.join(SHARE_LOCATION, "websockify/websocketproxy.py")
+        @proxy_port   = config[:vnc_proxy_port]
+
+        @proxy_ipv6   = config[:vnc_proxy_ipv6]
+
+        @wss = config[:vnc_proxy_support_wss]
+
+        @lock_file = NOVNC_LOCK_FILE
+
+        if (@wss == "yes") || (@wss == "only") || (@wss == true)
+            @enable_wss = true
+            @cert       = config[:vnc_proxy_cert]
+            @key        = config[:vnc_proxy_key]
+        else
+            @enable_wss = false
+        end
+        @options = opts
+        @logger = logger
+    end
+
+    def start
+        if is_running?
+            message="VNC server already running"
+            STDERR.puts message
+            @logger.info message
+            return false
+        end
+
+        create_token_dir
+
+        proxy_options = "--target-config=#{@token_folder} "
+
+        if @enable_wss
+            proxy_options << " --cert #{@cert}"
+            proxy_options << " --key #{@key}" if @key && @key.size > 0
+            proxy_options << " --ssl-only" if @wss == "only"
+        end
+
+        if @proxy_ipv6
+            proxy_options << " -6"
+        end
+
+        cmd ="python #{@proxy_path} #{proxy_options} #{@proxy_port}"
+
+        begin
+            @logger.info { "Starting VNC proxy: #{cmd}" }
+            pid=start_daemon(cmd, VNC_LOG)
+        rescue Exception => e
+            @logger.error e.message
+            return false
+        end
+
+        File.open(@lock_file, "w") do |f|
+            f.write(pid.to_s)
+        end
+
+        sleep 1
+
+        if !is_running?
+            message="Error starting VNC proxy"
+            STDERR.puts message
+            @logger.error message
+            File.delete(@lock_file) if File.exist?(@lock_file)
+
+            return false
+        end
+
+        STDOUT.puts "VNC proxy started"
+
+        true
+    end
+
+    def proxy(vm_resource)
+        # Check configurations and VM attributes
+        #if !is_running?
+        #    return error(400, "VNC Proxy is not running")
+        #end
+
+        if !VNC_STATES.include?(vm_resource['LCM_STATE'])
+            return error(400,"Wrong state (#{vm_resource['LCM_STATE']}) to open a VNC session")
+        end
+
+        if vm_resource['TEMPLATE/GRAPHICS/TYPE'].nil? ||
+           vm_resource['TEMPLATE/GRAPHICS/TYPE'].downcase != "vnc"
+            return error(400,"VM has no VNC configured")
+        end
+
+        # Proxy data
+        host     = vm_resource['HISTORY_RECORDS/HISTORY[last()]/HOSTNAME']
+        vnc_port = vm_resource['TEMPLATE/GRAPHICS/PORT']
+        vnc_pw = vm_resource['TEMPLATE/GRAPHICS/PASSWD']
+
+        # Generate token random_str: host:port
+        random_str = rand(36**20).to_s(36) #random string a-z0-9 length 20
+        token = "#{random_str}: #{host}:#{vnc_port}"
+        token_file = 'one-'+vm_resource['ID']
+
+        # Create token file
+        
+	begin
+            f = File.open(File.join(@token_folder, token_file), 'w')
+            f.write(token)
+            f.close
+        rescue Exception => e
+#            @logger.error e.message
+            return error(500, "Cannot create VNC proxy token")
+        end
+
+        info   = {
+	    :proxy_port => "29876",
+            :password => vnc_pw,
+            :token => random_str,
+            :vm_name => vm_resource['NAME']
+        }
+
+        return [200, info]
+    end
+
+    # Delete proxy token file
+    def delete_token(filename)
+        begin
+            File.delete(File.join(@token_folder, filename))
+        rescue => e
+            @logger.error "Error deleting token file for VM #{vm_id}"
+            @logger.error e.message
+        end
+    end
+
+    def stop(force=false)
+        pid=get_pid
+
+        if pid
+            @logger.info "Killing VNC proxy"
+
+            signal=(force ? 'KILL' : 'TERM')
+            Process.kill(signal ,pid)
+
+            sleep 1
+
+            begin
+                Process.getpgid(pid)
+
+                Process.kill('KILL', pid)
+            rescue
+            end
+
+            if is_running?
+                message="VNC server is still running"
+                STDERR.puts message
+                logger.error message
+                return false
+            end
+
+            delete_token_dir
+        else
+            message="VNC server is not running"
+            @logger.info message
+            STDERR.puts message
+        end
+        true
+    end
+
+    def status
+        if is_running?
+            STDOUT.puts "VNC is running"
+            true
+        else
+            STDOUT.puts "VNC is NOT running"
+            false
+        end
+    end
+
+    private
+
+    def error(code, msg)
+        if @options[:json_errors]
+            return [code,OpenNebula::Error.new(msg).to_json]
+        else
+            return [code,msg]
+        end
+    end
+
+    def create_token_dir
+        delete_token_dir
+        begin
+            Dir.mkdir(@token_folder) if !File.exist?(@token_folder)
+        rescue Exception => e
+            @logger.error "Cannot create token folder"
+            @logger.error e.message
+        end
+    end
+
+    def delete_token_dir
+        if File.exist?(@token_folder)
+            begin
+                Dir.glob("#{@token_folder}/*").each do |file|
+                    File.delete(file)
+                end
+            rescue => e
+                @logger.error "Error deleting token folder"
+                @logger.error e.message
+            end
+        end
+    end
+
+    def is_running?
+        if File.exist?(@lock_file)
+            pid=File.read(@lock_file).strip
+
+            if system("ps #{pid} 1> /dev/null")
+                return pid.to_i
+            end
+
+            @logger.info "Deleting stale lock file"
+            File.delete(@lock_file)
+        end
+
+        false
+    end
+    alias_method :get_pid, :is_running?
+
+if RUBY_VERSION<'1.9'
+    def spawn(*args)
+        fork {
+            command=args[0..-2]
+
+            # Close stdin and point out and err to log file
+            $stdin.close
+            $stdout.reopen(VNC_LOG, "a")
+            $stderr.reopen(VNC_LOG, "a")
+
+            # Detach process from the parent
+            Process.setsid
+
+            exec(*command)
+        }
+    end
+end
+
+    def start_daemon(cmd, log)
+        options={
+            :pgroup => true,
+            :in => :close,
+            [:out, :err] => [log, "a"],
+            :close_others => true }
+
+        params=cmd.split(" ")+[options]
+        pid=spawn( *params )
+
+        Process.detach(pid)
+
+        pid
+    end
+end
+
diff --git a/lib/fog/opennebula/requests/compute/get_vnc_console.rb b/lib/fog/opennebula/requests/compute/get_vnc_console.rb
new file mode 100644
index 0000000..c2f03d1
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/get_vnc_console.rb
@@ -0,0 +1,47 @@
+require File.expand_path('../OpenNebulaVNC', __FILE__)
+module Fog
+  module Compute
+    class OpenNebula
+      class Mock
+        # Get a vnc console for an instance.
+        #
+        # === Parameters
+        # * server_id <~String> - The ID of the server.
+        # * console_type <~String> - Type of vnc console to get ('novnc' or 'xvpvnc').
+        # === Returns
+        # * response <~Excon::Response>:
+        #   * body <~Hash>:
+        #     * url <~String>
+        #     * type <~String>
+        def get_vnc_console(server_id, console_type)
+          body = {
+              :type => "novnc",
+              :proxy_port => "29876",
+              :password => "null",
+              :token => "3n32dtwpsdj5jkug3b4w",
+              :proxy_host => "example.com"
+          }
+        end # def get_vnc_console
+      end # class Real
+
+      class Real 
+        def get_vnc_console(server_id, console_type, onevm_object)
+          logger = Fog::Logger.new
+          $conf = {"vnc_proxy_port" => "29876", "vnc_proxy_ipv6" => "", "vnc_proxy_support_wss" => "", "vnc_proxy_cert" => "", "vnc_proxy_key" => ""}
+          $vnc = OpenNebulaVNC.new($conf, logger)
+          ret = startvnc(onevm_object,$vnc)
+
+          response = Excon::Response.new
+          response.status = ret[0]
+          response.body = ret[1]
+          response
+        end # def get_vnc_console
+
+        def startvnc(onevm_object, vnc)
+            return vnc.proxy(onevm_object)
+        end #def startvnc
+      end # class Mock
+    end # class OpenNebula
+  end # module Compute
+end # module Fog
+
diff --git a/lib/fog/opennebula/requests/compute/list_groups.rb b/lib/fog/opennebula/requests/compute/list_groups.rb
new file mode 100644
index 0000000..2670ee2
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/list_groups.rb
@@ -0,0 +1,79 @@
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+        def list_groups(filter = {})
+
+          groups=[]
+          grouppool = ::OpenNebula::GroupPool.new(client)
+          grouppool.info
+
+          # {
+          #   "GROUP"=>{
+          #     "ID"=>"0", 
+          #      "NAME"=>"oneadmin", 
+          #      "USERS"=>{"ID"=>["0", "1"]}, 
+          #      "DATASTORE_QUOTA"=>{}, 
+          #      "NETWORK_QUOTA"=>{}, 
+          #      "VM_QUOTA"=>{}, 
+          #      "IMAGE_QUOTA"=>{}
+          #    }
+          #}
+
+          grouppool.each do |group| 
+            filter_missmatch = false
+
+            unless (filter.empty?)
+              filter.each do |k,v|
+                if group["#{k.to_s.upcase}"] && group["#{k.to_s.upcase}"] != v.to_s
+                  filter_missmatch = true
+                  break
+                end
+              end 
+              next if filter_missmatch
+            end 
+            groups << {:id => group["ID"], :name => group["NAME"]}
+          end
+          groups
+        end
+      end
+
+
+      class Mock
+        def list_groups(filter={})
+          groups = []
+          net1 = mock_group "1", 'net1'
+          net2 = mock_group "2", 'fogtest'
+
+          grouppool = [net1, net2]
+          grouppool.each do |group| 
+            filter_missmatch = false
+
+            unless (filter.empty?)
+              filter.each do |k,v|
+                if group["#{k.to_s.upcase}"] && group["#{k.to_s.upcase}"] != v.to_s
+                  filter_missmatch = true
+                  break
+                end
+              end 
+              next if filter_missmatch
+            end 
+            groups << {:id => group["ID"], :name => group["NAME"]}
+          end
+          groups
+        end
+
+        def mock_group id, name
+          {
+            "ID"    	 => id,
+            "NAME"  	 => name,
+            "UID"   	 => "5",
+            "GID"   	 => "5",
+            "DESCRIPTION" => "netDescription",
+            "VLAN"	 => "5"
+          }
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/requests/compute/list_networks.rb b/lib/fog/opennebula/requests/compute/list_networks.rb
new file mode 100644
index 0000000..95b4265
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/list_networks.rb
@@ -0,0 +1,63 @@
+#1.9.3-p545 :017 > netpool.entries.first.to_hash
+# => {"VNET"=>{"ID"=>"4", "UID"=>"0", "GID"=>"0", "UNAME"=>"oneadmin", "GNAME"=>"oneadmin", "NAME"=>"vlan116", "PERMISSIONS"=>{"OWNER_U"=>"1", "OWNER_M"=>"1", "OWNER_A"=>"0", "GROUP_U"=>"0", "GROUP_M"=>"0", "GROUP_A"=>"0", "OTHER_U"=>"0", "OTHER_M"=>"0", "OTHER_A"=>"0"}, "CLUSTER_ID"=>"-1", "CLUSTER"=>{}, "TYPE"=>"0", "BRIDGE"=>"br116", "VLAN"=>"0", "PHYDEV"=>{}, "VLAN_ID"=>{}, "GLOBAL_PREFIX"=>{}, "SITE_PREFIX"=>{}, "RANGE"=>{"IP_START"=>"192.168.0.1", "IP_END"=>"192.168.0.254"}, "TOTAL [...]
+#
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+        def list_networks(filter = { })
+
+          networks=[]
+            netpool = ::OpenNebula::VirtualNetworkPool.new(client)
+            if filter[:id].nil?
+              netpool.info!(-2,-1,-1)
+            elsif filter[:id]
+              filter[:id] = filter[:id].to_i if filter[:id].is_a?(String)
+              netpool.info!(-2, filter[:id], filter[:id])
+            end # if filter[:id].nil?
+ 
+          netpool.each do |network| 
+	    networks << network_to_attributes(network.to_hash)
+	  end
+          networks
+        end
+
+        def network_to_attributes(net)
+          return if net.nil?
+	  #{"VNET"=>{"ID"=>"155", "UID"=>"0", "GID"=>"1", "UNAME"=>"oneadmin", "GNAME"=>"users", "NAME"=>"vlan99-2", "PERMISSIONS"=>{"OWNER_U"=>"1", "OWNER_M"=>"1", "OWNER_A"=>"0", "GROUP_U"=>"1", "GROUP_M"=>"0", "GROUP_A"=>"0", "OTHER_U"=>"0", "OTHER_M"=>"0", "OTHER_A"=>"0"}, "CLUSTER_ID"=>"-1", "CLUSTER"=>{}, "TYPE"=>"0", "BRIDGE"=>"ovsbr", "VLAN"=>"1", "PHYDEV"=>{}, "VLAN_ID"=>"99", "GLOBAL_PREFIX"=>{}, "SITE_PREFIX"=>{}, "RANGE"=>{"IP_START"=>"10.10.99.127", "IP_END"=>"10.10.99.249"}, "TOTA [...]
+          h = {
+            :id    	 => net["VNET"]["ID"],
+            :name  	 => net["VNET"]["NAME"],
+	    :uid   	 => net["VNET"]["UID"],
+	    :gid   	 => net["VNET"]["GID"],
+          }
+
+	  h[:description] = net["VNET"]["TEMPLATE"]["DESCRIPTION"] unless net["VNET"]["TEMPLATE"]["DESCRIPTION"].nil?
+	  h[:vlan] 	  = net["VNET"]["VLAN_ID"] unless (net["VNET"]["VLAN_ID"].nil? || net["VNET"]["VLAN_ID"].empty?)
+
+	  return h
+        end
+
+      end
+
+      class Mock
+        def list_networks(filters={})
+          net1 = mock_network 'net1'
+          net2 = mock_network 'net2'
+          [net1, net2]
+        end
+
+        def mock_network name
+          {
+            :id    	 => "5",
+            :name  	 => name,
+	    :uid   	 => "5",
+	    :gid   	 => "5",
+	    :description => "netDescription",
+	    :vlan	 => "5"
+          }
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/requests/compute/list_vms.rb b/lib/fog/opennebula/requests/compute/list_vms.rb
new file mode 100644
index 0000000..15a872b
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/list_vms.rb
@@ -0,0 +1,87 @@
+#{"VM"=>{"ID"=>"30", "UID"=>"0", "GID"=>"0", "UNAME"=>"oneadmin", "GNAME"=>"oneadmin", "NAME"=>"m1.small-30", "PERMISSIONS"=>{"OWNER_U"=>"1", "OWNER_M"=>"1", "OWNER_A"=>"0", "GROUP_U"=>"0", "GROUP_M"=>"0", "GROUP_A"=>"0", "OTHER_U"=>"0", "OTHER_M"=>"0", "OTHER_A"=>"0"}, "LAST_POLL"=>"0", "STATE"=>"1", "LCM_STATE"=>"0", "RESCHED"=>"0", "STIME"=>"1395937874", "ETIME"=>"0", "DEPLOY_ID"=>{}, "MEMORY"=>"0", "CPU"=>"0", "NET_TX"=>"0", "NET_RX"=>"0", "TEMPLATE"=>{"AUTOMATIC_REQUIREMENTS"=>"!(PU [...]
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+        def list_vms(filter={})
+          vms=[]
+          vmpool = ::OpenNebula::VirtualMachinePool.new(client)
+          if filter[:id].nil?
+            vmpool.info!(-2,-1,-1,-1)
+          elsif filter[:id]
+            filter[:id] = filter[:id].to_i if filter[:id].is_a?(String)
+            vmpool.info!(-2, filter[:id], filter[:id], -1)
+          end # filter[:id].nil?
+
+          vmpool.each do |vm|
+            one = vm.to_hash
+            data = {}
+            data["onevm_object"] = vm
+            data["status"] =  vm.state
+            data["state"]  =  vm.lcm_state_str
+            data["id"]     =  vm.id
+            data["gid"]    =  vm.gid
+            data["uuid"]   =  vm.id
+            data["name"]   =  one["VM"]["NAME"] unless one["VM"]["NAME"].nil?
+            data["user"]   =  one["VM"]["UNAME"] unless one["VM"]["UNAME"].nil?
+            data["group"]  =  one["VM"]["GNAME"] unless one["VM"]["GNAME"].nil?
+
+            unless ( one["VM"]["TEMPLATE"].nil? ) then
+              data["cpu"]    =  one["VM"]["TEMPLATE"]["VCPU"] unless one["VM"]["TEMPLATE"]["VCPU"].nil?
+              data["memory"] =  one["VM"]["TEMPLATE"]["MEMORY"] unless one["VM"]["TEMPLATE"]["MEMORY"].nil?
+              unless (one["VM"]["TEMPLATE"]["NIC"].nil?) then
+                if one["VM"]["TEMPLATE"]["NIC"].is_a?(Array)
+                  data["ip"]=one["VM"]["TEMPLATE"]["NIC"][0]["IP"]
+                  data["mac"]=one["VM"]["TEMPLATE"]["NIC"][0]["MAC"]
+                else
+                  data["ip"]=one["VM"]["TEMPLATE"]["NIC"]["IP"] unless one["VM"]["TEMPLATE"]["NIC"]["IP"].nil?
+                  data["mac"]=one["VM"]["TEMPLATE"]["NIC"]["MAC"] unless one["VM"]["TEMPLATE"]["NIC"]["MAC"].nil?
+                end
+              end # unless (one["VM"]["TEMPLATE"]["NIC"].nil?) then
+            end # unless ( one["VM"]["TEMPLATE"].nil? ) then 
+
+            vms << data
+          end # vmpool.each
+          vms
+        end # def list_vms
+      end # class Real
+
+      module Shared
+        private
+      end
+
+      class Mock
+        def list_vms(filter = {})
+          if filter[:id].nil?
+            vm1 = mock_vm 'fog-vm1'
+            vm2 = mock_vm 'fog-vm2'
+            vm3 = mock_vm 'fog-vm3'
+            return [vm1, vm2, vm3]
+          elsif filter[:mock_return]
+            mock_vm 'fog-vm1', filter[:id]
+          else 
+            []
+          end
+        end
+        def mock_vm(name, id=4)
+          data = {}
+          data["onevm_object"] = ""
+          data["status"] = "Running"
+          data["state"]  = "3"
+          data["id"]     = id
+          data["uuid"]   = "5"
+          data["gid"]    = "5"
+          data["name"]   = "MockVM-#{name}"
+          data["user"]   = "MockUser" 
+          data["group"]  = "MockGroup"
+          data["cpu"]    = "2"
+          data["memory"] = "1024"
+          data["mac"]	 = "00:01:02:03:04:05"
+          data["ip"]	 = "1.1.1.1"
+          data
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/requests/compute/template_pool.rb b/lib/fog/opennebula/requests/compute/template_pool.rb
new file mode 100644
index 0000000..06fa9b6
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/template_pool.rb
@@ -0,0 +1,93 @@
+# t.template_str
+# CPU="0.2"
+# VCPU="2"
+# MEMORY="2048"
+# SCHED_REQUIREMENTS="NFS=\"true\""
+# SCHED_DS_REQUIREMENTS="NAME=\"local\""
+# DISK=[
+#     DEV_PREFIX="vd",
+#     DRIVER="qcow2",
+#     IMAGE="base",
+#     IMAGE_ID="355",
+#     IMAGE_UNAME="oneadmin",
+#     TARGET="vda" ]
+# GRAPHICS=[
+#     LISTEN="0.0.0.0",
+#      TYPE="VNC" ]
+# NIC=[
+#     MODEL="virtio",
+#     NETWORK="vlan2-2",
+#     NETWORK_UNAME="oneadmin" ]
+# OS=[
+#     ARCH="x86_64",
+#     BOOT="network,hd" ]
+
+
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+        def template_pool(filter = { })
+
+          templates = ::OpenNebula::TemplatePool.new(client)
+          if filter[:id].nil?
+            templates.info!(-2,-1,-1)
+          elsif filter[:id]
+            filter[:id] = filter[:id].to_i if filter[:id].is_a?(String)
+            templates.info!(-2, filter[:id], filter[:id])
+          end # if filter[:id].nil?
+
+          templates = templates.map do |t| 
+            # filtering by name
+            # done here, because OpenNebula:TemplatePool does not support something like .delete_if
+            if filter[:name] && filter[:name].is_a?(String) && !filter[:name].empty?
+                next if t.to_hash["VMTEMPLATE"]["NAME"] != filter[:name]
+            end
+
+            h = Hash[
+              :id => t.to_hash["VMTEMPLATE"]["ID"], 
+              :name => t.to_hash["VMTEMPLATE"]["NAME"], 
+              :content => t.template_str
+            ]
+            h.merge! t.to_hash["VMTEMPLATE"]["TEMPLATE"]
+
+            # h["NIC"] has to be an array of nic objects
+            nics = h["NIC"] unless h["NIC"].nil?
+            h["NIC"] = [] # reset nics to a array
+            if nics.is_a? Array
+              nics.each do |n|
+                n["model"] = "virtio" if n["model"].nil?
+                n["uuid"] = "0" if n["uuid"].nil? # is it better is to remove this NIC?
+                h["NIC"] << interfaces.new({ :vnet => networks.get(n["uuid"]), :model => n["model"]})
+              end
+            elsif nics.is_a? Hash
+              nics["model"] = "virtio" if nics["model"].nil?
+              nics["uuid"] = "0" if nics["uuid"].nil? # is it better is to remove this NIC?
+              h["NIC"] << interfaces.new({ :vnet => networks.get(nics["uuid"]), :model => nics["model"]})
+            else
+              # should i break?
+            end
+
+          
+            # every key should be lowercase
+            ret_hash = {}
+            h.each_pair do |k,v| 
+              ret_hash.merge!({k.downcase => v}) 
+            end
+            ret_hash
+          end
+          
+          templates.delete nil
+          raise Fog::Compute::OpenNebula::NotFound, "Flavor/Template not found" if templates.empty?
+          templates
+        end #def template_pool
+      end #class Real
+
+      class Mock
+        def template_pool(filter = { })
+          [ {}, {} ]
+        end
+      end #class Mock
+    end #class OpenNebula
+  end #module Compute
+end #module Fog
diff --git a/lib/fog/opennebula/requests/compute/vm_allocate.rb b/lib/fog/opennebula/requests/compute/vm_allocate.rb
new file mode 100644
index 0000000..16ae75c
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/vm_allocate.rb
@@ -0,0 +1,90 @@
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+        def vm_allocate(attr={ })
+
+          if(attr[:flavor].nil?)
+            raise(ArgumentError.new("Attribute flavor is nil! #{attr.inspect}"))
+          end
+          if(attr[:name].nil? || attr[:name].empty?)
+            raise(ArgumentError.new("Attribute name is nil or empty! #{attr.inspect}"))
+          end
+
+          xml = ::OpenNebula::VirtualMachine.build_xml
+          vm  = ::OpenNebula::VirtualMachine.new(xml, client)
+          rc = vm.allocate(attr[:flavor].to_s + "\nNAME=" + attr[:name])
+
+          # irb(main):050:0> vm.allocate(s.flavor.to_s + "\nNAME=altest5")
+          # => #<OpenNebula::Error:0x00000002a50760 @message="[VirtualMachineAllocate] User [42] : Not authorized to perform CREATE VM.", @errno=512>
+          # irb(main):051:0> a = vm.allocate(s.flavor.to_s + "\nNAME=altest5")
+          # => #<OpenNebula::Error:0x00000002ac0998 @message="[VirtualMachineAllocate] User [42] : Not authorized to perform CREATE VM.", @errno=512>
+          # irb(main):052:0> a.class
+
+          if(rc.is_a? ::OpenNebula::Error) 
+            raise(rc)
+          end
+
+
+          # -1 - do not change the owner
+          vm.chown(-1,attr[:gid].to_i) unless attr[:gid].nil?
+
+          # TODO
+          # check if vm is created vmid.class == One error class
+          vm.info!
+
+          one = vm.to_hash
+          data = {}
+          data["onevm_object"] = vm
+          data["status"] =  vm.state
+          data["state"]  =  vm.lcm_state_str
+          data["id"]     =  vm.id
+          data["uuid"]   =  vm.id
+          data["gid"]    =  vm.gid
+          data["name"]   =  one["VM"]["NAME"] unless one["VM"]["NAME"].nil?
+          data["user"]   =  one["VM"]["UNAME"] unless one["VM"]["UNAME"].nil?
+          data["group"]  =  one["VM"]["GNAME"] unless one["VM"]["GNAME"].nil?
+
+          unless ( one["VM"]["TEMPLATE"].nil? ) then
+            temp = one["VM"]["TEMPLATE"]
+            data["cpu"]    =  temp["VCPU"] 	unless temp["VCPU"].nil?
+            data["memory"] =  temp["MEMORY"] 	unless temp["MEMORY"].nil?
+            unless (temp["NIC"].nil?) then
+              if one["VM"]["TEMPLATE"]["NIC"].is_a?(Array)
+                data["mac"]	=	temp["NIC"][0]["MAC"] 	unless temp["NIC"][0]["MAC"].nil?
+                data["ip"]	=	temp["NIC"][0]["IP"] 	unless temp["NIC"][0]["IP"].nil?
+              else
+                data["mac"]	=	temp["NIC"]["MAC"] 	unless temp["NIC"]["MAC"].nil?
+                data["ip"]	=	temp["NIC"]["IP"] 	unless temp["NIC"]["IP"].nil?
+              end
+            end
+          end
+
+          data
+        rescue => err
+          raise(err)
+        end
+      end
+
+      class Mock
+        def vm_allocate(attr={ })
+          data = {}
+          data["onevm_object"] = ""
+          data["status"] = "Running"
+          data["state"]  = "3"
+          data["id"]     = 4
+          data["uuid"]   = "5"
+          data["gid"]    = "5"
+          data["name"]   = "MockVM"
+          data["user"]   = "MockUser" 
+          data["group"]  = "MockGroup"
+          data["cpu"]    = "2"
+          data["memory"] = "1024"
+          data["mac"]	 = "00:01:02:03:04:05"
+          data["ip"]	 = "1.1.1.1"
+          data
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/requests/compute/vm_destroy.rb b/lib/fog/opennebula/requests/compute/vm_destroy.rb
new file mode 100644
index 0000000..0bfe061
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/vm_destroy.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+        def vm_destroy(id)
+          vmpool = ::OpenNebula::VirtualMachinePool.new(client)
+	  vmpool.info!(-2,id,id,-1)
+          
+	  vmpool.each do |vm|
+            # true => delete and recreate vm
+	    vm.delete(false)
+          end
+        end
+      end
+      class Mock
+        def vm_destroy(id)
+          true
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/requests/compute/vm_resume.rb b/lib/fog/opennebula/requests/compute/vm_resume.rb
new file mode 100644
index 0000000..1ebf311
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/vm_resume.rb
@@ -0,0 +1,37 @@
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+
+        def vm_resume(id)
+
+          vmpool = ::OpenNebula::VirtualMachinePool.new(client)
+	  vmpool.info!(-2,id,id,-1)
+	  puts "#{vmpool.entries.class} #{vmpool.entries.methods}"
+	  puts "#{vmpool.entries.inspect} #{vmpool.entries.methods}"
+          
+	  vmpool.each do |vm|
+	    vm.resume
+          end
+          ##if(attr[:id].nil?) 
+	  ##  raise(ArgumentError.new("Attribute :id is nil or empty! #{attr.inspect}"))
+	  ##end
+
+          #vmpool = ::OpenNebula::VirtualMachinePool.new(client)
+	  #vmpool.info!
+
+	  #vmpool.each do |vm|
+	  #        if vm.id == id then
+	  #      	  vm.resume
+	  #      	  return true
+	  #        end
+	  #end
+	  #false
+        end
+
+        class Mock
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/opennebula/requests/compute/vm_stop.rb b/lib/fog/opennebula/requests/compute/vm_stop.rb
new file mode 100644
index 0000000..b5d8467
--- /dev/null
+++ b/lib/fog/opennebula/requests/compute/vm_stop.rb
@@ -0,0 +1,22 @@
+module Fog
+  module Compute
+    class OpenNebula
+      class Real
+
+        def vm_stop(id)
+          vmpool = ::OpenNebula::VirtualMachinePool.new(client)
+	  vmpool.info!(-2,id,id,-1)
+	  puts "#{vmpool.entries.class} #{vmpool.entries.methods}"
+	  puts "#{vmpool.entries.inspect} #{vmpool.entries.methods}"
+          
+	  vmpool.each do |vm|
+	    vm.stop
+          end
+        end #def vm_stop
+
+        class Mock
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/openstack/compute.rb b/lib/fog/openstack/compute.rb
index 382cc24..bf6dfc7 100644
--- a/lib/fog/openstack/compute.rb
+++ b/lib/fog/openstack/compute.rb
@@ -3,7 +3,6 @@ require 'fog/openstack/core'
 module Fog
   module Compute
     class OpenStack < Fog::Service
-
       requires :openstack_auth_url
       recognizes :openstack_auth_token, :openstack_management_url,
                  :persistent, :openstack_service_type, :openstack_service_name,
@@ -66,6 +65,8 @@ module Fog
       request :unpause_server
       request :suspend_server
       request :resume_server
+      request :start_server
+      request :stop_server
       request :rescue_server
       request :change_server_password
       request :add_fixed_ip
@@ -170,7 +171,6 @@ module Fog
       request :list_hosts
       request :get_host_details
 
-
       class Mock
         attr_reader :auth_token
         attr_reader :auth_token_expiration
@@ -429,7 +429,6 @@ module Fog
 
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/core.rb b/lib/fog/openstack/core.rb
index 8b47579..b044c2d 100644
--- a/lib/fog/openstack/core.rb
+++ b/lib/fog/openstack/core.rb
@@ -94,7 +94,6 @@ module Fog
       endpoint_type         = (options[:openstack_endpoint_type] || 'publicURL').to_s
       openstack_region      = options[:openstack_region]
 
-
       body = retrieve_tokens_v2(options, connection_options)
       service = get_service(body, service_type, service_name)
 
@@ -153,8 +152,8 @@ module Fog
       tenant = body['access']['token']['tenant']
       user = body['access']['user']
 
-      management_url = service['endpoints'].detect{|s| s[endpoint_type]}[endpoint_type]
-      identity_url   = identity_service['endpoints'].detect{|s| s['publicURL']}['publicURL'] if identity_service
+      management_url = service['endpoints'].find{|s| s[endpoint_type]}[endpoint_type]
+      identity_url   = identity_service['endpoints'].find{|s| s['publicURL']}['publicURL'] if identity_service
 
       {
         :user                     => user,
@@ -166,11 +165,10 @@ module Fog
         :current_user_id          => body['access']['user']['id'],
         :unscoped_token           => options[:unscoped_token]
       }
-
     end
 
     def self.get_service(body, service_type=[], service_name=nil)
-      body['access']['serviceCatalog'].detect do |s|
+      body['access']['serviceCatalog'].find do |s|
         if service_name.nil? or service_name.empty?
           service_type.include?(s['type'])
         else
@@ -225,7 +223,7 @@ module Fog
       body = Fog::JSON.decode(response.body)
       version = nil
       unless body['versions'].empty?
-        supported_version = body['versions'].detect do |x|
+        supported_version = body['versions'].find do |x|
           x["id"].match(supported_versions) &&
           (x["status"] == "CURRENT" || x["status"] == "SUPPORTED")
         end
@@ -245,6 +243,5 @@ module Fog
         '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
       end
     end
-
   end
 end
diff --git a/lib/fog/openstack/examples/compute/basics.rb b/lib/fog/openstack/examples/compute/basics.rb
index 7891d13..2aa7400 100644
--- a/lib/fog/openstack/examples/compute/basics.rb
+++ b/lib/fog/openstack/examples/compute/basics.rb
@@ -32,31 +32,9 @@ floating_ips.each do |address|
 end
 vm.destroy
 
-# Power operations helper
-
-# vm.start / vm.stop / vm.pause should work after this
-class Server < Fog::Compute::Server
-  def start
-    if state.downcase == 'paused'
-      service.unpause_server(id) # resumes from frozen VM state
-    else
-      service.resume_server(id)  # resumes from hibernation
-    end
-  end
-
-  def stop
-    service.suspend_server(id) # hibernates the VM at hypervisor-level
-  end
-
-  def pause
-    service.pause_server(id)   # stores VM state in RAM
-  end
-end
-
 # Images available at tenant
 image_names = compute_client.images.map { |image| image['name'] }
 
-
 # Floating IP address pools available at tenant
 compute_client.addresses.get_address_pools
 # response.body #=> { 'name' => 'pool1' }, { 'name' => 'pool2' }
@@ -68,7 +46,3 @@ vm.console.body # returns VNC url
 #                "url"  => "http://vmvncserver:6080/vnc_auto.html?token=231",
 #                "type" => "novnc"
 #              }
-
-
-
-
diff --git a/lib/fog/openstack/examples/identity/basics.rb b/lib/fog/openstack/examples/identity/basics.rb
index a0579e7..20d0659 100644
--- a/lib/fog/openstack/examples/identity/basics.rb
+++ b/lib/fog/openstack/examples/identity/basics.rb
@@ -57,7 +57,6 @@ user = keystone.users.create :name      => 'rubiojr at example.net',
                              :password  => 'rubiojr at example.net',
                              :email     => 'rubiojr at example.net'
 
-
 # Find the recently created tenant
 tenant = keystone.tenants.find { |t| t.name == 'rubiojr at example.net' }
 # Destroy the tenant
diff --git a/lib/fog/openstack/examples/network/network_subnets_routers.rb b/lib/fog/openstack/examples/network/network_subnets_routers.rb
index d9ba026..746db75 100644
--- a/lib/fog/openstack/examples/network/network_subnets_routers.rb
+++ b/lib/fog/openstack/examples/network/network_subnets_routers.rb
@@ -57,7 +57,6 @@ public_subnet = network.subnets.create :name => 'floating_ips_net',
                                        :cidr        => '1.2.3.0/24',
                                        :enable_dhcp => false
 
-
 # Create tenant networks
 create_tenant_network 'admin at example.net', public_net
 create_tenant_network 'demo at example.net', public_net
diff --git a/lib/fog/openstack/identity.rb b/lib/fog/openstack/identity.rb
index 758caf9..09b769c 100644
--- a/lib/fog/openstack/identity.rb
+++ b/lib/fog/openstack/identity.rb
@@ -3,7 +3,6 @@ require 'fog/openstack/core'
 module Fog
   module Identity
     class OpenStack < Fog::Service
-
       requires :openstack_auth_url
       recognizes :openstack_auth_token, :openstack_management_url, :persistent,
                  :openstack_service_type, :openstack_service_name, :openstack_tenant,
@@ -287,7 +286,6 @@ module Fog
           @scheme = uri.scheme
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/image.rb b/lib/fog/openstack/image.rb
index 3bf8e86..98f7ddb 100644
--- a/lib/fog/openstack/image.rb
+++ b/lib/fog/openstack/image.rb
@@ -212,7 +212,6 @@ module Fog
           @scheme = uri.scheme
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/metering.rb b/lib/fog/openstack/metering.rb
index bb97a4b..46d9f22 100644
--- a/lib/fog/openstack/metering.rb
+++ b/lib/fog/openstack/metering.rb
@@ -3,7 +3,6 @@ require 'fog/openstack/core'
 module Fog
   module Metering
     class OpenStack < Fog::Service
-
       requires :openstack_auth_url
       recognizes :openstack_auth_token, :openstack_management_url, :persistent,
                  :openstack_service_type, :openstack_service_name, :openstack_tenant,
@@ -16,7 +15,6 @@ module Fog
       model       :resource
       collection  :resources
 
-
       request_path 'fog/openstack/requests/metering'
 
       # Metering
@@ -26,7 +24,6 @@ module Fog
       request :list_meters
       request :list_resources
 
-
       class Mock
         def self.data
           @data ||= Hash.new do |hash, key|
@@ -202,9 +199,7 @@ module Fog
           @scheme = uri.scheme
           true
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/openstack/models/compute/address.rb b/lib/fog/openstack/models/compute/address.rb
index c6a47b7..245b108 100644
--- a/lib/fog/openstack/models/compute/address.rb
+++ b/lib/fog/openstack/models/compute/address.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class OpenStack
-
       class Address < Fog::Model
-
         identity  :id
 
         attribute :ip
@@ -63,9 +61,7 @@ module Fog
           end
           self.instance_id = nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/addresses.rb b/lib/fog/openstack/models/compute/addresses.rb
index 90525bb..5f69373 100644
--- a/lib/fog/openstack/models/compute/addresses.rb
+++ b/lib/fog/openstack/models/compute/addresses.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/address'
 module Fog
   module Compute
     class OpenStack
-
       class Addresses < Fog::Collection
-
         model Fog::Compute::OpenStack::Address
 
         def all
@@ -24,10 +22,7 @@ module Fog
         def get_address_pools
           service.list_address_pools.body['floating_ip_pools']
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/openstack/models/compute/flavors.rb b/lib/fog/openstack/models/compute/flavors.rb
index 671cfb0..1fab112 100644
--- a/lib/fog/openstack/models/compute/flavors.rb
+++ b/lib/fog/openstack/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/flavor'
 module Fog
   module Compute
     class OpenStack
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::OpenStack::Flavor
 
         def all(options = {})
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/host.rb b/lib/fog/openstack/models/compute/host.rb
index 3675f72..fb8466f 100644
--- a/lib/fog/openstack/models/compute/host.rb
+++ b/lib/fog/openstack/models/compute/host.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/metadata'
 module Fog
   module Compute
     class OpenStack
-
       class Host < Fog::Model
-
         attribute :host_name
         attribute :service_name
         attribute :details
@@ -24,10 +22,7 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/openstack/models/compute/hosts.rb b/lib/fog/openstack/models/compute/hosts.rb
index ee1409c..e13363d 100644
--- a/lib/fog/openstack/models/compute/hosts.rb
+++ b/lib/fog/openstack/models/compute/hosts.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/host'
 module Fog
   module Compute
     class OpenStack
-
       class Hosts < Fog::Collection
-
         model Fog::Compute::OpenStack::Host
 
         def all
@@ -24,9 +22,7 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/image.rb b/lib/fog/openstack/models/compute/image.rb
index 0a9ff3a..e3f880b 100644
--- a/lib/fog/openstack/models/compute/image.rb
+++ b/lib/fog/openstack/models/compute/image.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/metadata'
 module Fog
   module Compute
     class OpenStack
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -50,9 +48,7 @@ module Fog
         def ready?
           status == 'ACTIVE'
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/images.rb b/lib/fog/openstack/models/compute/images.rb
index 5425c8f..1ffc3ab 100644
--- a/lib/fog/openstack/models/compute/images.rb
+++ b/lib/fog/openstack/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/image'
 module Fog
   module Compute
     class OpenStack
-
       class Images < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::OpenStack::Image
@@ -34,9 +32,7 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/key_pair.rb b/lib/fog/openstack/models/compute/key_pair.rb
index 466d545..9c07785 100644
--- a/lib/fog/openstack/models/compute/key_pair.rb
+++ b/lib/fog/openstack/models/compute/key_pair.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class OpenStack
-
       class KeyPair < Fog::Model
-
         identity  :name
 
         attribute :fingerprint
@@ -37,7 +35,6 @@ module Fog
         end
 
         def write(path="#{ENV['HOME']}/.ssh/fog_#{Fog.credential.to_s}_#{name}.pem")
-
           if writable?
             split_private_key = private_key.split(/\n/)
             File.open(path, "w") do |f|
@@ -51,9 +48,8 @@ module Fog
         end
 
         def writable?
-          !!(private_key && ENV.has_key?('HOME'))
+          !!(private_key && ENV.key?('HOME'))
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/compute/key_pairs.rb b/lib/fog/openstack/models/compute/key_pairs.rb
index be92e7b..bb74712 100644
--- a/lib/fog/openstack/models/compute/key_pairs.rb
+++ b/lib/fog/openstack/models/compute/key_pairs.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/key_pair'
 module Fog
   module Compute
     class OpenStack
-
       class KeyPairs < Fog::Collection
-
         model Fog::Compute::OpenStack::KeyPair
 
         def all
@@ -24,7 +22,6 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/compute/metadata.rb b/lib/fog/openstack/models/compute/metadata.rb
index 8333079..aa66759 100644
--- a/lib/fog/openstack/models/compute/metadata.rb
+++ b/lib/fog/openstack/models/compute/metadata.rb
@@ -7,9 +7,7 @@ require 'fog/openstack/models/compute/server'
 module Fog
   module Compute
     class OpenStack
-
       class Metadata < Fog::Collection
-
         model Fog::Compute::OpenStack::Metadatum
 
         include Fog::Compute::OpenStack::MetaParent
@@ -60,9 +58,7 @@ module Fog
           end
           data
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/metadatum.rb b/lib/fog/openstack/models/compute/metadatum.rb
index 8a4e625..a338d6a 100644
--- a/lib/fog/openstack/models/compute/metadatum.rb
+++ b/lib/fog/openstack/models/compute/metadatum.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class OpenStack
       class Metadatum < Fog::Model
-
         include Fog::Compute::OpenStack::MetaParent
 
         identity :key
@@ -22,7 +21,6 @@ module Fog
           service.update_meta(collection_name, @parent.id, key, value)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/compute/security_group.rb b/lib/fog/openstack/models/compute/security_group.rb
index 3b43692..eb7542c 100644
--- a/lib/fog/openstack/models/compute/security_group.rb
+++ b/lib/fog/openstack/models/compute/security_group.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class OpenStack
       class SecurityGroup < Fog::Model
-
         identity  :id
 
         attribute :name
diff --git a/lib/fog/openstack/models/compute/security_group_rules.rb b/lib/fog/openstack/models/compute/security_group_rules.rb
index a1fedf5..b5f7156 100644
--- a/lib/fog/openstack/models/compute/security_group_rules.rb
+++ b/lib/fog/openstack/models/compute/security_group_rules.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class OpenStack
       class SecurityGroupRules < Fog::Collection
-
         model Fog::Compute::OpenStack::SecurityGroupRule
 
         def get(security_group_rule_id)
diff --git a/lib/fog/openstack/models/compute/security_groups.rb b/lib/fog/openstack/models/compute/security_groups.rb
index a55ff22..4613f3a 100644
--- a/lib/fog/openstack/models/compute/security_groups.rb
+++ b/lib/fog/openstack/models/compute/security_groups.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/security_group'
 module Fog
   module Compute
     class OpenStack
-
       class SecurityGroups < Fog::Collection
-
         model Fog::Compute::OpenStack::SecurityGroup
 
         def all
@@ -20,7 +18,6 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/compute/server.rb b/lib/fog/openstack/models/compute/server.rb
index 36fb985..ee61999 100644
--- a/lib/fog/openstack/models/compute/server.rb
+++ b/lib/fog/openstack/models/compute/server.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/metadata'
 module Fog
   module Compute
     class OpenStack
-
       class Server < Fog::Compute::Server
-
         identity :id
         attribute :instance_name, :aliases => 'OS-EXT-SRV-ATTR:instance_name'
 
@@ -54,7 +52,6 @@ module Fog
         attr_writer :image_ref, :flavor_ref, :nics, :os_scheduler_hints
         attr_accessor :block_device_mapping
 
-
         def initialize(attributes={})
           # Old 'connection' is renamed as service and should be used instead
           prepare_service_value(attributes)
@@ -124,17 +121,16 @@ module Fog
           # Return them all, leading with manually assigned addresses
           manual = all_addresses.map{|addr| addr["ip"]}
 
-          all_floating.sort{ |a,b| 
+          all_floating.sort{ |a,b|
             a_manual = manual.include? a
             b_manual = manual.include? b
 
-            if a_manual and !b_manual 
+            if a_manual and !b_manual
               -1
-            elsif !a_manual and b_manual 
+            elsif !a_manual and b_manual
               1
             else 0 end
           }
-
         end
 
         alias_method :public_ip_addresses, :floating_ip_addresses
@@ -227,6 +223,34 @@ module Fog
           true
         end
 
+        def stop
+          requires :id
+          service.stop_server(id)
+        end
+
+        def pause
+          requires :id
+          service.pause_server(id)
+        end
+
+        def suspend
+          requires :id
+          service.suspend_server(id)
+        end
+
+        def start
+          requires :id
+
+          case state.downcase
+          when 'paused'
+            service.unpause_server(id)
+          when 'suspended'
+            service.resume_server(id)
+          else
+            service.start_server(id)
+          end
+        end
+
         def create_image(name, metadata={})
           requires :id
           service.create_image(id, name, metadata)
@@ -276,7 +300,7 @@ module Fog
 
         def volumes
           requires :id
-          service.volumes.find_all do |vol|
+          service.volumes.select do |vol|
             vol.attachments.find { |attachment| attachment["serverId"] == id }
           end
         end
@@ -343,10 +367,7 @@ module Fog
         def adminPass=(new_admin_pass)
           @password = new_admin_pass
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/openstack/models/compute/servers.rb b/lib/fog/openstack/models/compute/servers.rb
index e2946bf..7e111e9 100644
--- a/lib/fog/openstack/models/compute/servers.rb
+++ b/lib/fog/openstack/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/server'
 module Fog
   module Compute
     class OpenStack
-
       class Servers < Fog::Collection
-
         attribute :filters
 
         model Fog::Compute::OpenStack::Server
@@ -49,9 +47,7 @@ module Fog
         rescue Fog::Compute::OpenStack::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/snapshot.rb b/lib/fog/openstack/models/compute/snapshot.rb
index 52c3016..270c26f 100644
--- a/lib/fog/openstack/models/compute/snapshot.rb
+++ b/lib/fog/openstack/models/compute/snapshot.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/metadata'
 module Fog
   module Compute
     class OpenStack
-
       class Snapshot < Fog::Model
-
         identity :id
 
         attribute :name,                :aliases => 'displayName'
@@ -16,7 +14,6 @@ module Fog
         attribute :size
         attribute :created_at,          :aliases => 'createdAt'
 
-
         def initialize(attributes)
           # Old 'connection' is renamed as service and should be used instead
           prepare_service_value(attributes)
@@ -35,10 +32,7 @@ module Fog
           service.delete_snapshot(id)
           true
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/openstack/models/compute/snapshots.rb b/lib/fog/openstack/models/compute/snapshots.rb
index 468712e..779bb94 100644
--- a/lib/fog/openstack/models/compute/snapshots.rb
+++ b/lib/fog/openstack/models/compute/snapshots.rb
@@ -4,7 +4,6 @@ require 'fog/openstack/models/compute/snapshot'
 module Fog
   module Compute
     class OpenStack
-
       class Snapshots < Fog::Collection
         model Fog::Compute::OpenStack::Snapshot
 
@@ -20,7 +19,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/compute/tenants.rb b/lib/fog/openstack/models/compute/tenants.rb
index 6299b96..83b4260 100644
--- a/lib/fog/openstack/models/compute/tenants.rb
+++ b/lib/fog/openstack/models/compute/tenants.rb
@@ -15,9 +15,11 @@ module Fog
           service.list_usages(start_date, end_date, details).body['tenant_usages']
         end
 
-        def find_by_id(id)
+        def get(id)
           self.find {|tenant| tenant.id == id}
         end
+        alias_method :find_by_id, :get
+
       end # class Tenants
     end # class OpenStack
   end # module Compute
diff --git a/lib/fog/openstack/models/compute/volume.rb b/lib/fog/openstack/models/compute/volume.rb
index c23f762..dda7507 100644
--- a/lib/fog/openstack/models/compute/volume.rb
+++ b/lib/fog/openstack/models/compute/volume.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/compute/metadata'
 module Fog
   module Compute
     class OpenStack
-
       class Volume < Fog::Model
-
         identity :id
 
         attribute :name,                :aliases => 'displayName'
@@ -19,7 +17,6 @@ module Fog
         attribute :created_at,          :aliases => 'createdAt'
         attribute :attachments
 
-
         def initialize(attributes)
           # Old 'connection' is renamed as service and should be used instead
           prepare_service_value(attributes)
@@ -55,10 +52,7 @@ module Fog
         def ready?
           self.status == "available"
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/openstack/models/compute/volumes.rb b/lib/fog/openstack/models/compute/volumes.rb
index 9a83b1a..4da82d5 100644
--- a/lib/fog/openstack/models/compute/volumes.rb
+++ b/lib/fog/openstack/models/compute/volumes.rb
@@ -4,7 +4,6 @@ require 'fog/openstack/models/compute/volume'
 module Fog
   module Compute
     class OpenStack
-
       class Volumes < Fog::Collection
         model Fog::Compute::OpenStack::Volume
 
@@ -20,7 +19,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/identity/roles.rb b/lib/fog/openstack/models/identity/roles.rb
index 25a44f6..ccba660 100644
--- a/lib/fog/openstack/models/identity/roles.rb
+++ b/lib/fog/openstack/models/identity/roles.rb
@@ -14,7 +14,6 @@ module Fog
         def get(id)
           service.get_role(id)
         end
-
       end
     end # class OpenStack
   end # module Compute
diff --git a/lib/fog/openstack/models/identity/user.rb b/lib/fog/openstack/models/identity/user.rb
index 55407b4..5a6ebaa 100644
--- a/lib/fog/openstack/models/identity/user.rb
+++ b/lib/fog/openstack/models/identity/user.rb
@@ -67,4 +67,3 @@ module Fog
     end # class OpenStack
   end # module Identity
 end # module Fog
-
diff --git a/lib/fog/openstack/models/image/image.rb b/lib/fog/openstack/models/image/image.rb
index a663620..6ce9f25 100644
--- a/lib/fog/openstack/models/image/image.rb
+++ b/lib/fog/openstack/models/image/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Image
     class OpenStack
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -30,7 +28,6 @@ module Fog
         attribute :location
         attribute :copy_from
 
-
         def initialize(attributes)
           # Old 'connection' is renamed as service and should be used instead
           prepare_service_value(attributes)
@@ -84,7 +81,6 @@ module Fog
           requires :id
           service.get_image(self.id).headers
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/meta_parent.rb b/lib/fog/openstack/models/meta_parent.rb
index 12f591e..b90b6e5 100644
--- a/lib/fog/openstack/models/meta_parent.rb
+++ b/lib/fog/openstack/models/meta_parent.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       module MetaParent
-
         def parent
           @parent
         end
@@ -26,7 +25,6 @@ module Fog
           metas.each { |meta| hash.store(meta.key, meta.value) }
           hash
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/metering/resource.rb b/lib/fog/openstack/models/metering/resource.rb
index 9857cfe..9ba6412 100644
--- a/lib/fog/openstack/models/metering/resource.rb
+++ b/lib/fog/openstack/models/metering/resource.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Metering
     class OpenStack
-
       class Resource < Fog::Model
-
         identity :resource_id
 
         attribute :project_id
@@ -16,9 +14,7 @@ module Fog
           prepare_service_value(attributes)
           super
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/openstack/models/metering/resources.rb b/lib/fog/openstack/models/metering/resources.rb
index 6108b7b..5209b3d 100644
--- a/lib/fog/openstack/models/metering/resources.rb
+++ b/lib/fog/openstack/models/metering/resources.rb
@@ -4,7 +4,6 @@ require 'fog/openstack/models/metering/resource'
 module Fog
   module Metering
     class OpenStack
-
       class Resources < Fog::Collection
         model Fog::Metering::OpenStack::Resource
 
@@ -19,7 +18,6 @@ module Fog
           nil
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/network/floating_ip.rb b/lib/fog/openstack/models/network/floating_ip.rb
index 6ddf4ec..5c1d3af 100644
--- a/lib/fog/openstack/models/network/floating_ip.rb
+++ b/lib/fog/openstack/models/network/floating_ip.rb
@@ -12,11 +12,6 @@ module Fog
         attribute :fixed_ip_address
         attribute :floating_ip_address
 
-
-
-
-
-
         def initialize(attributes)
           @connection = attributes[:connection]
           super
@@ -31,7 +26,6 @@ module Fog
           requires :floating_network_id
           merge_attributes(service.create_floating_ip(self.floating_network_id,
 
-
                                                     self.attributes).body['floatingip'])
           self
         end
@@ -45,7 +39,6 @@ module Fog
           service.delete_floating_ip(self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/floating_ips.rb b/lib/fog/openstack/models/network/floating_ips.rb
index 9a827f0..e27e322 100644
--- a/lib/fog/openstack/models/network/floating_ips.rb
+++ b/lib/fog/openstack/models/network/floating_ips.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class FloatingIps < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::FloatingIp
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_health_monitor.rb b/lib/fog/openstack/models/network/lb_health_monitor.rb
index 34dea54..24b40fc 100644
--- a/lib/fog/openstack/models/network/lb_health_monitor.rb
+++ b/lib/fog/openstack/models/network/lb_health_monitor.rb
@@ -61,7 +61,6 @@ module Fog
           service.disassociate_lb_health_monitor(pool_id, self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_health_monitors.rb b/lib/fog/openstack/models/network/lb_health_monitors.rb
index f18374c..d30faa8 100644
--- a/lib/fog/openstack/models/network/lb_health_monitors.rb
+++ b/lib/fog/openstack/models/network/lb_health_monitors.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class LbHealthMonitors < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::LbHealthMonitor
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_member.rb b/lib/fog/openstack/models/network/lb_member.rb
index 10e1158..d119b04 100644
--- a/lib/fog/openstack/models/network/lb_member.rb
+++ b/lib/fog/openstack/models/network/lb_member.rb
@@ -46,7 +46,6 @@ module Fog
           service.delete_lb_member(self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_members.rb b/lib/fog/openstack/models/network/lb_members.rb
index 15014b6..76e9a42 100644
--- a/lib/fog/openstack/models/network/lb_members.rb
+++ b/lib/fog/openstack/models/network/lb_members.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class LbMembers < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::LbMember
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_pool.rb b/lib/fog/openstack/models/network/lb_pool.rb
index 5c6ee3c..952ac6a 100644
--- a/lib/fog/openstack/models/network/lb_pool.rb
+++ b/lib/fog/openstack/models/network/lb_pool.rb
@@ -71,7 +71,6 @@ module Fog
           service.disassociate_lb_health_monitor(self.id, health_monitor_id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_pools.rb b/lib/fog/openstack/models/network/lb_pools.rb
index ea57ec2..1c5b555 100644
--- a/lib/fog/openstack/models/network/lb_pools.rb
+++ b/lib/fog/openstack/models/network/lb_pools.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class LbPools < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::LbPool
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_vip.rb b/lib/fog/openstack/models/network/lb_vip.rb
index c5ce78a..aac3ce1 100644
--- a/lib/fog/openstack/models/network/lb_vip.rb
+++ b/lib/fog/openstack/models/network/lb_vip.rb
@@ -52,7 +52,6 @@ module Fog
           service.delete_lb_vip(self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/lb_vips.rb b/lib/fog/openstack/models/network/lb_vips.rb
index 72d72a4..984408d 100644
--- a/lib/fog/openstack/models/network/lb_vips.rb
+++ b/lib/fog/openstack/models/network/lb_vips.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class LbVips < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::LbVip
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/networks.rb b/lib/fog/openstack/models/network/networks.rb
index f6d0bc7..a3045aa 100644
--- a/lib/fog/openstack/models/network/networks.rb
+++ b/lib/fog/openstack/models/network/networks.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class Networks < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::Network
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/port.rb b/lib/fog/openstack/models/network/port.rb
index 62b95dd..4f87c4c 100644
--- a/lib/fog/openstack/models/network/port.rb
+++ b/lib/fog/openstack/models/network/port.rb
@@ -46,7 +46,6 @@ module Fog
           service.delete_port(self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/ports.rb b/lib/fog/openstack/models/network/ports.rb
index efac0ae..03e1028 100644
--- a/lib/fog/openstack/models/network/ports.rb
+++ b/lib/fog/openstack/models/network/ports.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class Ports < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::Port
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/router.rb b/lib/fog/openstack/models/network/router.rb
index 8ce6c37..855387e 100644
--- a/lib/fog/openstack/models/network/router.rb
+++ b/lib/fog/openstack/models/network/router.rb
@@ -66,7 +66,6 @@ module Fog
           end
           options
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/routers.rb b/lib/fog/openstack/models/network/routers.rb
index 79892a0..0933529 100644
--- a/lib/fog/openstack/models/network/routers.rb
+++ b/lib/fog/openstack/models/network/routers.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class Routers < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::Router
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/security_group_rules.rb b/lib/fog/openstack/models/network/security_group_rules.rb
index 5533636..b9bb557 100644
--- a/lib/fog/openstack/models/network/security_group_rules.rb
+++ b/lib/fog/openstack/models/network/security_group_rules.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class SecurityGroupRules < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::SecurityGroupRule
diff --git a/lib/fog/openstack/models/network/security_groups.rb b/lib/fog/openstack/models/network/security_groups.rb
index 7a96ff5..52fbcbd 100644
--- a/lib/fog/openstack/models/network/security_groups.rb
+++ b/lib/fog/openstack/models/network/security_groups.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class SecurityGroups < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::SecurityGroup
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/subnet.rb b/lib/fog/openstack/models/network/subnet.rb
index 1557383..4dd9aa0 100644
--- a/lib/fog/openstack/models/network/subnet.rb
+++ b/lib/fog/openstack/models/network/subnet.rb
@@ -49,7 +49,6 @@ module Fog
           service.delete_subnet(self.id)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/network/subnets.rb b/lib/fog/openstack/models/network/subnets.rb
index 9000f5d..2d36b07 100644
--- a/lib/fog/openstack/models/network/subnets.rb
+++ b/lib/fog/openstack/models/network/subnets.rb
@@ -5,7 +5,6 @@ module Fog
   module Network
     class OpenStack
       class Subnets < Fog::Collection
-
         attribute :filters
 
         model Fog::Network::OpenStack::Subnet
@@ -27,7 +26,6 @@ module Fog
         rescue Fog::Network::OpenStack::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/models/storage/directories.rb b/lib/fog/openstack/models/storage/directories.rb
index e27cc73..ead2264 100644
--- a/lib/fog/openstack/models/storage/directories.rb
+++ b/lib/fog/openstack/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/storage/directory'
 module Fog
   module Storage
     class OpenStack
-
       class Directories < Fog::Collection
-
         model Fog::Storage::OpenStack::Directory
 
         def all
@@ -32,9 +30,7 @@ module Fog
         rescue Fog::Storage::OpenStack::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/storage/directory.rb b/lib/fog/openstack/models/storage/directory.rb
index b04730a..58164a4 100644
--- a/lib/fog/openstack/models/storage/directory.rb
+++ b/lib/fog/openstack/models/storage/directory.rb
@@ -4,13 +4,13 @@ require 'fog/openstack/models/storage/files'
 module Fog
   module Storage
     class OpenStack
-
       class Directory < Fog::Model
-
         identity  :key, :aliases => 'name'
 
         attribute :bytes, :aliases => 'X-Container-Bytes-Used'
         attribute :count, :aliases => 'X-Container-Object-Count'
+        
+        attr_writer :public
 
         def destroy
           requires :key
@@ -29,22 +29,16 @@ module Fog
           end
         end
 
-        def public=(new_public)
-          @public = new_public
-        end
-
         def public_url
           raise NotImplementedError
         end
 
         def save
           requires :key
-          service.put_container(key)
+          service.put_container(key, :public => @public)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/storage/file.rb b/lib/fog/openstack/models/storage/file.rb
index ec075ae..9abd31e 100644
--- a/lib/fog/openstack/models/storage/file.rb
+++ b/lib/fog/openstack/models/storage/file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class OpenStack
-
       class File < Fog::Model
-
         identity  :key,             :aliases => 'name'
 
         attribute :content_length,  :aliases => ['bytes', 'Content-Length'], :type => :integer
@@ -83,7 +81,6 @@ module Fog
           self.collection.get_url(self.key)
         end
 
-
         def save(options = {})
           requires :body, :directory, :key
           options['Content-Type'] = content_type if content_type
@@ -160,7 +157,6 @@ module Fog
           merge_attributes(data.headers.reject {|key, value| ['Content-Length', 'Content-Type'].include?(key)})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/storage/files.rb b/lib/fog/openstack/models/storage/files.rb
index 1e65459..2e19538 100644
--- a/lib/fog/openstack/models/storage/files.rb
+++ b/lib/fog/openstack/models/storage/files.rb
@@ -4,9 +4,7 @@ require 'fog/openstack/models/storage/file'
 module Fog
   module Storage
     class OpenStack
-
       class Files < Fog::Collection
-
         attribute :directory
         attribute :limit
         attribute :marker
@@ -35,7 +33,7 @@ module Fog
           end
         end
 
-        alias :each_file_this_page :each
+        alias_method :each_file_this_page, :each
         def each
           if !block_given?
             self
@@ -96,9 +94,7 @@ module Fog
           requires :directory
           super({ :directory => directory }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/models/volume/volume.rb b/lib/fog/openstack/models/volume/volume.rb
index bdbd938..592a38b 100644
--- a/lib/fog/openstack/models/volume/volume.rb
+++ b/lib/fog/openstack/models/volume/volume.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Volume
     class OpenStack
-
       class Volume < Fog::Model
-
         identity :id
 
         attribute :display_name,        :aliases => 'displayName'
@@ -20,7 +18,6 @@ module Fog
         attribute :attachments
         attribute :source_volid
 
-
         def initialize(attributes)
           # Old 'connection' is renamed as service and should be used instead
           prepare_service_value(attributes)
@@ -43,11 +40,7 @@ module Fog
         def ready?
           status == 'available'
         end
-
       end
-
     end
   end
-
 end
-
diff --git a/lib/fog/openstack/models/volume/volumes.rb b/lib/fog/openstack/models/volume/volumes.rb
index 53770b6..3dd69ae 100644
--- a/lib/fog/openstack/models/volume/volumes.rb
+++ b/lib/fog/openstack/models/volume/volumes.rb
@@ -4,7 +4,6 @@ require 'fog/openstack/models/volume/volume'
 module Fog
   module Volume
     class OpenStack
-
       class Volumes < Fog::Collection
         model Fog::Volume::OpenStack::Volume
 
@@ -24,8 +23,6 @@ module Fog
         end
         alias_method :find_by_id, :get
       end
-
     end
   end
 end
-
diff --git a/lib/fog/openstack/network.rb b/lib/fog/openstack/network.rb
index 87161fd..9752316 100644
--- a/lib/fog/openstack/network.rb
+++ b/lib/fog/openstack/network.rb
@@ -308,7 +308,7 @@ module Fog
         private
 
         def authenticate
-          if @openstack_must_reauthenticate || @openstack_auth_token.nil?
+          if !@openstack_management_url || @openstack_must_reauthenticate
             options = {
               :openstack_tenant   => @openstack_tenant,
               :openstack_api_key  => @openstack_api_key,
@@ -348,7 +348,6 @@ module Fog
           @scheme = uri.scheme
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/orchestration.rb b/lib/fog/openstack/orchestration.rb
index 2fc1f0a..87c4ef6 100644
--- a/lib/fog/openstack/orchestration.rb
+++ b/lib/fog/openstack/orchestration.rb
@@ -221,7 +221,6 @@ module Fog
 
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/add_security_group.rb b/lib/fog/openstack/requests/compute/add_security_group.rb
index 6d76ec2..97ed91f 100644
--- a/lib/fog/openstack/requests/compute/add_security_group.rb
+++ b/lib/fog/openstack/requests/compute/add_security_group.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def add_security_group(server_id, group_name)
           body = {'addSecurityGroup' => { "name" => group_name } }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def add_security_group(server_id, group_name)
           response = Excon::Response.new
           response.status = 200
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/allocate_address.rb b/lib/fog/openstack/requests/compute/allocate_address.rb
index 5d1cb40..b29447d 100644
--- a/lib/fog/openstack/requests/compute/allocate_address.rb
+++ b/lib/fog/openstack/requests/compute/allocate_address.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def allocate_address(pool = nil)
-
           request(
             :body     => Fog::JSON.encode({'pool' => pool}),
             :expects  => [200, 202],
@@ -12,7 +10,6 @@ module Fog
             :path     => 'os-floating-ips.json'
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/associate_address.rb b/lib/fog/openstack/requests/compute/associate_address.rb
index 7184a91..6e1e366 100644
--- a/lib/fog/openstack/requests/compute/associate_address.rb
+++ b/lib/fog/openstack/requests/compute/associate_address.rb
@@ -2,17 +2,14 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def associate_address(server_id, ip_address)
           body = { "addFloatingIp" => {"address" => ip_address}}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
         def associate_address(server_id, ip_address)
-
           server = data[:servers][server_id]
           server["addresses"]['mocknet'] ||= []
           ip_hash = {"OS-EXT-IPS-MAC:mac_addr"=>"fa:16:3e:85:47:40", "version"=>4, "addr"=>ip_address, "OS-EXT-IPS:type"=>"floating"}
diff --git a/lib/fog/openstack/requests/compute/attach_volume.rb b/lib/fog/openstack/requests/compute/attach_volume.rb
index 3a45aba..97d2743 100644
--- a/lib/fog/openstack/requests/compute/attach_volume.rb
+++ b/lib/fog/openstack/requests/compute/attach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def attach_volume(volume_id, server_id, device)
           data = {
             'volumeAttachment' => {
@@ -17,11 +16,9 @@ module Fog
             :path     => "servers/%s/os-volume_attachments" % [server_id]
           )
         end
-
       end
 
       class Mock
-
         def attach_volume(volume_id, server_id, device)
           response = Excon::Response.new
           response.status = 200
@@ -35,9 +32,7 @@ module Fog
           response.body = { 'volumeAttachment' => data }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/change_server_password.rb b/lib/fog/openstack/requests/compute/change_server_password.rb
index f94e50d..41e30e3 100644
--- a/lib/fog/openstack/requests/compute/change_server_password.rb
+++ b/lib/fog/openstack/requests/compute/change_server_password.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def change_server_password(server_id, admin_password)
           body = { 'changePassword' => { 'adminPass' => admin_password }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def change_server_password(server_id, admin_password)
           response = Excon::Response.new
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/confirm_resize_server.rb b/lib/fog/openstack/requests/compute/confirm_resize_server.rb
index be8853d..f88e3aa 100644
--- a/lib/fog/openstack/requests/compute/confirm_resize_server.rb
+++ b/lib/fog/openstack/requests/compute/confirm_resize_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def confirm_resize_server(server_id)
           body = { 'confirmResize' => nil }
           server_action(server_id, body, 204)
         end
-
       end
 
       class Mock
-
         def confirm_resize_server(server_id)
           response = Excon::Response.new
           response.status = 204
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/create_image.rb b/lib/fog/openstack/requests/compute/create_image.rb
index 79299f3..dfbd7bb 100644
--- a/lib/fog/openstack/requests/compute/create_image.rb
+++ b/lib/fog/openstack/requests/compute/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_image(server_id, name, metadata={})
           body = { 'createImage' => {
             'name' => name,
@@ -12,11 +11,9 @@ module Fog
           image_id = data.headers["Location"].scan(/.*\/(.*)/).flatten[0]
           get_image_details(image_id)
         end
-
       end
 
       class Mock
-
         def create_image(server_id, name, metadata={})
           response = Excon::Response.new
           response.status = 202
@@ -40,9 +37,7 @@ module Fog
           self.data[:images][data['id']] = data
           response.body = { 'image' => data }
           response
-
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/create_key_pair.rb b/lib/fog/openstack/requests/compute/create_key_pair.rb
index e53efb9..9733881 100644
--- a/lib/fog/openstack/requests/compute/create_key_pair.rb
+++ b/lib/fog/openstack/requests/compute/create_key_pair.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_key_pair(key_name, public_key = nil)
-
           data = {
             'keypair' => {
               'name' => key_name
@@ -20,7 +18,6 @@ module Fog
             :path     => 'os-keypairs.json'
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/create_security_group.rb b/lib/fog/openstack/requests/compute/create_security_group.rb
index a744e0e..fd8060c 100644
--- a/lib/fog/openstack/requests/compute/create_security_group.rb
+++ b/lib/fog/openstack/requests/compute/create_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_security_group(name, description)
           data = {
             'security_group' => {
@@ -18,7 +17,6 @@ module Fog
             :path     => 'os-security-groups.json'
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/create_security_group_rule.rb b/lib/fog/openstack/requests/compute/create_security_group_rule.rb
index 37fdfd9..92d745f 100644
--- a/lib/fog/openstack/requests/compute/create_security_group_rule.rb
+++ b/lib/fog/openstack/requests/compute/create_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id=nil)
           data = {
             'security_group_rule' => {
@@ -22,7 +21,6 @@ module Fog
             :path     => 'os-security-group-rules.json'
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/create_server.rb b/lib/fog/openstack/requests/compute/create_server.rb
index f77fa10..5d11b76 100644
--- a/lib/fog/openstack/requests/compute/create_server.rb
+++ b/lib/fog/openstack/requests/compute/create_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_server(name, image_ref, flavor_ref, options = {})
           data = {
             'server' => {
@@ -38,8 +37,8 @@ module Fog
             data['server']['personality'] = []
             for file in options['personality']
               data['server']['personality'] << {
-                'contents'  => Base64.encode64(file['contents']),
-                'path'      => file['path']
+                'contents'  => Base64.encode64(file['contents'] || file[:contents]),
+                'path'      => file['path'] || file[:path]
               }
             end
           end
@@ -83,11 +82,9 @@ module Fog
             :path     => path
           )
         end
-
       end
 
       class Mock
-
         def create_server(name, image_ref, flavor_ref, options = {})
           response = Excon::Response.new
           response.status = 202
diff --git a/lib/fog/openstack/requests/compute/create_volume.rb b/lib/fog/openstack/requests/compute/create_volume.rb
index 82906c0..9161a2c 100644
--- a/lib/fog/openstack/requests/compute/create_volume.rb
+++ b/lib/fog/openstack/requests/compute/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_volume(name, description, size, options={})
           data = {
             'volume' => {
@@ -12,7 +11,7 @@ module Fog
             }
           }
 
-          vanilla_options = ['snapshot_id']
+          vanilla_options = ['snapshot_id', 'availability_zone']
           vanilla_options.select{|o| options[o]}.each do |key|
             data['volume'][key] = options[key]
           end
@@ -23,11 +22,9 @@ module Fog
             :path     => "os-volumes"
           )
         end
-
       end
 
       class Mock
-
         def create_volume(name, description, size, options={})
           response = Excon::Response.new
           response.status = 202
@@ -48,9 +45,7 @@ module Fog
           response.body = { 'volume' => data }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/create_volume_snapshot.rb b/lib/fog/openstack/requests/compute/create_volume_snapshot.rb
index f2e1ced..1285223 100644
--- a/lib/fog/openstack/requests/compute/create_volume_snapshot.rb
+++ b/lib/fog/openstack/requests/compute/create_volume_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def create_volume_snapshot(volume_id, name, description, force=false)
           data = {
             'snapshot' => {
@@ -20,7 +19,6 @@ module Fog
             :path     => "os-snapshots"
           )
         end
-
       end
 
       class Mock
@@ -41,7 +39,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/delete_image.rb b/lib/fog/openstack/requests/compute/delete_image.rb
index bbae7f2..2eeb828 100644
--- a/lib/fog/openstack/requests/compute/delete_image.rb
+++ b/lib/fog/openstack/requests/compute/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_image(image_id)
           request(
             :expects  => 204,
@@ -10,14 +9,12 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_image(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             if image['status'] == 'SAVING'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -31,9 +28,7 @@ module Fog
             response.status = 400
             raise(Excon::Errors.status_error({:expects => 202}, response))
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/delete_key_pair.rb b/lib/fog/openstack/requests/compute/delete_key_pair.rb
index 8b7bd4a..3df0105 100644
--- a/lib/fog/openstack/requests/compute/delete_key_pair.rb
+++ b/lib/fog/openstack/requests/compute/delete_key_pair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_key_pair(key_name)
           request(
             :expects  => 202,
@@ -10,7 +9,6 @@ module Fog
             :path     => "os-keypairs/#{key_name}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/delete_meta.rb b/lib/fog/openstack/requests/compute/delete_meta.rb
index 0697441..0e521b9 100644
--- a/lib/fog/openstack/requests/compute/delete_meta.rb
+++ b/lib/fog/openstack/requests/compute/delete_meta.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class OpenStack
-
       class Real
-
         def delete_meta(collection_name, parent_id, key)
           request(
             :expects  => 204,
@@ -11,21 +9,18 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def delete_meta(collection_name, parent_id, key)
-
           if collection_name == "images" then
-            if not list_images_detail.body['images'].detect {|_| _['id'] == parent_id}
+            if not list_images_detail.body['images'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
 
           if collection_name == "servers" then
-            if not list_servers_detail.body['servers'].detect {|_| _['id'] == parent_id}
+            if not list_servers_detail.body['servers'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
@@ -33,11 +28,8 @@ module Fog
           response = Excon::Response.new
           response.status = 204
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/delete_metadata.rb b/lib/fog/openstack/requests/compute/delete_metadata.rb
index 088943c..f5470f4 100644
--- a/lib/fog/openstack/requests/compute/delete_metadata.rb
+++ b/lib/fog/openstack/requests/compute/delete_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_metadata(collection_name, parent_id, key)
           request(
             :expects  => 204,
@@ -10,19 +9,15 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def delete_metadata(collection_name, parent_id, key)
           response = Excon::Response.new
           response.status = 204
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/delete_security_group.rb b/lib/fog/openstack/requests/compute/delete_security_group.rb
index f1cc1b7..ea643c8 100644
--- a/lib/fog/openstack/requests/compute/delete_security_group.rb
+++ b/lib/fog/openstack/requests/compute/delete_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_security_group(security_group_id)
           request(
             :expects  => 202,
@@ -10,7 +9,6 @@ module Fog
             :path     => "os-security-groups/#{security_group_id}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/delete_security_group_rule.rb b/lib/fog/openstack/requests/compute/delete_security_group_rule.rb
index 024d2bb..1ab88c4 100644
--- a/lib/fog/openstack/requests/compute/delete_security_group_rule.rb
+++ b/lib/fog/openstack/requests/compute/delete_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_security_group_rule(security_group_rule_id)
           request(
             :expects  => 202,
@@ -10,12 +9,11 @@ module Fog
             :path     => "os-security-group-rules/#{security_group_rule_id}"
           )
         end
-
       end
 
       class Mock
         def delete_security_group_rule(security_group_rule_id)
-          security_group = self.data[:security_groups].values.detect{|sg| sg["rules"].detect{ |sgr| sgr["id"].to_s == security_group_rule_id.to_s }}
+          security_group = self.data[:security_groups].values.find{|sg| sg["rules"].find{ |sgr| sgr["id"].to_s == security_group_rule_id.to_s }}
           security_group["rules"].reject! { |sgr| sgr["id"] == security_group_rule_id }
           response = Excon::Response.new
           response.status = 202
diff --git a/lib/fog/openstack/requests/compute/delete_server.rb b/lib/fog/openstack/requests/compute/delete_server.rb
index b642474..e88b071 100644
--- a/lib/fog/openstack/requests/compute/delete_server.rb
+++ b/lib/fog/openstack/requests/compute/delete_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_server(server_id)
           request(
             :expects => 204,
@@ -10,14 +9,12 @@ module Fog
             :path   => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_server(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if server['status'] == 'BUILD'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 204}, response))
@@ -31,7 +28,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/delete_snapshot.rb b/lib/fog/openstack/requests/compute/delete_snapshot.rb
index b7da489..1e017ee 100644
--- a/lib/fog/openstack/requests/compute/delete_snapshot.rb
+++ b/lib/fog/openstack/requests/compute/delete_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_snapshot(snapshot_id)
           request(
             :expects  => 202,
@@ -10,7 +9,6 @@ module Fog
             :path     => "os-snapshots/#{snapshot_id}"
           )
         end
-
       end
 
       class Mock
@@ -20,7 +18,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/delete_volume.rb b/lib/fog/openstack/requests/compute/delete_volume.rb
index ed245d9..03866de 100644
--- a/lib/fog/openstack/requests/compute/delete_volume.rb
+++ b/lib/fog/openstack/requests/compute/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def delete_volume(volume_id)
           request(
             :expects  => 202,
@@ -10,11 +9,9 @@ module Fog
             :path     => "os-volumes/#{volume_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_volume(volume_id)
           response = Excon::Response.new
           if list_volumes.body['volumes'].map { |v| v['id'] }.include? volume_id
@@ -25,9 +22,7 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/detach_volume.rb b/lib/fog/openstack/requests/compute/detach_volume.rb
index 1bcf1eb..37298e6 100644
--- a/lib/fog/openstack/requests/compute/detach_volume.rb
+++ b/lib/fog/openstack/requests/compute/detach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def detach_volume(server_id, attachment_id)
           request(
             :expects  => 202,
@@ -10,11 +9,9 @@ module Fog
             :path     => "servers/%s/os-volume_attachments/%s" % [server_id, attachment_id]
           )
         end
-
       end
 
       class Mock
-
         def detach_volume(server_id, attachment_id)
           response = Excon::Response.new
           if self.data[:volumes][attachment_id] &&
@@ -26,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/disassociate_address.rb b/lib/fog/openstack/requests/compute/disassociate_address.rb
index 8f380a2..6eb7307 100644
--- a/lib/fog/openstack/requests/compute/disassociate_address.rb
+++ b/lib/fog/openstack/requests/compute/disassociate_address.rb
@@ -2,12 +2,10 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def disassociate_address(server_id, ip_address)
           body = { "removeFloatingIp" => {"address" => ip_address}}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/get_address.rb b/lib/fog/openstack/requests/compute/get_address.rb
index 9fb64bf..1e0f757 100644
--- a/lib/fog/openstack/requests/compute/get_address.rb
+++ b/lib/fog/openstack/requests/compute/get_address.rb
@@ -2,16 +2,13 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_address(address_id)
-
           request(
             :expects  => [200],
             :method   => 'GET',
             :path     => "os-floating-ips/#{address_id}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/get_console_output.rb b/lib/fog/openstack/requests/compute/get_console_output.rb
index c6f72da..d59e859 100644
--- a/lib/fog/openstack/requests/compute/get_console_output.rb
+++ b/lib/fog/openstack/requests/compute/get_console_output.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_console_output(server_id, log_length)
           body = {
             'os-getConsoleOutput' => {
@@ -11,17 +10,14 @@ module Fog
           }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def get_console_output(server_id, log_length)
           response = Excon::Response.new
           response.status = 200
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/get_flavor_details.rb b/lib/fog/openstack/requests/compute/get_flavor_details.rb
index aae6984..b3c64b9 100644
--- a/lib/fog/openstack/requests/compute/get_flavor_details.rb
+++ b/lib/fog/openstack/requests/compute/get_flavor_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_flavor_details(flavor_ref)
           request(
             :expects  => [200, 203],
@@ -10,11 +9,9 @@ module Fog
             :path     => "flavors/#{flavor_ref}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_flavor_details(flavor_ref)
           response = Excon::Response.new
           flavor = {
@@ -36,7 +33,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/get_host_details.rb b/lib/fog/openstack/requests/compute/get_host_details.rb
index ba1be13..410d381 100644
--- a/lib/fog/openstack/requests/compute/get_host_details.rb
+++ b/lib/fog/openstack/requests/compute/get_host_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_host_details(host)
           request(
             :expects  => [200, 203],
@@ -10,13 +9,10 @@ module Fog
             :path     => "os-hosts/#{host}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_host_details(host)
-
           response = Excon::Response.new
           response.status = 200
           response.body = { "host" => [
@@ -63,11 +59,7 @@ module Fog
             ]
           }
           response
-
-
         end
-
-
       end # mock
     end # openstack
   end # compute
diff --git a/lib/fog/openstack/requests/compute/get_image_details.rb b/lib/fog/openstack/requests/compute/get_image_details.rb
index 630a070..34b31d6 100644
--- a/lib/fog/openstack/requests/compute/get_image_details.rb
+++ b/lib/fog/openstack/requests/compute/get_image_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_image_details(image_id)
           request(
             :expects  => [200, 203],
@@ -10,14 +9,12 @@ module Fog
             :path     => "images/#{image_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_image_details(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'image' => image }
             response
@@ -25,9 +22,7 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_limits.rb b/lib/fog/openstack/requests/compute/get_limits.rb
index fd19db6..2a3f783 100644
--- a/lib/fog/openstack/requests/compute/get_limits.rb
+++ b/lib/fog/openstack/requests/compute/get_limits.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class OpenStack
-
       # http://docs.openstack.org/api/openstack-compute/2/content/ProgramaticLimits.html
       #
       class Real
@@ -14,7 +13,6 @@ module Fog
         end
       end
 
-
       class Mock
         def get_limits
           rate_limits = [
@@ -76,7 +74,6 @@ module Fog
             'totalFloatingIpsUsed'     => 0
           }
 
-
           Excon::Response.new(
             :status => 200,
             :body => {
@@ -87,7 +84,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_metadata.rb b/lib/fog/openstack/requests/compute/get_metadata.rb
index b85db3a..24a05b6 100644
--- a/lib/fog/openstack/requests/compute/get_metadata.rb
+++ b/lib/fog/openstack/requests/compute/get_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_metadata(collection_name, parent_id, key)
           request(
             :expects  => [200, 203],
@@ -10,20 +9,16 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def get_metadata(collection_name, parent_id, key)
           response = Excon::Response.new
           response.status = 200
           response.body = { 'meta' => {} }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_quota.rb b/lib/fog/openstack/requests/compute/get_quota.rb
index feca55a..058f33a 100644
--- a/lib/fog/openstack/requests/compute/get_quota.rb
+++ b/lib/fog/openstack/requests/compute/get_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_quota(tenant_id)
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "/os-quota-sets/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_quota(tenant_id)
           response = Excon::Response.new
           response.status = 200
@@ -23,9 +20,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_quota_defaults.rb b/lib/fog/openstack/requests/compute/get_quota_defaults.rb
index 25944c1..6148fc2 100644
--- a/lib/fog/openstack/requests/compute/get_quota_defaults.rb
+++ b/lib/fog/openstack/requests/compute/get_quota_defaults.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_quota_defaults(tenant_id)
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "/os-quota-sets/#{tenant_id}/defaults"
           )
         end
-
       end
 
       class Mock
-
         def get_quota_defaults(tenant_id)
           response = Excon::Response.new
           response.status = 200
@@ -23,9 +20,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_security_group.rb b/lib/fog/openstack/requests/compute/get_security_group.rb
index 2b8add6..20b2df6 100644
--- a/lib/fog/openstack/requests/compute/get_security_group.rb
+++ b/lib/fog/openstack/requests/compute/get_security_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_security_group(security_group_id)
           request(
             :expects  => [200],
@@ -10,7 +9,6 @@ module Fog
             :path     => "os-security-groups/#{security_group_id}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/get_security_group_rule.rb b/lib/fog/openstack/requests/compute/get_security_group_rule.rb
index 5b6e6fd..8195e12 100644
--- a/lib/fog/openstack/requests/compute/get_security_group_rule.rb
+++ b/lib/fog/openstack/requests/compute/get_security_group_rule.rb
@@ -14,7 +14,7 @@ module Fog
       class Mock
         def get_security_group_rule(security_group_rule_id)
           security_group_rule = nil
-          self.data[:security_groups].detect{|id, sg| security_group_rule = sg["rules"].detect{ |sgr| sgr["id"].to_s == security_group_rule_id.to_s }}
+          self.data[:security_groups].find{|id, sg| security_group_rule = sg["rules"].find{ |sgr| sgr["id"].to_s == security_group_rule_id.to_s }}
           response = Excon::Response.new
           if security_group_rule
             response.status = 200
diff --git a/lib/fog/openstack/requests/compute/get_server_details.rb b/lib/fog/openstack/requests/compute/get_server_details.rb
index 13bd036..e4539f7 100644
--- a/lib/fog/openstack/requests/compute/get_server_details.rb
+++ b/lib/fog/openstack/requests/compute/get_server_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_server_details(server_id)
           request(
             :expects  => [200, 203],
@@ -10,14 +9,12 @@ module Fog
             :path     => "servers/#{server_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_server_details(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'server' => server }
             response
@@ -25,7 +22,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/get_server_volumes.rb b/lib/fog/openstack/requests/compute/get_server_volumes.rb
index 5a60d1d..6e50a8a 100644
--- a/lib/fog/openstack/requests/compute/get_server_volumes.rb
+++ b/lib/fog/openstack/requests/compute/get_server_volumes.rb
@@ -2,32 +2,26 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_server_volumes(server_id)
-
           request(
             :expects  => 200,
             :method   => 'GET',
             :path     => "/servers/#{server_id}/os-volume_attachments"
           )
         end
-
       end
 
       class Mock
-
         def get_server_volumes(server_id)
           response = Excon::Response.new
           response.status = 200
-          data = self.data[:volumes].values.find_all do |vol|
+          data = self.data[:volumes].values.select do |vol|
             vol['attachments'].find { |attachment| attachment["serverId"] == server_id }
           end
-          response.body = { 'volumeAttachments' => data.collect! { |vol| vol['attachments'] }.flatten(1) }
+          response.body = { 'volumeAttachments' => data.map! { |vol| vol['attachments'] }.flatten(1) }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_snapshot_details.rb b/lib/fog/openstack/requests/compute/get_snapshot_details.rb
index 45e8542..724592e 100644
--- a/lib/fog/openstack/requests/compute/get_snapshot_details.rb
+++ b/lib/fog/openstack/requests/compute/get_snapshot_details.rb
@@ -2,20 +2,16 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_snapshot_details(snapshot_id)
-
           request(
             :expects  => 200,
             :method   => 'GET',
             :path     => "os-snapshots/#{snapshot_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_snapshot_details(snapshot_id)
           response = Excon::Response.new
           response.status = 200
@@ -33,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/get_usage.rb b/lib/fog/openstack/requests/compute/get_usage.rb
index 55cfd9d..06c6f67 100644
--- a/lib/fog/openstack/requests/compute/get_usage.rb
+++ b/lib/fog/openstack/requests/compute/get_usage.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_usage(tenant_id, date_start, date_end)
           params = Hash.new
           params[:start] = date_start.utc.iso8601.chop!
@@ -14,7 +13,6 @@ module Fog
             :query    => params
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/get_volume_details.rb b/lib/fog/openstack/requests/compute/get_volume_details.rb
index 8fb2ccd..00d2ee1 100644
--- a/lib/fog/openstack/requests/compute/get_volume_details.rb
+++ b/lib/fog/openstack/requests/compute/get_volume_details.rb
@@ -2,20 +2,16 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def get_volume_details(volume_id)
-
           request(
             :expects  => 200,
             :method   => 'GET',
             :path     => "os-volumes/#{volume_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_volume_details(volume_id)
           response = Excon::Response.new
           if data = self.data[:volumes][volume_id]
@@ -27,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/list_address_pools.rb b/lib/fog/openstack/requests/compute/list_address_pools.rb
index bd24b99..9f4dc71 100644
--- a/lib/fog/openstack/requests/compute/list_address_pools.rb
+++ b/lib/fog/openstack/requests/compute/list_address_pools.rb
@@ -2,20 +2,16 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_address_pools
           request(
             :expects  => [200, 203],
             :method   => 'GET',
             :path     => "os-floating-ip-pools"
           )
-
         end
-
       end
 
       class Mock
-
         def list_address_pools
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +22,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_addresses.rb b/lib/fog/openstack/requests/compute/list_addresses.rb
index 7fe046c..806ad8d 100644
--- a/lib/fog/openstack/requests/compute/list_addresses.rb
+++ b/lib/fog/openstack/requests/compute/list_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_addresses(server_id)
           request(
             :expects  => [200, 203],
@@ -10,14 +9,12 @@ module Fog
             :path     => "servers/#{server_id}/ips.json"
           )
         end
-
       end
 
       class Mock
-
         def list_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'addresses' => server['addresses'] }
             response
@@ -25,7 +22,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_all_addresses.rb b/lib/fog/openstack/requests/compute/list_all_addresses.rb
index b16eb1d..5e241b7 100644
--- a/lib/fog/openstack/requests/compute/list_all_addresses.rb
+++ b/lib/fog/openstack/requests/compute/list_all_addresses.rb
@@ -2,16 +2,13 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_all_addresses
           request(
             :expects  => [200, 203],
             :method   => 'GET',
             :path     => "os-floating-ips.json"
           )
-
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/list_flavors.rb b/lib/fog/openstack/requests/compute/list_flavors.rb
index ec2c754..ae54b31 100644
--- a/lib/fog/openstack/requests/compute/list_flavors.rb
+++ b/lib/fog/openstack/requests/compute/list_flavors.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_flavors
           request(
             :expects  => [200, 203],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'flavors.json'
           )
         end
-
       end
 
       class Mock
-
         def list_flavors
           response = Excon::Response.new
           response.status = 200
@@ -31,7 +28,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_flavors_detail.rb b/lib/fog/openstack/requests/compute/list_flavors_detail.rb
index 1416de2..c9133ac 100644
--- a/lib/fog/openstack/requests/compute/list_flavors_detail.rb
+++ b/lib/fog/openstack/requests/compute/list_flavors_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_flavors_detail(options = {})
           request(
             :expects  => [200, 203],
@@ -11,11 +10,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_flavors_detail(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -32,7 +29,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_hosts.rb b/lib/fog/openstack/requests/compute/list_hosts.rb
index e8dd929..08cdd01 100644
--- a/lib/fog/openstack/requests/compute/list_hosts.rb
+++ b/lib/fog/openstack/requests/compute/list_hosts.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_hosts
           request(
             :expects  => [200, 203],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'os-hosts.json'
           )
         end
-
       end
 
       class Mock
-
         def list_hosts
           response = Excon::Response.new
           response.status = 200
@@ -24,8 +21,6 @@ module Fog
           }
           response
         end
-
-
       end # mock
     end # openstack
   end # compute
diff --git a/lib/fog/openstack/requests/compute/list_images.rb b/lib/fog/openstack/requests/compute/list_images.rb
index 8ad0405..0d88e24 100644
--- a/lib/fog/openstack/requests/compute/list_images.rb
+++ b/lib/fog/openstack/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_images
           request(
             :expects  => [200, 203],
@@ -10,11 +9,9 @@ module Fog
             :path     => 'images.json'
           )
         end
-
       end
 
       class Mock
-
         def list_images
           response = Excon::Response.new
           data = list_images_detail.body['images']
@@ -26,7 +23,6 @@ module Fog
           response.body = { 'images' => images }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_images_detail.rb b/lib/fog/openstack/requests/compute/list_images_detail.rb
index f340e0e..676a1d4 100644
--- a/lib/fog/openstack/requests/compute/list_images_detail.rb
+++ b/lib/fog/openstack/requests/compute/list_images_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_images_detail(filters = {})
           request(
             :expects  => [200, 203],
@@ -11,11 +10,9 @@ module Fog
             :query    => filters
           )
         end
-
       end
 
       class Mock
-
         def list_images_detail(filters = {})
           response = Excon::Response.new
 
@@ -33,7 +30,6 @@ module Fog
           response.body = { 'images' => images.map {|image| image.reject {|key, value| !['id', 'name', 'links', 'minRam', 'minDisk', 'metadata', 'status', 'updated'].include?(key)}} }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_key_pairs.rb b/lib/fog/openstack/requests/compute/list_key_pairs.rb
index 043ea10..b5bdad4 100644
--- a/lib/fog/openstack/requests/compute/list_key_pairs.rb
+++ b/lib/fog/openstack/requests/compute/list_key_pairs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_key_pairs
           request(
             :expects  => [200, 203],
@@ -10,7 +9,6 @@ module Fog
             :path     => 'os-keypairs.json'
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/list_metadata.rb b/lib/fog/openstack/requests/compute/list_metadata.rb
index 7ba1346..e5b5f3c 100644
--- a/lib/fog/openstack/requests/compute/list_metadata.rb
+++ b/lib/fog/openstack/requests/compute/list_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_metadata(collection_name, parent_id)
           request(
             :expects  => [200, 203],
@@ -10,18 +9,15 @@ module Fog
             :path     => "/#{collection_name}/#{parent_id}/metadata.json"
           )
         end
-
       end
 
       class Mock
-
         def list_metadata(collection_name, parent_id)
           response = Excon::Response.new
           response.status = 200
           response.body = {}
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_private_addresses.rb b/lib/fog/openstack/requests/compute/list_private_addresses.rb
index 96c2636..3b0151d 100644
--- a/lib/fog/openstack/requests/compute/list_private_addresses.rb
+++ b/lib/fog/openstack/requests/compute/list_private_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_private_addresses(server_id)
           request(
             :expects  => [200, 203],
@@ -10,14 +9,12 @@ module Fog
             :path     => "servers/#{server_id}/ips/private.json"
           )
         end
-
       end
 
       class Mock
-
         def list_private_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'private' => server['addresses']['private'] }
             response
@@ -25,7 +22,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_public_addresses.rb b/lib/fog/openstack/requests/compute/list_public_addresses.rb
index 9eaf49a..dda3e43 100644
--- a/lib/fog/openstack/requests/compute/list_public_addresses.rb
+++ b/lib/fog/openstack/requests/compute/list_public_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_public_addresses(server_id)
           request(
             :expects  => [200, 203],
@@ -10,14 +9,12 @@ module Fog
             :path     => "servers/#{server_id}/ips/public.json"
           )
         end
-
       end
 
       class Mock
-
         def list_public_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'public' => server['addresses']['public'] }
             response
@@ -25,7 +22,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_security_groups.rb b/lib/fog/openstack/requests/compute/list_security_groups.rb
index a6da05d..5d683e5 100644
--- a/lib/fog/openstack/requests/compute/list_security_groups.rb
+++ b/lib/fog/openstack/requests/compute/list_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_security_groups(server_id = nil)
           path = "os-security-groups.json"
           if server_id
@@ -14,7 +13,6 @@ module Fog
             :path     => path
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/list_servers.rb b/lib/fog/openstack/requests/compute/list_servers.rb
index 9d19dc6..cb45d0e 100644
--- a/lib/fog/openstack/requests/compute/list_servers.rb
+++ b/lib/fog/openstack/requests/compute/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_servers(options = {})
           params = Hash.new
           params['all_tenants'] = 'True' if options[:all_tenants]
@@ -14,11 +13,9 @@ module Fog
             :query   => params
           )
         end
-
       end
 
       class Mock
-
         def list_servers(options = {})
           response = Excon::Response.new
           data = list_servers_detail.body['servers']
@@ -30,7 +27,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_servers_detail.rb b/lib/fog/openstack/requests/compute/list_servers_detail.rb
index bd28e89..5b4df1b 100644
--- a/lib/fog/openstack/requests/compute/list_servers_detail.rb
+++ b/lib/fog/openstack/requests/compute/list_servers_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         # Available filters: name, status, image, flavor, changes_since, reservation_id
         def list_servers_detail(filters = {})
           params = Hash.new
@@ -15,11 +14,9 @@ module Fog
             :query   => params
           )
         end
-
       end
 
       class Mock
-
         def list_servers_detail(filters = {})
           response = Excon::Response.new
 
@@ -37,7 +34,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/list_snapshots.rb b/lib/fog/openstack/requests/compute/list_snapshots.rb
index c81ae50..95a02e6 100644
--- a/lib/fog/openstack/requests/compute/list_snapshots.rb
+++ b/lib/fog/openstack/requests/compute/list_snapshots.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_snapshots(detailed=true)
-
           path = detailed ? 'os-snapshots/detail' : 'os-snapshots'
           request(
             :expects  => 200,
@@ -12,11 +10,9 @@ module Fog
             :path     => path
           )
         end
-
       end
 
       class Mock
-
         def list_snapshots(detailed=true)
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +22,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/list_usages.rb b/lib/fog/openstack/requests/compute/list_usages.rb
index 249c3cb..bf47411 100644
--- a/lib/fog/openstack/requests/compute/list_usages.rb
+++ b/lib/fog/openstack/requests/compute/list_usages.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_usages(date_start = nil, date_end = nil, detailed=false)
           params = Hash.new
           params[:start] = date_start.iso8601.gsub(/\+.*/, '') if date_start
@@ -16,7 +15,6 @@ module Fog
             :query    => params
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/compute/list_volumes.rb b/lib/fog/openstack/requests/compute/list_volumes.rb
index b8f811e..3891568 100644
--- a/lib/fog/openstack/requests/compute/list_volumes.rb
+++ b/lib/fog/openstack/requests/compute/list_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def list_volumes(detailed=true)
           path = detailed ? 'os-volumes/detail' : 'os-volumes'
           request(
@@ -11,11 +10,9 @@ module Fog
             :path     => path
           )
         end
-
       end
 
       class Mock
-
         def list_volumes(detailed=true)
           Excon::Response.new(
             :body   => { 'volumes' => self.data[:volumes].values },
@@ -23,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/live_migrate_server.rb b/lib/fog/openstack/requests/compute/live_migrate_server.rb
index 9fe5e31..ea40e57 100644
--- a/lib/fog/openstack/requests/compute/live_migrate_server.rb
+++ b/lib/fog/openstack/requests/compute/live_migrate_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def live_migrate_server(server_id, host, block_migration, disk_over_commit)
           body = {
             'os-migrateLive' => {
@@ -12,19 +11,15 @@ module Fog
             }
           }
           server_action(server_id, body)
-
         end
-
       end
 
       class Mock
-
         def live_migrate_server(server_id, host, block_migration, disk_over_commit)
           response = Excon::Response.new
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/migrate_server.rb b/lib/fog/openstack/requests/compute/migrate_server.rb
index f132b7c..2cb2bc6 100644
--- a/lib/fog/openstack/requests/compute/migrate_server.rb
+++ b/lib/fog/openstack/requests/compute/migrate_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def migrate_server(server_id)
           body = { 'migrate' => nil }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def migrate_server(server_id)
           response = Excon::Response.new
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/reboot_server.rb b/lib/fog/openstack/requests/compute/reboot_server.rb
index 0cfd72d..23eedd3 100644
--- a/lib/fog/openstack/requests/compute/reboot_server.rb
+++ b/lib/fog/openstack/requests/compute/reboot_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def reboot_server(server_id, type = 'SOFT')
           body = { 'reboot' => { 'type' => type }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def reboot_server(server_id, type = 'SOFT')
           response = Excon::Response.new
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/rebuild_server.rb b/lib/fog/openstack/requests/compute/rebuild_server.rb
index 77f7446..f801831 100644
--- a/lib/fog/openstack/requests/compute/rebuild_server.rb
+++ b/lib/fog/openstack/requests/compute/rebuild_server.rb
@@ -2,9 +2,7 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def rebuild_server(server_id, image_ref, name, admin_pass=nil, metadata=nil, personality=nil)
-
           body = { 'rebuild' => {
             'imageRef' => image_ref,
             'name' => name
@@ -22,17 +20,14 @@ module Fog
           end
           server_action(server_id, body, 202)
         end
-
       end
 
       class Mock
-
         def rebuild_server(server_id, image_ref, name, admin_pass=nil, metadata=nil, personality=nil)
           response = get_server_details(server_id)
           response.body['server']['status'] = "REBUILD"
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/release_address.rb b/lib/fog/openstack/requests/compute/release_address.rb
index f205729..f4c9bf3 100644
--- a/lib/fog/openstack/requests/compute/release_address.rb
+++ b/lib/fog/openstack/requests/compute/release_address.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def release_address(address_id)
           request(
             :expects => [200, 202],
@@ -10,11 +9,9 @@ module Fog
             :path   => "os-floating-ips/#{address_id}"
           )
         end
-
       end
 
       class Mock
-
         def release_address(address_id)
           response = Excon::Response.new
           response.status = 202
@@ -26,9 +23,7 @@ module Fog
           response.body = {}
           response
         end
-
       end # mock
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/remove_security_group.rb b/lib/fog/openstack/requests/compute/remove_security_group.rb
index 58ace3f..fee63f2 100644
--- a/lib/fog/openstack/requests/compute/remove_security_group.rb
+++ b/lib/fog/openstack/requests/compute/remove_security_group.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def remove_security_group(server_id, group_name)
           body = {'removeSecurityGroup' => { "name" => group_name } }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def remove_security_group(server_id, group_name)
           response = Excon::Response.new
           response.status = 200
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/reset_server_state.rb b/lib/fog/openstack/requests/compute/reset_server_state.rb
index 66f3087..d32c199 100644
--- a/lib/fog/openstack/requests/compute/reset_server_state.rb
+++ b/lib/fog/openstack/requests/compute/reset_server_state.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def reset_server_state(server_id, status)
           body = { 'os-resetState' => { 'state' => status } }
           server_action(server_id, body, 202)
         end
-
       end
 
       class Mock
-
         def reset_server_state(server_id, status)
           response = get_server_details(server_id)
           response.body['server']['status'] = status.upcase
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/resize_server.rb b/lib/fog/openstack/requests/compute/resize_server.rb
index bb14b6d..489563e 100644
--- a/lib/fog/openstack/requests/compute/resize_server.rb
+++ b/lib/fog/openstack/requests/compute/resize_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def resize_server(server_id, flavor_ref)
           body = { 'resize' => { 'flavorRef' => flavor_ref }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def resize_server(server_id, flavor_ref)
           response = Excon::Response.new
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/revert_resize_server.rb b/lib/fog/openstack/requests/compute/revert_resize_server.rb
index 74e4d59..cf00809 100644
--- a/lib/fog/openstack/requests/compute/revert_resize_server.rb
+++ b/lib/fog/openstack/requests/compute/revert_resize_server.rb
@@ -2,16 +2,13 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def revert_resize_server(server_id)
           body = { 'revertResize' => nil }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def revert_resize_server(server_id)
           response = Excon::Response.new
           response.status = 202
@@ -23,7 +20,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/server_action.rb b/lib/fog/openstack/requests/compute/server_action.rb
index b55d7a0..11c329b 100644
--- a/lib/fog/openstack/requests/compute/server_action.rb
+++ b/lib/fog/openstack/requests/compute/server_action.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def server_action(server_id, body, expects=[200,202])
           request(
             :body     => Fog::JSON.encode(body),
@@ -11,7 +10,6 @@ module Fog
             :path     => "servers/#{server_id}/action.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/set_metadata.rb b/lib/fog/openstack/requests/compute/set_metadata.rb
index 48b5de7..49359fc 100644
--- a/lib/fog/openstack/requests/compute/set_metadata.rb
+++ b/lib/fog/openstack/requests/compute/set_metadata.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class OpenStack
-
       class Real
-
         def set_metadata(collection_name, parent_id, metadata = {})
           request(
             :body     => Fog::JSON.encode({ 'metadata' => metadata }),
@@ -12,21 +10,18 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata"
           )
         end
-
       end
 
       class Mock
-
         def set_metadata(collection_name, parent_id, metadata = {})
-
           if collection_name == "images" then
-            if not list_images_detail.body['images'].detect {|_| _['id'] == parent_id}
+            if not list_images_detail.body['images'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
 
           if collection_name == "servers" then
-            if not list_servers_detail.body['servers'].detect {|_| _['id'] == parent_id}
+            if not list_servers_detail.body['servers'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
@@ -35,11 +30,8 @@ module Fog
           response.body = { "metadata" => metadata }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/set_tenant.rb b/lib/fog/openstack/requests/compute/set_tenant.rb
index cde9a85..05f4746 100644
--- a/lib/fog/openstack/requests/compute/set_tenant.rb
+++ b/lib/fog/openstack/requests/compute/set_tenant.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class OpenStack
-
       class Real
         def set_tenant(tenant)
           @openstack_must_reauthenticate = true
@@ -15,7 +14,6 @@ module Fog
           true
         end
       end
-
     end # class OpenStack
   end # module Compute
 end # module Fog
diff --git a/lib/fog/openstack/requests/compute/start_server.rb b/lib/fog/openstack/requests/compute/start_server.rb
new file mode 100644
index 0000000..b20b902
--- /dev/null
+++ b/lib/fog/openstack/requests/compute/start_server.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class OpenStack
+      class Real
+        # Start the server.
+        #
+        # === Parameters
+        # * server_id <~String> - The ID of the server to be started.
+        # === Returns
+        # * success <~Boolean>
+        def start_server(server_id)
+          body = { 'os-start' => nil }
+          server_action(server_id, body).status == 202
+        end # def start_server
+      end # class Real
+
+      class Mock
+        def start_server(server_id)
+          true
+        end # def start_server
+      end # class Mock
+    end # class OpenStack
+  end # module Compute
+end # module Fog
\ No newline at end of file
diff --git a/lib/fog/openstack/requests/compute/stop_server.rb b/lib/fog/openstack/requests/compute/stop_server.rb
new file mode 100644
index 0000000..418a03c
--- /dev/null
+++ b/lib/fog/openstack/requests/compute/stop_server.rb
@@ -0,0 +1,24 @@
+module Fog
+  module Compute
+    class OpenStack
+      class Real
+        # Stop the server.
+        #
+        # === Parameters
+        # * server_id <~String> - The ID of the server to be stopped.
+        # === Returns
+        # * success <~Boolean>
+        def stop_server(server_id)
+          body = { 'os-stop' => nil }
+          server_action(server_id, body).status == 202
+        end # def stop_server
+      end # class Real
+
+      class Mock
+        def stop_server(server_id)
+          true
+        end # def stop_server
+      end # class Mock
+    end # class OpenStack
+  end # module Compute
+end # module Fog
\ No newline at end of file
diff --git a/lib/fog/openstack/requests/compute/update_meta.rb b/lib/fog/openstack/requests/compute/update_meta.rb
index 68c751d..f7c0286 100644
--- a/lib/fog/openstack/requests/compute/update_meta.rb
+++ b/lib/fog/openstack/requests/compute/update_meta.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class OpenStack
-
       class Real
-
         def update_meta(collection_name, parent_id, key, value)
           request(
             :body     => Fog::JSON.encode({ 'meta' => {key => value}}),
@@ -12,21 +10,18 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata/#{key}"
           )
         end
-
       end
 
       class Mock
-
         def update_meta(collection_name, parent_id, key, value)
-
           if collection_name == "images" then
-            if not list_images_detail.body['images'].detect {|_| _['id'] == parent_id}
+            if not list_images_detail.body['images'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
 
           if collection_name == "servers" then
-            if not list_servers_detail.body['servers'].detect {|_| _['id'] == parent_id}
+            if not list_servers_detail.body['servers'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
@@ -36,11 +31,8 @@ module Fog
           response.body = { "metadata" => {key => value} }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/update_metadata.rb b/lib/fog/openstack/requests/compute/update_metadata.rb
index 93d260e..d26cd17 100644
--- a/lib/fog/openstack/requests/compute/update_metadata.rb
+++ b/lib/fog/openstack/requests/compute/update_metadata.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class OpenStack
-
       class Real
-
         def update_metadata(collection_name, parent_id, metadata = {})
           request(
             :body     => Fog::JSON.encode({ 'metadata' => metadata }),
@@ -12,21 +10,18 @@ module Fog
             :path     => "#{collection_name}/#{parent_id}/metadata.json"
           )
         end
-
       end
 
       class Mock
-
         def update_metadata(collection_name, parent_id, metadata = {})
-
           if collection_name == "images" then
-            if not list_images_detail.body['images'].detect {|_| _['id'] == parent_id}
+            if not list_images_detail.body['images'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
 
           if collection_name == "servers" then
-            if not list_servers_detail.body['servers'].detect {|_| _['id'] == parent_id}
+            if not list_servers_detail.body['servers'].find {|_| _['id'] == parent_id}
               raise Fog::Compute::OpenStack::NotFound
             end
           end
@@ -36,11 +31,8 @@ module Fog
           response.body = { "metadata" => metadata }
           response.status = 200
           response
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/compute/update_quota.rb b/lib/fog/openstack/requests/compute/update_quota.rb
index 51f59b2..bccf22f 100644
--- a/lib/fog/openstack/requests/compute/update_quota.rb
+++ b/lib/fog/openstack/requests/compute/update_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def update_quota(tenant_id, options = {})
           options['tenant_id'] = tenant_id
           request(
@@ -12,11 +11,9 @@ module Fog
             :path => "/os-quota-sets/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
         def update_quota(tenant_id, options = {})
           self.data[:quota_updated] = self.data[:quota].merge options
 
@@ -25,7 +22,6 @@ module Fog
           response.body = { 'quota_set' => self.data[:quota_updated] }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/compute/update_server.rb b/lib/fog/openstack/requests/compute/update_server.rb
index dbf0b9b..e19de13 100644
--- a/lib/fog/openstack/requests/compute/update_server.rb
+++ b/lib/fog/openstack/requests/compute/update_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class OpenStack
       class Real
-
         def update_server(server_id, options = {})
           request(
             :body     => Fog::JSON.encode({ 'server' => options }),
@@ -11,14 +10,12 @@ module Fog
             :path     => "servers/#{server_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def update_server(server_id, options = {})
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if options['name']
               server['name'] = options['name']
             end
@@ -28,7 +25,6 @@ module Fog
             raise Fog::Compute::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/check_token.rb b/lib/fog/openstack/requests/identity/check_token.rb
index f208c58..8a0301d 100644
--- a/lib/fog/openstack/requests/identity/check_token.rb
+++ b/lib/fog/openstack/requests/identity/check_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def check_token(token_id, tenant_id)
           request(
             :expects  => [200, 203],
@@ -10,13 +9,9 @@ module Fog
             :path     => "tokens/#{token_id}?belongsTo=#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
-
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/create_ec2_credential.rb b/lib/fog/openstack/requests/identity/create_ec2_credential.rb
index dc20e98..0714074 100644
--- a/lib/fog/openstack/requests/identity/create_ec2_credential.rb
+++ b/lib/fog/openstack/requests/identity/create_ec2_credential.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         ##
         # Create an EC2 credential for a user in a tenant.  Requires
         # administrator credentials.
diff --git a/lib/fog/openstack/requests/identity/create_role.rb b/lib/fog/openstack/requests/identity/create_role.rb
index 79c25a6..9f71b32 100644
--- a/lib/fog/openstack/requests/identity/create_role.rb
+++ b/lib/fog/openstack/requests/identity/create_role.rb
@@ -30,7 +30,6 @@ module Fog
             :status => 202
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/create_user.rb b/lib/fog/openstack/requests/identity/create_user.rb
index c4996af..b8d4367 100644
--- a/lib/fog/openstack/requests/identity/create_user.rb
+++ b/lib/fog/openstack/requests/identity/create_user.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def create_user(name, password, email, tenantId=nil, enabled=true)
           data = {
             'user' => {
@@ -21,11 +20,9 @@ module Fog
             :path     => '/users'
           )
         end
-
       end
 
       class Mock
-
         def create_user(name, password, email, tenantId=nil, enabled=true)
           response = Excon::Response.new
           response.status = 200
@@ -40,7 +37,6 @@ module Fog
           response.body = { 'user' => data }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/create_user_role.rb b/lib/fog/openstack/requests/identity/create_user_role.rb
index 0becdb4..7e7d7ae 100644
--- a/lib/fog/openstack/requests/identity/create_user_role.rb
+++ b/lib/fog/openstack/requests/identity/create_user_role.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def create_user_role(tenant_id, user_id, role_id)
           request(
             :expects  => 200,
@@ -10,7 +9,6 @@ module Fog
             :path     => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/identity/delete_ec2_credential.rb b/lib/fog/openstack/requests/identity/delete_ec2_credential.rb
index 95fe7a1..2bf37c2 100644
--- a/lib/fog/openstack/requests/identity/delete_ec2_credential.rb
+++ b/lib/fog/openstack/requests/identity/delete_ec2_credential.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         ##
         # Destroy an EC2 credential for a user.  Requires administrator
         # credentials.
@@ -41,4 +40,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/openstack/requests/identity/delete_role.rb b/lib/fog/openstack/requests/identity/delete_role.rb
index 2600af8..a0f7856 100644
--- a/lib/fog/openstack/requests/identity/delete_role.rb
+++ b/lib/fog/openstack/requests/identity/delete_role.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def delete_role(role_id)
           request(
             :expects => [200, 204],
@@ -10,11 +9,9 @@ module Fog
             :path   => "/OS-KSADM/roles/#{role_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_role(role_id)
           response = Excon::Response.new
           if self.data[:roles][role_id]
@@ -25,7 +22,6 @@ module Fog
             raise Fog::Identity::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/delete_user.rb b/lib/fog/openstack/requests/identity/delete_user.rb
index d42b778..3309651 100644
--- a/lib/fog/openstack/requests/identity/delete_user.rb
+++ b/lib/fog/openstack/requests/identity/delete_user.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def delete_user(user_id)
           request(
             :expects => [200, 204],
@@ -10,11 +9,9 @@ module Fog
             :path   => "users/#{user_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_user(user_id)
           self.data[:users].delete(
             list_users.body['users'].find {|x| x['id'] == user_id }['id'])
@@ -25,7 +22,6 @@ module Fog
         rescue
           raise Fog::Identity::OpenStack::NotFound
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/delete_user_role.rb b/lib/fog/openstack/requests/identity/delete_user_role.rb
index 8bd5cd9..6c5ce2d 100644
--- a/lib/fog/openstack/requests/identity/delete_user_role.rb
+++ b/lib/fog/openstack/requests/identity/delete_user_role.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def delete_user_role(tenant_id, user_id, role_id)
           request(
             :expects  => 204,
@@ -10,7 +9,6 @@ module Fog
             :path     => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
           )
         end
-
       end
 
       class Mock
@@ -23,4 +21,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/openstack/requests/identity/get_ec2_credential.rb b/lib/fog/openstack/requests/identity/get_ec2_credential.rb
index 323c5fe..31b32c2 100644
--- a/lib/fog/openstack/requests/identity/get_ec2_credential.rb
+++ b/lib/fog/openstack/requests/identity/get_ec2_credential.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         ##
         # Retrieves an EC2 credential for a user.  Requires administrator
         # credentials.
diff --git a/lib/fog/openstack/requests/identity/get_tenants_by_id.rb b/lib/fog/openstack/requests/identity/get_tenants_by_id.rb
index 01489e8..ad69c02 100644
--- a/lib/fog/openstack/requests/identity/get_tenants_by_id.rb
+++ b/lib/fog/openstack/requests/identity/get_tenants_by_id.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def get_tenants_by_id(tenant_id)
           request(
             :expects  => [200],
@@ -10,13 +9,9 @@ module Fog
             :path     => "tenants/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
-
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/get_tenants_by_name.rb b/lib/fog/openstack/requests/identity/get_tenants_by_name.rb
index 42fd019..b468f86 100644
--- a/lib/fog/openstack/requests/identity/get_tenants_by_name.rb
+++ b/lib/fog/openstack/requests/identity/get_tenants_by_name.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def get_tenants_by_name(name)
           request(
             :expects  => [200],
@@ -10,13 +9,9 @@ module Fog
             :path     => "tenants?name=#{name}"
           )
         end
-
       end
 
       class Mock
-
-
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/get_user_by_id.rb b/lib/fog/openstack/requests/identity/get_user_by_id.rb
index e00f308..af3049e 100644
--- a/lib/fog/openstack/requests/identity/get_user_by_id.rb
+++ b/lib/fog/openstack/requests/identity/get_user_by_id.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def get_user_by_id(user_id)
           request(
             :expects  => [200, 203],
@@ -10,7 +9,6 @@ module Fog
             :path     => "users/#{user_id}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/identity/get_user_by_name.rb b/lib/fog/openstack/requests/identity/get_user_by_name.rb
index 79085be..2b2e0c7 100644
--- a/lib/fog/openstack/requests/identity/get_user_by_name.rb
+++ b/lib/fog/openstack/requests/identity/get_user_by_name.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def get_user_by_name(name)
           request(
             :expects  => [200, 203],
@@ -10,11 +9,9 @@ module Fog
             :path     => "users?name=#{name}"
           )
         end
-
       end
 
       class Mock
-
         def get_user_by_name(name)
           response = Excon::Response.new
           response.status = 200
@@ -24,7 +21,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/list_ec2_credentials.rb b/lib/fog/openstack/requests/identity/list_ec2_credentials.rb
index 8cd548c..c4c9551 100644
--- a/lib/fog/openstack/requests/identity/list_ec2_credentials.rb
+++ b/lib/fog/openstack/requests/identity/list_ec2_credentials.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         ##
         # List EC2 credentials for a user.  Requires administrator
         # credentials.
diff --git a/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb b/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb
index 916ef10..4a89c2e 100644
--- a/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb
+++ b/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def list_endpoints_for_token(token_id)
           request(
             :expects  => [200, 203],
@@ -10,13 +9,9 @@ module Fog
             :path     => "tokens/#{token_id}/endpoints"
           )
         end
-
       end
 
       class Mock
-
-
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/list_roles.rb b/lib/fog/openstack/requests/identity/list_roles.rb
index a6595cd..a57bdf4 100644
--- a/lib/fog/openstack/requests/identity/list_roles.rb
+++ b/lib/fog/openstack/requests/identity/list_roles.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def list_roles
           request(
             :expects => 200,
@@ -10,11 +9,9 @@ module Fog
             :path   => '/OS-KSADM/roles'
           )
         end
-
       end
 
       class Mock
-
         def list_roles
           if self.data[:roles].empty?
             ['admin', 'Member'].each do |name|
@@ -28,9 +25,7 @@ module Fog
             :status => 200
           )
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/openstack/requests/identity/list_user_global_roles.rb b/lib/fog/openstack/requests/identity/list_user_global_roles.rb
index 8c08922..07dc523 100644
--- a/lib/fog/openstack/requests/identity/list_user_global_roles.rb
+++ b/lib/fog/openstack/requests/identity/list_user_global_roles.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def list_user_global_roles(user_id)
           request(
             :expects  => [200],
@@ -13,9 +12,6 @@ module Fog
       end
 
       class Mock
-
-
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/list_users.rb b/lib/fog/openstack/requests/identity/list_users.rb
index ba27a97..28bb234 100644
--- a/lib/fog/openstack/requests/identity/list_users.rb
+++ b/lib/fog/openstack/requests/identity/list_users.rb
@@ -22,7 +22,6 @@ module Fog
             }
           end
 
-
           Excon::Response.new(
             :body   => { 'users' => users },
             :status => 200
diff --git a/lib/fog/openstack/requests/identity/set_tenant.rb b/lib/fog/openstack/requests/identity/set_tenant.rb
index a5aa904..896107f 100644
--- a/lib/fog/openstack/requests/identity/set_tenant.rb
+++ b/lib/fog/openstack/requests/identity/set_tenant.rb
@@ -1,7 +1,6 @@
 module Fog
   module Identity
     class OpenStack
-
       class Real
         def set_tenant(tenant)
           @openstack_must_reauthenticate = true
@@ -15,7 +14,6 @@ module Fog
           true
         end
       end
-
     end # class OpenStack
   end # module Identity
 end # module Fog
diff --git a/lib/fog/openstack/requests/identity/update_user.rb b/lib/fog/openstack/requests/identity/update_user.rb
index a1f8fba..8f72e77 100644
--- a/lib/fog/openstack/requests/identity/update_user.rb
+++ b/lib/fog/openstack/requests/identity/update_user.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def update_user(user_id, options = {})
           url = options.delete('url') || "/users/#{user_id}"
           request(
@@ -12,11 +11,9 @@ module Fog
             :path     => url
           )
         end
-
       end
 
       class Mock
-
         def update_user(user_id, options)
           response = Excon::Response.new
           if user = self.data[:users][user_id]
@@ -29,7 +26,6 @@ module Fog
             raise Fog::Identity::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/identity/validate_token.rb b/lib/fog/openstack/requests/identity/validate_token.rb
index 4e676c2..3f06a20 100644
--- a/lib/fog/openstack/requests/identity/validate_token.rb
+++ b/lib/fog/openstack/requests/identity/validate_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Identity
     class OpenStack
       class Real
-
         def validate_token(token_id, tenant_id)
           request(
             :expects  => [200, 203],
@@ -10,13 +9,9 @@ module Fog
             :path     => "tokens/#{token_id}?belongsTo=#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
-
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/image/create_image.rb b/lib/fog/openstack/requests/image/create_image.rb
index 8431cf2..6d36785 100644
--- a/lib/fog/openstack/requests/image/create_image.rb
+++ b/lib/fog/openstack/requests/image/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Image
     class OpenStack
       class Real
-
         def create_image(attributes)
           data = {
             'Content-Type'                  =>'application/octet-stream',
@@ -41,11 +40,9 @@ module Fog
         ensure
           body.close if body.respond_to?(:close)
         end
-
       end
 
       class Mock
-
         def create_image(attributes)
           response = Excon::Response.new
           response.status = 201
diff --git a/lib/fog/openstack/requests/image/delete_image.rb b/lib/fog/openstack/requests/image/delete_image.rb
index eab8c47..8f50bd7 100644
--- a/lib/fog/openstack/requests/image/delete_image.rb
+++ b/lib/fog/openstack/requests/image/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Image
     class OpenStack
       class Real
-
         def delete_image(image_id)
           request(
             :expects  => 200,
@@ -10,7 +9,6 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/image/list_public_images_detailed.rb b/lib/fog/openstack/requests/image/list_public_images_detailed.rb
index e165df3..5e60b10 100644
--- a/lib/fog/openstack/requests/image/list_public_images_detailed.rb
+++ b/lib/fog/openstack/requests/image/list_public_images_detailed.rb
@@ -3,7 +3,6 @@ module Fog
     class OpenStack
       class Real
         def list_public_images_detailed(attribute=nil, query=nil)
-
           if attribute
             path = "images/detail?#{attribute}=#{URI::encode(query)}"
           else
diff --git a/lib/fog/openstack/requests/image/set_tenant.rb b/lib/fog/openstack/requests/image/set_tenant.rb
index 81d0373..b3f85bf 100644
--- a/lib/fog/openstack/requests/image/set_tenant.rb
+++ b/lib/fog/openstack/requests/image/set_tenant.rb
@@ -1,7 +1,6 @@
 module Fog
   module Image
     class OpenStack
-
       class Real
         def set_tenant(tenant)
           @openstack_must_reauthenticate = true
@@ -15,7 +14,6 @@ module Fog
           true
         end
       end
-
     end # class OpenStack
   end # module Compute
 end # module Fog
diff --git a/lib/fog/openstack/requests/image/update_image.rb b/lib/fog/openstack/requests/image/update_image.rb
index f7d0c8d..9e8250e 100644
--- a/lib/fog/openstack/requests/image/update_image.rb
+++ b/lib/fog/openstack/requests/image/update_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Image
     class OpenStack
       class Real
-
         def update_image(attributes)
           data = {
             'x-image-meta-name'             => attributes[:name],
@@ -29,11 +28,9 @@ module Fog
             :path     => "images/#{attributes[:id]}"
           )
         end
-
       end
 
       class Mock
-
         def update_image(attributes)
           response = Excon::Response.new
           response.status = 200
@@ -61,7 +58,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/metering/get_resource.rb b/lib/fog/openstack/requests/metering/get_resource.rb
index f398fea..52114fe 100644
--- a/lib/fog/openstack/requests/metering/get_resource.rb
+++ b/lib/fog/openstack/requests/metering/get_resource.rb
@@ -2,7 +2,6 @@ module Fog
   module Metering
     class OpenStack
       class Real
-
         def get_resource(resource_id)
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "resources/#{resource_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_resource(resource_id)
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +23,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/metering/get_samples.rb b/lib/fog/openstack/requests/metering/get_samples.rb
index f6cc9d8..6b5ad07 100644
--- a/lib/fog/openstack/requests/metering/get_samples.rb
+++ b/lib/fog/openstack/requests/metering/get_samples.rb
@@ -2,9 +2,7 @@ module Fog
   module Metering
     class OpenStack
       class Real
-
         def get_samples(meter_id, options=[])
-
           data = {
             'q' => Array.new
           }
@@ -26,11 +24,9 @@ module Fog
             :path     => "meters/#{meter_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_samples(meter_id)
           response = Excon::Response.new
           response.status = 200
@@ -49,7 +45,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/metering/get_statistics.rb b/lib/fog/openstack/requests/metering/get_statistics.rb
index c5e5650..b3593b5 100644
--- a/lib/fog/openstack/requests/metering/get_statistics.rb
+++ b/lib/fog/openstack/requests/metering/get_statistics.rb
@@ -2,9 +2,7 @@ module Fog
   module Metering
     class OpenStack
       class Real
-
         def get_statistics(meter_id, options={})
-
           data = {
             'period' => options['period'],
             'q'      => Array.new
@@ -27,11 +25,9 @@ module Fog
             :path     => "meters/#{meter_id}/statistics"
           )
         end
-
       end
 
       class Mock
-
         def get_statistics(meter_id, options={})
           response = Excon::Response.new
           response.status = 200
@@ -50,7 +46,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/metering/list_meters.rb b/lib/fog/openstack/requests/metering/list_meters.rb
index 59ad0ff..2183b61 100644
--- a/lib/fog/openstack/requests/metering/list_meters.rb
+++ b/lib/fog/openstack/requests/metering/list_meters.rb
@@ -2,9 +2,7 @@ module Fog
   module Metering
     class OpenStack
       class Real
-
         def list_meters(options=[])
-
           data = {
             'q' => Array.new
           }
@@ -26,11 +24,9 @@ module Fog
             :path     => 'meters'
           )
         end
-
       end
 
       class Mock
-
         def list_meters(options={})
           response = Excon::Response.new
           response.status = 200
@@ -44,7 +40,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/metering/list_resources.rb b/lib/fog/openstack/requests/metering/list_resources.rb
index 8fdd0d8..0688add 100644
--- a/lib/fog/openstack/requests/metering/list_resources.rb
+++ b/lib/fog/openstack/requests/metering/list_resources.rb
@@ -2,7 +2,6 @@ module Fog
   module Metering
     class OpenStack
       class Real
-
         def list_resources(options = {})
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => 'resources'
           )
         end
-
       end
 
       class Mock
-
         def list_resources(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +23,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/add_router_interface.rb b/lib/fog/openstack/requests/network/add_router_interface.rb
index afa4ca6..8dfb899 100644
--- a/lib/fog/openstack/requests/network/add_router_interface.rb
+++ b/lib/fog/openstack/requests/network/add_router_interface.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def add_router_interface(router_id, subnet_id, options = {})
           data = {
@@ -42,7 +41,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/associate_floating_ip.rb b/lib/fog/openstack/requests/network/associate_floating_ip.rb
index 8bd845b..e252fac 100644
--- a/lib/fog/openstack/requests/network/associate_floating_ip.rb
+++ b/lib/fog/openstack/requests/network/associate_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def associate_floating_ip(floating_ip_id, port_id, options = {})
           data = {
@@ -43,7 +42,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/associate_lb_health_monitor.rb b/lib/fog/openstack/requests/network/associate_lb_health_monitor.rb
index b5aaad2..b43c36a 100644
--- a/lib/fog/openstack/requests/network/associate_lb_health_monitor.rb
+++ b/lib/fog/openstack/requests/network/associate_lb_health_monitor.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def associate_lb_health_monitor(pool_id, health_monitor_id)
           data = {
@@ -22,7 +21,7 @@ module Fog
       class Mock
         def associate_lb_health_monitor(pool_id, health_monitor_id)
           response = Excon::Response.new
-          if pool = list_lb_pools.body['pools'].detect { |_| _['id'] == pool_id }
+          if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id }
             pool['health_monitors'] << health_monitor_id
             self.data[:lb_pools][pool_id] = pool
             response.body = { 'health_monitor' => {} }
@@ -33,7 +32,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_floating_ip.rb b/lib/fog/openstack/requests/network/create_floating_ip.rb
index ea9df1f..923cc0c 100644
--- a/lib/fog/openstack/requests/network/create_floating_ip.rb
+++ b/lib/fog/openstack/requests/network/create_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_floating_ip(floating_network_id, options = {})
           data = {
@@ -41,7 +40,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_lb_health_monitor.rb b/lib/fog/openstack/requests/network/create_lb_health_monitor.rb
index a76a8de..9b08bdd 100644
--- a/lib/fog/openstack/requests/network/create_lb_health_monitor.rb
+++ b/lib/fog/openstack/requests/network/create_lb_health_monitor.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_lb_health_monitor(type, delay, timeout, max_retries, options = {})
           data = {
@@ -50,7 +49,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_lb_member.rb b/lib/fog/openstack/requests/network/create_lb_member.rb
index 1f24d39..85ef83c 100644
--- a/lib/fog/openstack/requests/network/create_lb_member.rb
+++ b/lib/fog/openstack/requests/network/create_lb_member.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_lb_member(pool_id, address, protocol_port, weight, options = {})
           data = {
@@ -47,7 +46,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_lb_pool.rb b/lib/fog/openstack/requests/network/create_lb_pool.rb
index f62fbf5..31d6999 100644
--- a/lib/fog/openstack/requests/network/create_lb_pool.rb
+++ b/lib/fog/openstack/requests/network/create_lb_pool.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_lb_pool(subnet_id, protocol, lb_method, options = {})
           data = {
@@ -54,7 +53,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_lb_vip.rb b/lib/fog/openstack/requests/network/create_lb_vip.rb
index 700c06c..297946d 100644
--- a/lib/fog/openstack/requests/network/create_lb_vip.rb
+++ b/lib/fog/openstack/requests/network/create_lb_vip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_lb_vip(subnet_id, pool_id, protocol, protocol_port, options = {})
           data = {
@@ -54,7 +53,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_network.rb b/lib/fog/openstack/requests/network/create_network.rb
index bbbbfb2..3b26047 100644
--- a/lib/fog/openstack/requests/network/create_network.rb
+++ b/lib/fog/openstack/requests/network/create_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_network(options = {})
           data = { 'network' => {} }
@@ -93,7 +92,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_port.rb b/lib/fog/openstack/requests/network/create_port.rb
index 9741f9c..e8006df 100644
--- a/lib/fog/openstack/requests/network/create_port.rb
+++ b/lib/fog/openstack/requests/network/create_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_port(network_id, options = {})
           data = {
@@ -46,7 +45,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_router.rb b/lib/fog/openstack/requests/network/create_router.rb
index 273212e..a5de38a 100644
--- a/lib/fog/openstack/requests/network/create_router.rb
+++ b/lib/fog/openstack/requests/network/create_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_router(name, options = {})
           data = {
@@ -72,7 +71,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/create_subnet.rb b/lib/fog/openstack/requests/network/create_subnet.rb
index ed05ae3..10187d9 100644
--- a/lib/fog/openstack/requests/network/create_subnet.rb
+++ b/lib/fog/openstack/requests/network/create_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def create_subnet(network_id, cidr, ip_version, options = {})
           data = {
@@ -50,7 +49,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_floating_ip.rb b/lib/fog/openstack/requests/network/delete_floating_ip.rb
index 42c1a41..b3442fe 100644
--- a/lib/fog/openstack/requests/network/delete_floating_ip.rb
+++ b/lib/fog/openstack/requests/network/delete_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_floating_ip(floating_ip_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_lb_health_monitor.rb b/lib/fog/openstack/requests/network/delete_lb_health_monitor.rb
index 26031c1..aeeddcc 100644
--- a/lib/fog/openstack/requests/network/delete_lb_health_monitor.rb
+++ b/lib/fog/openstack/requests/network/delete_lb_health_monitor.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_lb_health_monitor(health_monitor_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_lb_member.rb b/lib/fog/openstack/requests/network/delete_lb_member.rb
index 15daea0..5de460d 100644
--- a/lib/fog/openstack/requests/network/delete_lb_member.rb
+++ b/lib/fog/openstack/requests/network/delete_lb_member.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_lb_member(member_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_lb_pool.rb b/lib/fog/openstack/requests/network/delete_lb_pool.rb
index 0db85da..835b910 100644
--- a/lib/fog/openstack/requests/network/delete_lb_pool.rb
+++ b/lib/fog/openstack/requests/network/delete_lb_pool.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_lb_pool(pool_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_lb_vip.rb b/lib/fog/openstack/requests/network/delete_lb_vip.rb
index 42ec3e8..9ba1b15 100644
--- a/lib/fog/openstack/requests/network/delete_lb_vip.rb
+++ b/lib/fog/openstack/requests/network/delete_lb_vip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_lb_vip(vip_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_network.rb b/lib/fog/openstack/requests/network/delete_network.rb
index 65edd1e..0580cd3 100644
--- a/lib/fog/openstack/requests/network/delete_network.rb
+++ b/lib/fog/openstack/requests/network/delete_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_network(network_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_port.rb b/lib/fog/openstack/requests/network/delete_port.rb
index f89a925..387c706 100644
--- a/lib/fog/openstack/requests/network/delete_port.rb
+++ b/lib/fog/openstack/requests/network/delete_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_port(port_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_quota.rb b/lib/fog/openstack/requests/network/delete_quota.rb
index 42fe7cf..90a670a 100644
--- a/lib/fog/openstack/requests/network/delete_quota.rb
+++ b/lib/fog/openstack/requests/network/delete_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         def delete_quota(tenant_id)
           request(
             :expects  => 204,
@@ -10,7 +9,6 @@ module Fog
             :path     => "/quotas/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
@@ -20,7 +18,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_router.rb b/lib/fog/openstack/requests/network/delete_router.rb
index 5d8eabf..130bdb9 100644
--- a/lib/fog/openstack/requests/network/delete_router.rb
+++ b/lib/fog/openstack/requests/network/delete_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_router(router_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/delete_security_group_rule.rb b/lib/fog/openstack/requests/network/delete_security_group_rule.rb
index 2b0b024..388ae1b 100644
--- a/lib/fog/openstack/requests/network/delete_security_group_rule.rb
+++ b/lib/fog/openstack/requests/network/delete_security_group_rule.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         # Delete a security group rule
         #
         # ==== Parameters
@@ -14,11 +13,9 @@ module Fog
             :path     => "security-group-rules/#{security_group_rule_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_security_group_rule(security_group_rule_id)
           response = Excon::Response.new
           if self.data[:security_group_rules][security_group_rule_id]
@@ -29,7 +26,6 @@ module Fog
             raise Fog::Network::OpenStack::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/network/delete_subnet.rb b/lib/fog/openstack/requests/network/delete_subnet.rb
index ba52aab..100c768 100644
--- a/lib/fog/openstack/requests/network/delete_subnet.rb
+++ b/lib/fog/openstack/requests/network/delete_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def delete_subnet(subnet_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/disassociate_floating_ip.rb b/lib/fog/openstack/requests/network/disassociate_floating_ip.rb
index a27576e..27ecfbc 100644
--- a/lib/fog/openstack/requests/network/disassociate_floating_ip.rb
+++ b/lib/fog/openstack/requests/network/disassociate_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def disassociate_floating_ip(floating_ip_id, options = {})
           data = {
@@ -43,7 +42,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/disassociate_lb_health_monitor.rb b/lib/fog/openstack/requests/network/disassociate_lb_health_monitor.rb
index 8167a80..eab4a32 100644
--- a/lib/fog/openstack/requests/network/disassociate_lb_health_monitor.rb
+++ b/lib/fog/openstack/requests/network/disassociate_lb_health_monitor.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def disassociate_lb_health_monitor(pool_id, health_monitor_id)
           request(
@@ -15,7 +14,7 @@ module Fog
       class Mock
         def disassociate_lb_health_monitor(pool_id, health_monitor_id)
           response = Excon::Response.new
-          if pool = list_lb_pools.body['pools'].detect { |_| _['id'] == pool_id }
+          if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id }
             pool['health_monitors'].delete(health_monitor_id)
             self.data[:lb_pools][pool_id] = pool
             response.status = 204
@@ -25,7 +24,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_floating_ip.rb b/lib/fog/openstack/requests/network/get_floating_ip.rb
index 2bcb7ec..2ec9255 100644
--- a/lib/fog/openstack/requests/network/get_floating_ip.rb
+++ b/lib/fog/openstack/requests/network/get_floating_ip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_floating_ip(floating_ip_id)
           request(
@@ -35,8 +34,6 @@ module Fog
           end
         end
       end
-
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_lb_health_monitor.rb b/lib/fog/openstack/requests/network/get_lb_health_monitor.rb
index 6dee9bf..18d2a3a 100644
--- a/lib/fog/openstack/requests/network/get_lb_health_monitor.rb
+++ b/lib/fog/openstack/requests/network/get_lb_health_monitor.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_lb_health_monitor(health_monitor_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_lb_member.rb b/lib/fog/openstack/requests/network/get_lb_member.rb
index 4e686aa..ab2351c 100644
--- a/lib/fog/openstack/requests/network/get_lb_member.rb
+++ b/lib/fog/openstack/requests/network/get_lb_member.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_lb_member(member_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_lb_pool.rb b/lib/fog/openstack/requests/network/get_lb_pool.rb
index 45e5c9b..051a807 100644
--- a/lib/fog/openstack/requests/network/get_lb_pool.rb
+++ b/lib/fog/openstack/requests/network/get_lb_pool.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_lb_pool(pool_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_lb_pool_stats.rb b/lib/fog/openstack/requests/network/get_lb_pool_stats.rb
index f360b48..35fdf4f 100644
--- a/lib/fog/openstack/requests/network/get_lb_pool_stats.rb
+++ b/lib/fog/openstack/requests/network/get_lb_pool_stats.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_lb_pool_stats(pool_id)
           request(
@@ -29,7 +28,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_lb_vip.rb b/lib/fog/openstack/requests/network/get_lb_vip.rb
index 0d68ad1..63c145c 100644
--- a/lib/fog/openstack/requests/network/get_lb_vip.rb
+++ b/lib/fog/openstack/requests/network/get_lb_vip.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_lb_vip(vip_id)
           request(
@@ -24,7 +23,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_network.rb b/lib/fog/openstack/requests/network/get_network.rb
index eebbc2a..23d3fc6 100644
--- a/lib/fog/openstack/requests/network/get_network.rb
+++ b/lib/fog/openstack/requests/network/get_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_network(network_id)
           request(
@@ -36,7 +35,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_port.rb b/lib/fog/openstack/requests/network/get_port.rb
index 0a06def..b01c337 100644
--- a/lib/fog/openstack/requests/network/get_port.rb
+++ b/lib/fog/openstack/requests/network/get_port.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_port(port_id)
           request(
@@ -42,7 +41,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_quota.rb b/lib/fog/openstack/requests/network/get_quota.rb
index 3b0c789..ce0bf69 100644
--- a/lib/fog/openstack/requests/network/get_quota.rb
+++ b/lib/fog/openstack/requests/network/get_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         def get_quota(tenant_id)
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "/quotas/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_quota(tenant_id)
           response = Excon::Response.new
           response.status = 200
@@ -23,9 +20,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_quotas.rb b/lib/fog/openstack/requests/network/get_quotas.rb
index 93783c6..563cb5b 100644
--- a/lib/fog/openstack/requests/network/get_quotas.rb
+++ b/lib/fog/openstack/requests/network/get_quotas.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         def get_quotas
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "/quotas"
           )
         end
-
       end
 
       class Mock
-
         def get_quotas
           response = Excon::Response.new
           response.status = 200
@@ -23,9 +20,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_router.rb b/lib/fog/openstack/requests/network/get_router.rb
index b512606..bac1bb3 100644
--- a/lib/fog/openstack/requests/network/get_router.rb
+++ b/lib/fog/openstack/requests/network/get_router.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_router(router_id)
           request(
@@ -26,7 +25,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/get_subnet.rb b/lib/fog/openstack/requests/network/get_subnet.rb
index f1ba330..9feac3c 100644
--- a/lib/fog/openstack/requests/network/get_subnet.rb
+++ b/lib/fog/openstack/requests/network/get_subnet.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def get_subnet(subnet_id)
           request(
@@ -43,7 +42,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_floating_ips.rb b/lib/fog/openstack/requests/network/list_floating_ips.rb
index b148441..725bde7 100644
--- a/lib/fog/openstack/requests/network/list_floating_ips.rb
+++ b/lib/fog/openstack/requests/network/list_floating_ips.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_floating_ips(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_lb_health_monitors.rb b/lib/fog/openstack/requests/network/list_lb_health_monitors.rb
index 6dabfcf..d5dedae 100644
--- a/lib/fog/openstack/requests/network/list_lb_health_monitors.rb
+++ b/lib/fog/openstack/requests/network/list_lb_health_monitors.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_lb_health_monitors(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_lb_members.rb b/lib/fog/openstack/requests/network/list_lb_members.rb
index a1d3399..11736bb 100644
--- a/lib/fog/openstack/requests/network/list_lb_members.rb
+++ b/lib/fog/openstack/requests/network/list_lb_members.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_lb_members(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_lb_pools.rb b/lib/fog/openstack/requests/network/list_lb_pools.rb
index 4aabc5b..6b4297c 100644
--- a/lib/fog/openstack/requests/network/list_lb_pools.rb
+++ b/lib/fog/openstack/requests/network/list_lb_pools.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_lb_pools(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_lb_vips.rb b/lib/fog/openstack/requests/network/list_lb_vips.rb
index d9ae0de..684e9fe 100644
--- a/lib/fog/openstack/requests/network/list_lb_vips.rb
+++ b/lib/fog/openstack/requests/network/list_lb_vips.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_lb_vips(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_networks.rb b/lib/fog/openstack/requests/network/list_networks.rb
index d90be27..36cc9c1 100644
--- a/lib/fog/openstack/requests/network/list_networks.rb
+++ b/lib/fog/openstack/requests/network/list_networks.rb
@@ -20,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_ports.rb b/lib/fog/openstack/requests/network/list_ports.rb
index e137f7c..e97aee2 100644
--- a/lib/fog/openstack/requests/network/list_ports.rb
+++ b/lib/fog/openstack/requests/network/list_ports.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_ports(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_routers.rb b/lib/fog/openstack/requests/network/list_routers.rb
index 3f692c3..83703e5 100644
--- a/lib/fog/openstack/requests/network/list_routers.rb
+++ b/lib/fog/openstack/requests/network/list_routers.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_routers(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/list_security_group_rules.rb b/lib/fog/openstack/requests/network/list_security_group_rules.rb
index 4af07fd..14af546 100644
--- a/lib/fog/openstack/requests/network/list_security_group_rules.rb
+++ b/lib/fog/openstack/requests/network/list_security_group_rules.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         # List all security group rules
         #
         # ==== Parameters
@@ -30,11 +29,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_security_group_rules(options = {})
           response = Excon::Response.new
 
@@ -45,7 +42,6 @@ module Fog
           response.body = { 'security_group_rules' => sec_group_rules }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/network/list_security_groups.rb b/lib/fog/openstack/requests/network/list_security_groups.rb
index b0bbd2c..0b481fd 100644
--- a/lib/fog/openstack/requests/network/list_security_groups.rb
+++ b/lib/fog/openstack/requests/network/list_security_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         # List all security groups
         #
         # ==== Parameters
@@ -35,11 +34,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_security_groups(options = {})
           response = Excon::Response.new
 
@@ -50,7 +47,6 @@ module Fog
           response.body = { 'security_groups' => sec_groups }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/network/list_subnets.rb b/lib/fog/openstack/requests/network/list_subnets.rb
index 111a693..c1841b0 100644
--- a/lib/fog/openstack/requests/network/list_subnets.rb
+++ b/lib/fog/openstack/requests/network/list_subnets.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def list_subnets(filters = {})
           request(
@@ -21,7 +20,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/remove_router_interface.rb b/lib/fog/openstack/requests/network/remove_router_interface.rb
index c822ab1..07dd235 100644
--- a/lib/fog/openstack/requests/network/remove_router_interface.rb
+++ b/lib/fog/openstack/requests/network/remove_router_interface.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def remove_router_interface(router_id, subnet_id, options = {})
           data = {
@@ -30,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/set_tenant.rb b/lib/fog/openstack/requests/network/set_tenant.rb
index 022535e..2826954 100644
--- a/lib/fog/openstack/requests/network/set_tenant.rb
+++ b/lib/fog/openstack/requests/network/set_tenant.rb
@@ -1,7 +1,6 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def set_tenant(tenant)
           @openstack_must_reauthenticate = true
@@ -15,7 +14,6 @@ module Fog
           true
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_lb_health_monitor.rb b/lib/fog/openstack/requests/network/update_lb_health_monitor.rb
index fdea257..f4a339f 100644
--- a/lib/fog/openstack/requests/network/update_lb_health_monitor.rb
+++ b/lib/fog/openstack/requests/network/update_lb_health_monitor.rb
@@ -1,13 +1,12 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_lb_health_monitor(health_monitor_id, options = {})
           data = { 'health_monitor' => {} }
 
           vanilla_options = [:delay, :timeout, :max_retries, :http_method, :url_path, :expected_codes, :admin_state_up]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['health_monitor'][key] = options[key]
           end
 
@@ -23,7 +22,7 @@ module Fog
       class Mock
         def update_lb_health_monitor(health_monitor_id, options = {})
           response = Excon::Response.new
-          if health_monitor = list_lb_health_monitors.body['health_monitors'].detect { |_| _['id'] == health_monitor_id }
+          if health_monitor = list_lb_health_monitors.body['health_monitors'].find { |_| _['id'] == health_monitor_id }
             health_monitor['delay']          = options[:delay]
             health_monitor['timeout']        = options[:timeout]
             health_monitor['max_retries']    = options[:max_retries]
@@ -39,7 +38,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_lb_member.rb b/lib/fog/openstack/requests/network/update_lb_member.rb
index 24d1d85..ee9ec69 100644
--- a/lib/fog/openstack/requests/network/update_lb_member.rb
+++ b/lib/fog/openstack/requests/network/update_lb_member.rb
@@ -1,13 +1,12 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_lb_member(member_id, options = {})
           data = { 'member' => {} }
 
           vanilla_options = [:pool_id, :weight, :admin_state_up]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['member'][key] = options[key]
           end
 
@@ -23,7 +22,7 @@ module Fog
       class Mock
         def update_lb_member(member_id, options = {})
           response = Excon::Response.new
-          if member = list_lb_members.body['members'].detect { |_| _['id'] == member_id }
+          if member = list_lb_members.body['members'].find { |_| _['id'] == member_id }
             member['pool_id']        = options[:pool_id]
             member['weight']         = options[:weight]
             member['admin_state_up'] = options[:admin_state_up]
@@ -35,7 +34,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_lb_pool.rb b/lib/fog/openstack/requests/network/update_lb_pool.rb
index 86298ac..7e9c9b3 100644
--- a/lib/fog/openstack/requests/network/update_lb_pool.rb
+++ b/lib/fog/openstack/requests/network/update_lb_pool.rb
@@ -1,13 +1,12 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_lb_pool(pool_id, options = {})
           data = { 'pool' => {} }
 
           vanilla_options = [:name, :description, :lb_method, :admin_state_up]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['pool'][key] = options[key]
           end
 
@@ -23,7 +22,7 @@ module Fog
       class Mock
         def update_lb_pool(pool_id, options = {})
           response = Excon::Response.new
-          if pool = list_lb_pools.body['pools'].detect { |_| _['id'] == pool_id }
+          if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id }
             pool['name']            = options[:name]
             pool['description']     = options[:description]
             pool['lb_method']       = options[:lb_method]
@@ -36,7 +35,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_lb_vip.rb b/lib/fog/openstack/requests/network/update_lb_vip.rb
index 1eb02a7..5828372 100644
--- a/lib/fog/openstack/requests/network/update_lb_vip.rb
+++ b/lib/fog/openstack/requests/network/update_lb_vip.rb
@@ -1,13 +1,12 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_lb_vip(vip_id, options = {})
           data = { 'vip' => {} }
 
           vanilla_options = [:pool_id, :name, :description, :session_persistence, :connection_limit, :admin_state_up]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['vip'][key] = options[key]
           end
 
@@ -23,7 +22,7 @@ module Fog
       class Mock
         def update_lb_vip(vip_id, options = {})
           response = Excon::Response.new
-          if vip = list_lb_vips.body['vips'].detect { |_| _['id'] == vip_id }
+          if vip = list_lb_vips.body['vips'].find { |_| _['id'] == vip_id }
             vip['pool_id']             = options[:pool_id]
             vip['name']                = options[:name]
             vip['description']         = options[:description]
@@ -38,7 +37,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_network.rb b/lib/fog/openstack/requests/network/update_network.rb
index 959348e..4a955e6 100644
--- a/lib/fog/openstack/requests/network/update_network.rb
+++ b/lib/fog/openstack/requests/network/update_network.rb
@@ -1,13 +1,12 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_network(network_id, options = {})
           data = { 'network' => {} }
 
           vanilla_options = [:name, :shared, :admin_state_up]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['network'][key] = options[key]
           end
 
@@ -23,7 +22,7 @@ module Fog
       class Mock
         def update_network(network_id, options = {})
           response = Excon::Response.new
-          if network = list_networks.body['networks'].detect { |_| _['id'] == network_id }
+          if network = list_networks.body['networks'].find { |_| _['id'] == network_id }
             network['name']           = options[:name]
             network['shared']         = options[:shared]
             network['admin_state_up'] = options[:admin_state_up]
@@ -35,7 +34,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_port.rb b/lib/fog/openstack/requests/network/update_port.rb
index a8de157..1301023 100644
--- a/lib/fog/openstack/requests/network/update_port.rb
+++ b/lib/fog/openstack/requests/network/update_port.rb
@@ -1,14 +1,13 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_port(port_id, options = {})
           data = { 'port' => {} }
 
           vanilla_options = [:name, :fixed_ips, :admin_state_up, :device_owner,
                              :device_id]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['port'][key] = options[key]
           end
 
@@ -24,7 +23,7 @@ module Fog
       class Mock
         def update_port(port_id, options = {})
           response = Excon::Response.new
-          if port = list_ports.body['ports'].detect { |_| _['id'] == port_id }
+          if port = list_ports.body['ports'].find { |_| _['id'] == port_id }
             port['name']           = options[:name]
             port['fixed_ips']      = options[:fixed_ips]
             port['admin_state_up'] = options[:admin_state_up]
@@ -38,7 +37,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_quota.rb b/lib/fog/openstack/requests/network/update_quota.rb
index f43d8c3..1c40c14 100644
--- a/lib/fog/openstack/requests/network/update_quota.rb
+++ b/lib/fog/openstack/requests/network/update_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Network
     class OpenStack
       class Real
-
         def update_quota(tenant_id, options = {})
           request(
             :body     => Fog::JSON.encode({ 'quota' => options} ),
@@ -11,11 +10,9 @@ module Fog
             :path     => "/quotas/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
         def update_quota(tenant_id, options = {})
           self.data[:quota_updated] = self.data[:quota].merge options
 
@@ -24,10 +21,7 @@ module Fog
           response.body = { 'quota' => self.data[:quota_updated] }
           response
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/openstack/requests/network/update_router.rb b/lib/fog/openstack/requests/network/update_router.rb
index b1e320e..61ad014 100644
--- a/lib/fog/openstack/requests/network/update_router.rb
+++ b/lib/fog/openstack/requests/network/update_router.rb
@@ -1,9 +1,7 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
-
         # Update Router
         #
         # Beyond the name and the administrative state, the only
@@ -66,7 +64,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/network/update_subnet.rb b/lib/fog/openstack/requests/network/update_subnet.rb
index 6e3597b..34a7651 100644
--- a/lib/fog/openstack/requests/network/update_subnet.rb
+++ b/lib/fog/openstack/requests/network/update_subnet.rb
@@ -1,14 +1,13 @@
 module Fog
   module Network
     class OpenStack
-
       class Real
         def update_subnet(subnet_id, options = {})
           data = { 'subnet' => {} }
 
           vanilla_options = [:name, :gateway_ip, :dns_nameservers,
                              :host_routes, :enable_dhcp]
-          vanilla_options.select{ |o| options.has_key?(o) }.each do |key|
+          vanilla_options.select{ |o| options.key?(o) }.each do |key|
             data['subnet'][key] = options[key]
           end
 
@@ -24,7 +23,7 @@ module Fog
       class Mock
         def update_subnet(subnet_id, options = {})
           response = Excon::Response.new
-          if subnet = list_subnets.body['subnets'].detect { |_| _['id'] == subnet_id }
+          if subnet = list_subnets.body['subnets'].find { |_| _['id'] == subnet_id }
             subnet['name']            = options[:name]
             subnet['gateway_ip']      = options[:gateway_ip]
             subnet['dns_nameservers'] = options[:dns_nameservers]
@@ -38,7 +37,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/orchestration/create_stack.rb b/lib/fog/openstack/requests/orchestration/create_stack.rb
index ade6905..40ac5d5 100644
--- a/lib/fog/openstack/requests/orchestration/create_stack.rb
+++ b/lib/fog/openstack/requests/orchestration/create_stack.rb
@@ -2,7 +2,6 @@ module Fog
   module Orchestration
     class OpenStack
       class Real
-
         # Create a stack.
         #
         # * stack_name [String] Name of the stack to create.
@@ -28,7 +27,6 @@ module Fog
             :body => Fog::JSON.encode(params)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/orchestration/delete_stack.rb b/lib/fog/openstack/requests/orchestration/delete_stack.rb
index 6b14cb4..bc35213 100644
--- a/lib/fog/openstack/requests/orchestration/delete_stack.rb
+++ b/lib/fog/openstack/requests/orchestration/delete_stack.rb
@@ -2,7 +2,6 @@ module Fog
   module Orchestration
     class OpenStack
       class Real
-
         # Delete a stack.
         #
         # @param stack_name [String] Name of the stack to delete.
@@ -19,7 +18,6 @@ module Fog
             :method => 'DELETE'
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/orchestration/list_stacks.rb b/lib/fog/openstack/requests/orchestration/list_stacks.rb
index eee9056..cc0c64c 100644
--- a/lib/fog/openstack/requests/orchestration/list_stacks.rb
+++ b/lib/fog/openstack/requests/orchestration/list_stacks.rb
@@ -2,7 +2,6 @@ module Fog
   module Orchestration
     class OpenStack
       class Real
-
         # List stacks.
         #
         # @param options [Hash]
@@ -31,7 +30,6 @@ module Fog
             :query => options
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/orchestration/update_stack.rb b/lib/fog/openstack/requests/orchestration/update_stack.rb
index f54892b..c75fa0f 100644
--- a/lib/fog/openstack/requests/orchestration/update_stack.rb
+++ b/lib/fog/openstack/requests/orchestration/update_stack.rb
@@ -2,7 +2,6 @@ module Fog
   module Orchestration
     class OpenStack
       class Real
-
         # Update a stack.
         #
         # @param [String] stack_id ID of the stack to update.
@@ -25,7 +24,6 @@ module Fog
             :body => Fog::JSON.encode(params)
           )
         end
-
       end
 
       class Mock
diff --git a/lib/fog/openstack/requests/storage/copy_object.rb b/lib/fog/openstack/requests/storage/copy_object.rb
index 1a9de89..d9d3783 100644
--- a/lib/fog/openstack/requests/storage/copy_object.rb
+++ b/lib/fog/openstack/requests/storage/copy_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Copy object
         #
         # ==== Parameters
@@ -20,7 +19,6 @@ module Fog
             :path     => "#{Fog::OpenStack.escape(target_container_name)}/#{Fog::OpenStack.escape(target_object_name)}"
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/delete_container.rb b/lib/fog/openstack/requests/storage/delete_container.rb
index 9cc0831..54b53e0 100644
--- a/lib/fog/openstack/requests/storage/delete_container.rb
+++ b/lib/fog/openstack/requests/storage/delete_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Delete an existing container
         #
         # ==== Parameters
@@ -15,7 +14,6 @@ module Fog
             :path     => Fog::OpenStack.escape(name)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/delete_multiple_objects.rb b/lib/fog/openstack/requests/storage/delete_multiple_objects.rb
index c623419..04b73a5 100644
--- a/lib/fog/openstack/requests/storage/delete_multiple_objects.rb
+++ b/lib/fog/openstack/requests/storage/delete_multiple_objects.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Deletes multiple objects or containers with a single request.
         #
         # To delete objects from a single container, +container+ may be provided
@@ -60,7 +59,6 @@ module Fog
           response.body = Fog::JSON.decode(response.body)
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/delete_object.rb b/lib/fog/openstack/requests/storage/delete_object.rb
index 27a24fd..1f1a63f 100644
--- a/lib/fog/openstack/requests/storage/delete_object.rb
+++ b/lib/fog/openstack/requests/storage/delete_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Delete an existing object
         #
         # ==== Parameters
@@ -16,7 +15,6 @@ module Fog
             :path     => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/delete_static_large_object.rb b/lib/fog/openstack/requests/storage/delete_static_large_object.rb
index 82600f0..feb15d4 100644
--- a/lib/fog/openstack/requests/storage/delete_static_large_object.rb
+++ b/lib/fog/openstack/requests/storage/delete_static_large_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Delete a static large object.
         #
         # Deletes the SLO manifest +object+ and all segments that it references.
@@ -36,7 +35,6 @@ module Fog
           response.body = Fog::JSON.decode(response.body)
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/get_container.rb b/lib/fog/openstack/requests/storage/get_container.rb
index 0b1a42b..9ee764e 100644
--- a/lib/fog/openstack/requests/storage/get_container.rb
+++ b/lib/fog/openstack/requests/storage/get_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Get details for container and total bytes stored
         #
         # ==== Parameters
@@ -37,7 +36,6 @@ module Fog
             :query    => {'format' => 'json'}.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/get_containers.rb b/lib/fog/openstack/requests/storage/get_containers.rb
index f2a7ce2..b030b36 100644
--- a/lib/fog/openstack/requests/storage/get_containers.rb
+++ b/lib/fog/openstack/requests/storage/get_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # List existing storage containers
         #
         # ==== Parameters
@@ -26,7 +25,6 @@ module Fog
             :query    => {'format' => 'json'}.merge!(options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/get_object.rb b/lib/fog/openstack/requests/storage/get_object.rb
index 4515103..85281c5 100644
--- a/lib/fog/openstack/requests/storage/get_object.rb
+++ b/lib/fog/openstack/requests/storage/get_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Get details for object
         #
         # ==== Parameters
@@ -22,7 +21,6 @@ module Fog
 
           request(params, false)
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/get_object_https_url.rb b/lib/fog/openstack/requests/storage/get_object_https_url.rb
index ca439ec..999b2ae 100644
--- a/lib/fog/openstack/requests/storage/get_object_https_url.rb
+++ b/lib/fog/openstack/requests/storage/get_object_https_url.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class OpenStack
-
       class Real
-
         # Get an expiring object https url from Cloud Files
         #
         # ==== Parameters
@@ -46,7 +44,6 @@ module Fog
             raise ArgumentError.new("Invalid method '#{method}' specified. Valid methods are: #{allowed_methods.join(', ')}")
           end
 
-
           expires        = expires.to_i
           object_path_escaped   = "#{@path}/#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object,"/")}"
           object_path_unescaped = "#{@path}/#{Fog::OpenStack.escape(container)}/#{object}"
@@ -77,9 +74,7 @@ module Fog
             h.size == 1 ? "0#{h}" : h
           }.join
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/storage/head_container.rb b/lib/fog/openstack/requests/storage/head_container.rb
index 83e4bdc..f7cdd0a 100644
--- a/lib/fog/openstack/requests/storage/head_container.rb
+++ b/lib/fog/openstack/requests/storage/head_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # List number of objects and total bytes stored
         #
         # ==== Parameters
@@ -21,7 +20,6 @@ module Fog
             :query    => {'format' => 'json'}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/head_containers.rb b/lib/fog/openstack/requests/storage/head_containers.rb
index 74cc4ea..49d986b 100644
--- a/lib/fog/openstack/requests/storage/head_containers.rb
+++ b/lib/fog/openstack/requests/storage/head_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # List number of containers and total bytes stored
         #
         # ==== Returns
@@ -18,7 +17,6 @@ module Fog
             :query    => {'format' => 'json'}
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/head_object.rb b/lib/fog/openstack/requests/storage/head_object.rb
index 35396b1..72b84b6 100644
--- a/lib/fog/openstack/requests/storage/head_object.rb
+++ b/lib/fog/openstack/requests/storage/head_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Get headers for object
         #
         # ==== Parameters
@@ -16,7 +15,6 @@ module Fog
             :path     => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}"
           }, false)
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/post_set_meta_temp_url_key.rb b/lib/fog/openstack/requests/storage/post_set_meta_temp_url_key.rb
index c68475f..efc0bd9 100644
--- a/lib/fog/openstack/requests/storage/post_set_meta_temp_url_key.rb
+++ b/lib/fog/openstack/requests/storage/post_set_meta_temp_url_key.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class OpenStack
-
       class Real
-
         # Set the account wide Temp URL Key. This is a secret key that's
         # used to generate signed expiring URLs.
         #
@@ -29,9 +27,7 @@ module Fog
             :headers  => {'X-Account-Meta-Temp-Url-Key' => key}
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/storage/put_container.rb b/lib/fog/openstack/requests/storage/put_container.rb
index 5a00387..60673f8 100644
--- a/lib/fog/openstack/requests/storage/put_container.rb
+++ b/lib/fog/openstack/requests/storage/put_container.rb
@@ -2,20 +2,21 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Create a new container
         #
         # ==== Parameters
         # * name<~String> - Name for container, should be < 256 bytes and must not contain '/'
         #
-        def put_container(name)
+        def put_container(name, options={})
+          headers = options[:headers] || {}
+          headers['X-Container-Read'] = '.r:*' if options[:public]
           request(
             :expects  => [201, 202],
             :method   => 'PUT',
-            :path     => Fog::OpenStack.escape(name)
+            :path     => Fog::OpenStack.escape(name),
+            :headers  => headers
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/put_dynamic_obj_manifest.rb b/lib/fog/openstack/requests/storage/put_dynamic_obj_manifest.rb
index d185d54..7c4da85 100644
--- a/lib/fog/openstack/requests/storage/put_dynamic_obj_manifest.rb
+++ b/lib/fog/openstack/requests/storage/put_dynamic_obj_manifest.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Create a new dynamic large object manifest
         #
         # Creates an object with a +X-Object-Manifest+ header that specifies the common prefix ("<container>/<prefix>")
@@ -36,7 +35,6 @@ module Fog
             :path     => path
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/put_object.rb b/lib/fog/openstack/requests/storage/put_object.rb
index c8a9005..f6c0e98 100644
--- a/lib/fog/openstack/requests/storage/put_object.rb
+++ b/lib/fog/openstack/requests/storage/put_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Create a new object
         #
         # When passed a block, it will make a chunked request, calling
diff --git a/lib/fog/openstack/requests/storage/put_object_manifest.rb b/lib/fog/openstack/requests/storage/put_object_manifest.rb
index 0037e99..1fe01c6 100644
--- a/lib/fog/openstack/requests/storage/put_object_manifest.rb
+++ b/lib/fog/openstack/requests/storage/put_object_manifest.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Create a new dynamic large object manifest
         #
         # This is an alias for {#put_dynamic_obj_manifest} for backward compatibility.
         def put_object_manifest(container, object, options = {})
           put_dynamic_obj_manifest(container, object, options)
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/storage/put_static_obj_manifest.rb b/lib/fog/openstack/requests/storage/put_static_obj_manifest.rb
index a1c0b1f..729f241 100644
--- a/lib/fog/openstack/requests/storage/put_static_obj_manifest.rb
+++ b/lib/fog/openstack/requests/storage/put_static_obj_manifest.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class OpenStack
       class Real
-
         # Create a new static large object manifest.
         #
         # A static large object is similar to a dynamic large object. Whereas a GET for a dynamic large object manifest
@@ -50,7 +49,6 @@ module Fog
             :query    => { 'multipart-manifest' => 'put' }
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/requests/volume/create_volume.rb b/lib/fog/openstack/requests/volume/create_volume.rb
index 3ccf4fd..15e1b70 100644
--- a/lib/fog/openstack/requests/volume/create_volume.rb
+++ b/lib/fog/openstack/requests/volume/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def create_volume(name, description, size, options={})
           data = {
             'volume' => {
@@ -13,7 +12,7 @@ module Fog
           }
 
           vanilla_options = [:snapshot_id, :imageRef, :volume_type,
-            :source_volid]
+            :source_volid, :availability_zone]
           vanilla_options.select{|o| options[o]}.each do |key|
             data['volume'][key] = options[key]
           end
@@ -24,11 +23,9 @@ module Fog
             :path     => "volumes"
           )
         end
-
       end
 
       class Mock
-
         def create_volume(name, description, size, options={})
           response = Excon::Response.new
           response.status = 202
@@ -50,7 +47,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/create_volume_snapshot.rb b/lib/fog/openstack/requests/volume/create_volume_snapshot.rb
index ada07c8..a42e9a5 100644
--- a/lib/fog/openstack/requests/volume/create_volume_snapshot.rb
+++ b/lib/fog/openstack/requests/volume/create_volume_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def create_volume_snapshot(volume_id, name, description, force=false)
           data = {
             'snapshot' => {
@@ -20,7 +19,6 @@ module Fog
             :path     => "snapshots"
           )
         end
-
       end
 
       class Mock
@@ -41,7 +39,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/delete_snapshot.rb b/lib/fog/openstack/requests/volume/delete_snapshot.rb
index b973a16..5fc804a 100644
--- a/lib/fog/openstack/requests/volume/delete_snapshot.rb
+++ b/lib/fog/openstack/requests/volume/delete_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def delete_snapshot(snapshot_id)
           request(
             :expects  => 202,
@@ -10,7 +9,6 @@ module Fog
             :path     => "snapshots/#{snapshot_id}"
           )
         end
-
       end
 
       class Mock
@@ -20,7 +18,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/delete_volume.rb b/lib/fog/openstack/requests/volume/delete_volume.rb
index c0c06ff..bf7d6a4 100644
--- a/lib/fog/openstack/requests/volume/delete_volume.rb
+++ b/lib/fog/openstack/requests/volume/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def delete_volume(volume_id)
           request(
             :expects  => 202,
@@ -10,7 +9,6 @@ module Fog
             :path     => "volumes/#{volume_id}"
           )
         end
-
       end
 
       class Mock
@@ -20,7 +18,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/get_quota.rb b/lib/fog/openstack/requests/volume/get_quota.rb
index f505c64..a9bc4d5 100644
--- a/lib/fog/openstack/requests/volume/get_quota.rb
+++ b/lib/fog/openstack/requests/volume/get_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def get_quota(tenant_id)
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "/os-quota-sets/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_quota(tenant_id)
           response = Excon::Response.new
           response.status = 200
@@ -23,9 +20,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/get_quota_defaults.rb b/lib/fog/openstack/requests/volume/get_quota_defaults.rb
index 6474a75..c2202d0 100644
--- a/lib/fog/openstack/requests/volume/get_quota_defaults.rb
+++ b/lib/fog/openstack/requests/volume/get_quota_defaults.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def get_quota_defaults(tenant_id)
           request(
             :expects  => 200,
@@ -10,11 +9,9 @@ module Fog
             :path     => "/os-quota-sets/#{tenant_id}/defaults"
           )
         end
-
       end
 
       class Mock
-
         def get_quota_defaults(tenant_id)
           response = Excon::Response.new
           response.status = 200
@@ -23,9 +20,7 @@ module Fog
           }
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/get_snapshot_details.rb b/lib/fog/openstack/requests/volume/get_snapshot_details.rb
index b86dbe6..ca8201f 100644
--- a/lib/fog/openstack/requests/volume/get_snapshot_details.rb
+++ b/lib/fog/openstack/requests/volume/get_snapshot_details.rb
@@ -2,20 +2,16 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def get_snapshot_details(snapshot_id)
-
           request(
             :expects  => 200,
             :method   => 'GET',
             :path     => "snapshots/#{snapshot_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_snapshot_details(detailed=true)
           response = Excon::Response.new
           response.status = 200
@@ -33,7 +29,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/get_volume_details.rb b/lib/fog/openstack/requests/volume/get_volume_details.rb
index 9f2426e..0e4555d 100644
--- a/lib/fog/openstack/requests/volume/get_volume_details.rb
+++ b/lib/fog/openstack/requests/volume/get_volume_details.rb
@@ -2,20 +2,16 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def get_volume_details(volume_id)
-
           request(
             :expects  => 200,
             :method   => 'GET',
             :path     => "volumes/#{volume_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_volume_details(detailed=true)
           response = Excon::Response.new
           response.status = 200
@@ -36,7 +32,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/list_snapshots.rb b/lib/fog/openstack/requests/volume/list_snapshots.rb
index 457d825..52feddf 100644
--- a/lib/fog/openstack/requests/volume/list_snapshots.rb
+++ b/lib/fog/openstack/requests/volume/list_snapshots.rb
@@ -2,9 +2,7 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def list_snapshots(detailed=true)
-
           path = detailed ? 'snapshots/detail' : 'snapshots'
           request(
             :expects  => 200,
@@ -12,11 +10,9 @@ module Fog
             :path     => path
           )
         end
-
       end
 
       class Mock
-
         def list_snapshots(detailed=true)
           response = Excon::Response.new
           response.status = 200
@@ -26,7 +22,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/openstack/requests/volume/list_volumes.rb b/lib/fog/openstack/requests/volume/list_volumes.rb
index e1f0ce4..d10a790 100644
--- a/lib/fog/openstack/requests/volume/list_volumes.rb
+++ b/lib/fog/openstack/requests/volume/list_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def list_volumes(detailed=true, options={})
           path = detailed ? 'volumes/detail' : 'volumes'
           request(
@@ -12,11 +11,9 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_volumes(detailed=true, options={})
           response = Excon::Response.new
           response.status = 200
@@ -48,8 +45,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/openstack/requests/volume/set_tenant.rb b/lib/fog/openstack/requests/volume/set_tenant.rb
index 0e78819..02e499e 100644
--- a/lib/fog/openstack/requests/volume/set_tenant.rb
+++ b/lib/fog/openstack/requests/volume/set_tenant.rb
@@ -1,7 +1,6 @@
 module Fog
   module Volume
     class OpenStack
-
       class Real
         def set_tenant(tenant)
           @openstack_must_reauthenticate = true
@@ -15,7 +14,6 @@ module Fog
           true
         end
       end
-
     end # class OpenStack
   end # module Volume
 end # module Fog
diff --git a/lib/fog/openstack/requests/volume/update_quota.rb b/lib/fog/openstack/requests/volume/update_quota.rb
index c0a628e..2ca6854 100644
--- a/lib/fog/openstack/requests/volume/update_quota.rb
+++ b/lib/fog/openstack/requests/volume/update_quota.rb
@@ -2,7 +2,6 @@ module Fog
   module Volume
     class OpenStack
       class Real
-
         def update_quota(tenant_id, options = {})
           options['tenant_id'] = tenant_id
           request(
@@ -12,11 +11,9 @@ module Fog
             :path => "/os-quota-sets/#{tenant_id}"
           )
         end
-
       end
 
       class Mock
-
         def update_quota(tenant_id, options = {})
           self.data[:quota_updated] = self.data[:quota].merge options
 
@@ -25,7 +22,6 @@ module Fog
           response.body = { 'quota_set' => self.data[:quota_updated] }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/storage.rb b/lib/fog/openstack/storage.rb
index 4d2cfb2..e72eb5d 100644
--- a/lib/fog/openstack/storage.rb
+++ b/lib/fog/openstack/storage.rb
@@ -3,12 +3,12 @@ require 'fog/openstack/core'
 module Fog
   module Storage
     class OpenStack < Fog::Service
-
       requires   :openstack_auth_url, :openstack_username,
                  :openstack_api_key
       recognizes :persistent, :openstack_service_name,
                  :openstack_service_type, :openstack_tenant,
-                 :openstack_region, :openstack_temp_url_key
+                 :openstack_region, :openstack_temp_url_key,
+                 :openstack_endpoint_type
 
       model_path 'fog/openstack/models/storage'
       model       :directory
@@ -38,7 +38,6 @@ module Fog
       request :post_set_meta_temp_url_key
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -72,11 +71,9 @@ module Fog
         def reset_account_name
           @path = @original_path
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @openstack_api_key = options[:openstack_api_key]
           @openstack_username = options[:openstack_username]
@@ -84,12 +81,13 @@ module Fog
           @openstack_auth_token = options[:openstack_auth_token]
           @openstack_storage_url = options[:openstack_storage_url]
           @openstack_must_reauthenticate = false
-          @openstack_service_type = options[:openstack_service_type] || 'object-store'
+          @openstack_service_type = options[:openstack_service_type] || ['object-store']
           @openstack_service_name = options[:openstack_service_name]
           @openstack_region       = options[:openstack_region]
           @openstack_tenant       = options[:openstack_tenant]
           @connection_options     = options[:connection_options] || {}
           @openstack_temp_url_key = options[:openstack_temp_url_key]
+          @openstack_endpoint_type = options[:openstack_endpoint_type] || 'publicURL'
           authenticate
           @persistent = options[:persistent] || false
           @connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
@@ -189,7 +187,7 @@ module Fog
               :openstack_service_name => @openstack_service_name,
               :openstack_region => @openstack_region,
               :openstack_tenant => @openstack_tenant,
-              :openstack_endpoint_type => 'publicURL'
+              :openstack_endpoint_type => @openstack_endpoint_type
             }
 
             credentials = Fog::OpenStack.authenticate(options, @connection_options)
@@ -213,7 +211,6 @@ module Fog
           @scheme = uri.scheme
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/openstack/volume.rb b/lib/fog/openstack/volume.rb
index 0bc06bd..8ee8074 100644
--- a/lib/fog/openstack/volume.rb
+++ b/lib/fog/openstack/volume.rb
@@ -3,7 +3,6 @@ require 'fog/openstack/core'
 module Fog
   module Volume
     class OpenStack < Fog::Service
-
       requires :openstack_auth_url
       recognizes :openstack_auth_token, :openstack_management_url, :persistent,
                  :openstack_service_type, :openstack_service_name, :openstack_tenant,
@@ -221,9 +220,7 @@ module Fog
           @scheme = uri.scheme
           true
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/openvz/compute.rb b/lib/fog/openvz/compute.rb
index dd6c9d8..d8322cf 100644
--- a/lib/fog/openvz/compute.rb
+++ b/lib/fog/openvz/compute.rb
@@ -3,7 +3,6 @@ require 'fog/openvz/core'
 module Fog
   module Compute
     class Openvz < Fog::Service
-
       recognizes   :openvz_connect_command
 
       model_path   'fog/openvz/models/compute'
@@ -41,7 +40,6 @@ module Fog
       request      :set_server
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -65,11 +63,9 @@ module Fog
         def reset_data
           self.class.data.delete(@openvz_connect_command)
         end
-
       end
 
       class Real
-
         def initialize(options={})
           @openvz_connect_command = options[:openvz_connect_command]
         end
@@ -139,7 +135,6 @@ module Fog
         end
 
         def vzlist(params,args = [])
-
           commands = [ 'vzlist', '-a', '-j' , params['ctid'], params[:ctid] ]
           prefixed_command = expand_commands(commands, params, args)
 
@@ -166,9 +161,7 @@ module Fog
           else
             return Fog::JSON.decode(result)
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/core.rb b/lib/fog/openvz/core.rb
index e199aff..4216bc6 100644
--- a/lib/fog/openvz/core.rb
+++ b/lib/fog/openvz/core.rb
@@ -6,4 +6,3 @@ module Fog
     service(:compute, 'Compute')
   end
 end
-
diff --git a/lib/fog/openvz/models/compute/server.rb b/lib/fog/openvz/models/compute/server.rb
index f38d5ac..7297f9a 100644
--- a/lib/fog/openvz/models/compute/server.rb
+++ b/lib/fog/openvz/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Openvz
-
       class Server < Fog::Compute::Server
-
         identity  :ctid
         attribute :ostemplate
         attribute :config
@@ -178,7 +176,6 @@ module Fog
           data = service.resume_server(ctid, options)
         end
 
-
         def set(options)
           data = service.set_server(ctid,options)
         end
@@ -186,9 +183,7 @@ module Fog
         def ready?
           status == 'running'
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openvz/models/compute/servers.rb b/lib/fog/openvz/models/compute/servers.rb
index f35f0fd..f7a510c 100644
--- a/lib/fog/openvz/models/compute/servers.rb
+++ b/lib/fog/openvz/models/compute/servers.rb
@@ -4,7 +4,6 @@ require 'fog/openvz/models/compute/server'
 module Fog
   module Compute
     class Openvz
-
       class Servers < Fog::Collection
         model Fog::Compute::Openvz::Server
 
@@ -19,9 +18,7 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/openvz/requests/compute/compact_server.rb b/lib/fog/openvz/requests/compute/compact_server.rb
index 583220c..b874e70 100644
--- a/lib/fog/openvz/requests/compute/compact_server.rb
+++ b/lib/fog/openvz/requests/compute/compact_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def compact_server(id,options = {})
           vzctl("compact",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def compact_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/convert_server.rb b/lib/fog/openvz/requests/compute/convert_server.rb
index ea141c3..8a97007 100644
--- a/lib/fog/openvz/requests/compute/convert_server.rb
+++ b/lib/fog/openvz/requests/compute/convert_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def convert_server(id,options = {})
           vzctl("convert",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def convert_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/create_server.rb b/lib/fog/openvz/requests/compute/create_server.rb
index 1c86c62..1f0dbe2 100644
--- a/lib/fog/openvz/requests/compute/create_server.rb
+++ b/lib/fog/openvz/requests/compute/create_server.rb
@@ -2,21 +2,17 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def create_server(options = {})
           vzctl("create",options)
         end
-
       end
 
       class Mock
-
         def create_server(options = {})
           # When a new fake server is created we set the status to stopped
           options['status'] = 'stopped'
           self.data[:servers] << options
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/destroy_server.rb b/lib/fog/openvz/requests/compute/destroy_server.rb
index e414924..60d057a 100644
--- a/lib/fog/openvz/requests/compute/destroy_server.rb
+++ b/lib/fog/openvz/requests/compute/destroy_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def destroy_server(id, options = {})
           vzctl("destroy",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def destroy_server(id , options = {})
           self.data[:servers].reject! { |s| s['ctid'].to_s == id.to_s }
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/exec2_server.rb b/lib/fog/openvz/requests/compute/exec2_server.rb
index e6d0ba6..29e3d81 100644
--- a/lib/fog/openvz/requests/compute/exec2_server.rb
+++ b/lib/fog/openvz/requests/compute/exec2_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def exec2_server(id,args)
           vzctl("exec2",{:ctid => id},args)
         end
-
       end
 
       class Mock
-
         def exec2_server(id, args)
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/exec_server.rb b/lib/fog/openvz/requests/compute/exec_server.rb
index 26286b1..86a2e52 100644
--- a/lib/fog/openvz/requests/compute/exec_server.rb
+++ b/lib/fog/openvz/requests/compute/exec_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def exec_server(id,args = [])
           vzctl("exec",{:ctid => id},args)
         end
-
       end
 
       class Mock
-
         def exec_server(id, args = [])
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/get_server_details.rb b/lib/fog/openvz/requests/compute/get_server_details.rb
index 0064e16..876e617 100644
--- a/lib/fog/openvz/requests/compute/get_server_details.rb
+++ b/lib/fog/openvz/requests/compute/get_server_details.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def get_server_details(id)
           vzlist({:ctid => id}).first
         end
-
       end
 
       class Mock
-
         def get_server_details(id)
           return self.data[:servers].find { |s| s['ctid'].to_s == id.to_s }
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/list_servers.rb b/lib/fog/openvz/requests/compute/list_servers.rb
index a4578f9..2bf6ba9 100644
--- a/lib/fog/openvz/requests/compute/list_servers.rb
+++ b/lib/fog/openvz/requests/compute/list_servers.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def list_servers(options = {})
           vzlist({})
         end
-
       end
 
       class Mock
-
         def list_servers
           self.data[:servers]
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/mount_server.rb b/lib/fog/openvz/requests/compute/mount_server.rb
index 7e146ae..1560982 100644
--- a/lib/fog/openvz/requests/compute/mount_server.rb
+++ b/lib/fog/openvz/requests/compute/mount_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def mount_server(id, options = {})
           vzctl("mount",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def mount_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/quotainit_server.rb b/lib/fog/openvz/requests/compute/quotainit_server.rb
index 35c99aa..e5eca4a 100644
--- a/lib/fog/openvz/requests/compute/quotainit_server.rb
+++ b/lib/fog/openvz/requests/compute/quotainit_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def quotainit_server(id, options = {})
           vzctl("quotainit",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def quotainit_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/quotaoff_server.rb b/lib/fog/openvz/requests/compute/quotaoff_server.rb
index aedec00..d67c5d1 100644
--- a/lib/fog/openvz/requests/compute/quotaoff_server.rb
+++ b/lib/fog/openvz/requests/compute/quotaoff_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def quotaooff_server(id, options = {})
           vzctl("quotaoff",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def quotaooff_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/quotaon_server.rb b/lib/fog/openvz/requests/compute/quotaon_server.rb
index 98f4936..e6278b4 100644
--- a/lib/fog/openvz/requests/compute/quotaon_server.rb
+++ b/lib/fog/openvz/requests/compute/quotaon_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def quotaon_server(id, options = {})
           vzctl("quotaon",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def quotaon_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/restart_server.rb b/lib/fog/openvz/requests/compute/restart_server.rb
index 5f9c7c0..ba76670 100644
--- a/lib/fog/openvz/requests/compute/restart_server.rb
+++ b/lib/fog/openvz/requests/compute/restart_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def restart_server(id, options = {})
           vzctl("restart",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def restart_server(id, options = {})
           server = self.data[:servers].find { |s| s['ctid'] == id.to_s }
           unless server.nil?
             server['status'] = 'running'
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/resume_server.rb b/lib/fog/openvz/requests/compute/resume_server.rb
index 89bedf9..ad655ca 100644
--- a/lib/fog/openvz/requests/compute/resume_server.rb
+++ b/lib/fog/openvz/requests/compute/resume_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def resume_server(id, options = {})
           vzctl("resume",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def resume_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/runscript_server.rb b/lib/fog/openvz/requests/compute/runscript_server.rb
index a0c0f1a..2a3ec95 100644
--- a/lib/fog/openvz/requests/compute/runscript_server.rb
+++ b/lib/fog/openvz/requests/compute/runscript_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def runscript_server(id,args = [])
           vzctl("runscript",{:ctid => id},args)
         end
-
       end
 
       class Mock
-
         def runscript_server(id,args = [])
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/set_server.rb b/lib/fog/openvz/requests/compute/set_server.rb
index ec47e80..3addf42 100644
--- a/lib/fog/openvz/requests/compute/set_server.rb
+++ b/lib/fog/openvz/requests/compute/set_server.rb
@@ -2,15 +2,12 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def set_server(id,options = {})
           vzctl("set",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def set_server(id, options = {})
           server = self.data[:servers].find { |s| s['ctid'].to_s == id.to_s }
           unless server.nil?
@@ -18,9 +15,7 @@ module Fog
               server[k] = v
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/snapshot_delete_server.rb b/lib/fog/openvz/requests/compute/snapshot_delete_server.rb
index 1bc37d5..f3bf4d9 100644
--- a/lib/fog/openvz/requests/compute/snapshot_delete_server.rb
+++ b/lib/fog/openvz/requests/compute/snapshot_delete_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def snapshot_delete_server(id,options = {})
           vzctl("snapshot-delete",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def snapshot_delete_server(id,options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/snapshot_list_server.rb b/lib/fog/openvz/requests/compute/snapshot_list_server.rb
index b1aad0f..59e63d9 100644
--- a/lib/fog/openvz/requests/compute/snapshot_list_server.rb
+++ b/lib/fog/openvz/requests/compute/snapshot_list_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def snapshot_list_server(id,options = {})
           vzctl("snapshot-list",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def snapshot_list_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/snapshot_mount_server.rb b/lib/fog/openvz/requests/compute/snapshot_mount_server.rb
index 439e0da..ec9fe3e 100644
--- a/lib/fog/openvz/requests/compute/snapshot_mount_server.rb
+++ b/lib/fog/openvz/requests/compute/snapshot_mount_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def snapshot_mount_server(id,options = {})
           vzctl("snapshot-mount",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def snapshot_mount_server(id,options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/snapshot_server.rb b/lib/fog/openvz/requests/compute/snapshot_server.rb
index 00bcc95..c63d98a 100644
--- a/lib/fog/openvz/requests/compute/snapshot_server.rb
+++ b/lib/fog/openvz/requests/compute/snapshot_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def snapshot_server(id,options = {})
           vzctl("snapshot",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def snapshot_server(id,options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/snapshot_switch_server.rb b/lib/fog/openvz/requests/compute/snapshot_switch_server.rb
index 4b84b03..37c78c1 100644
--- a/lib/fog/openvz/requests/compute/snapshot_switch_server.rb
+++ b/lib/fog/openvz/requests/compute/snapshot_switch_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def snapshot_switch_server(id,options = {})
           vzctl("snapshot-switch",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def snapshot_switch_server(id,options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/snapshot_umount_server.rb b/lib/fog/openvz/requests/compute/snapshot_umount_server.rb
index 27c2de3..74e6867 100644
--- a/lib/fog/openvz/requests/compute/snapshot_umount_server.rb
+++ b/lib/fog/openvz/requests/compute/snapshot_umount_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def snapshot_umount_server(id,options = {})
           vzctl("snapshot-umount",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def snapshot_umount_server(id,options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/start_server.rb b/lib/fog/openvz/requests/compute/start_server.rb
index 9f99b4d..aab9f62 100644
--- a/lib/fog/openvz/requests/compute/start_server.rb
+++ b/lib/fog/openvz/requests/compute/start_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def start_server(id,options={})
           vzctl("start",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def start_server(id,options={})
           server = self.data[:servers].find { |s| s['ctid'].to_s == id.to_s }
           unless server.nil?
             server['status'] = 'running'
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/status_server.rb b/lib/fog/openvz/requests/compute/status_server.rb
index 754d5ca..e208fd8 100644
--- a/lib/fog/openvz/requests/compute/status_server.rb
+++ b/lib/fog/openvz/requests/compute/status_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def status_server(id, options = {})
           vzctl("status",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def status_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/stop_server.rb b/lib/fog/openvz/requests/compute/stop_server.rb
index 9572624..eb59671 100644
--- a/lib/fog/openvz/requests/compute/stop_server.rb
+++ b/lib/fog/openvz/requests/compute/stop_server.rb
@@ -2,22 +2,18 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def stop_server(id, options = {})
           vzctl("stop",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def stop_server(id, options = {})
            server = self.data[:servers].find { |s| s['ctid'].to_s == id.to_s }
             unless server.nil?
                  server['status'] = 'stopped'
             end
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/suspend_server.rb b/lib/fog/openvz/requests/compute/suspend_server.rb
index 1c2cd3b..fe44022 100644
--- a/lib/fog/openvz/requests/compute/suspend_server.rb
+++ b/lib/fog/openvz/requests/compute/suspend_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def suspend_server(id, options = {})
           vzctl("suspend",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def suspend_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/openvz/requests/compute/umount_server.rb b/lib/fog/openvz/requests/compute/umount_server.rb
index 248cd19..1ad02e3 100644
--- a/lib/fog/openvz/requests/compute/umount_server.rb
+++ b/lib/fog/openvz/requests/compute/umount_server.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Openvz
       class Real
-
         def umount_server(id, options = {})
           vzctl("umount",{:ctid => id}.merge(options))
         end
-
       end
 
       class Mock
-
         def umount_server(id, options = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/compute.rb b/lib/fog/ovirt/compute.rb
index 9b2e47a..9e04365 100644
--- a/lib/fog/ovirt/compute.rb
+++ b/lib/fog/ovirt/compute.rb
@@ -3,7 +3,6 @@ require 'fog/ovirt/core'
 module Fog
   module Compute
     class Ovirt < Fog::Service
-
       requires   :ovirt_username, :ovirt_password
       recognizes :ovirt_url,      :ovirt_server,  :ovirt_port, :ovirt_api_path, :ovirt_datacenter,
                  :ovirt_ca_cert_store, :ovirt_ca_cert_file
@@ -99,7 +98,6 @@ module Fog
       class Real
         include Shared
 
-
         def initialize(options={})
           require 'rbovirt'
           username   = options[:ovirt_username]
diff --git a/lib/fog/ovirt/core.rb b/lib/fog/ovirt/core.rb
index 5d85afe..b228fc7 100644
--- a/lib/fog/ovirt/core.rb
+++ b/lib/fog/ovirt/core.rb
@@ -3,7 +3,6 @@ require 'fog/xml'
 
 module Fog
   module Ovirt
-
     extend Fog::Provider
 
     module Errors
@@ -13,6 +12,5 @@ module Fog
     end
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/ovirt/models/compute/cluster.rb b/lib/fog/ovirt/models/compute/cluster.rb
index e5ce654..6d948ce 100644
--- a/lib/fog/ovirt/models/compute/cluster.rb
+++ b/lib/fog/ovirt/models/compute/cluster.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Ovirt
-
       class Cluster < Fog::Model
-
         identity :id
 
         attribute :name
@@ -16,9 +14,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ovirt/models/compute/clusters.rb b/lib/fog/ovirt/models/compute/clusters.rb
index c6d6b9f..b58507a 100644
--- a/lib/fog/ovirt/models/compute/clusters.rb
+++ b/lib/fog/ovirt/models/compute/clusters.rb
@@ -4,9 +4,7 @@ require 'fog/ovirt/models/compute/cluster'
 module Fog
   module Compute
     class Ovirt
-
       class Clusters < Fog::Collection
-
         model Fog::Compute::Ovirt::Cluster
 
         def all(filters = {})
@@ -16,7 +14,6 @@ module Fog
         def get(id)
           new service.get_cluster(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/models/compute/interface.rb b/lib/fog/ovirt/models/compute/interface.rb
index 955193b..cebccd6 100644
--- a/lib/fog/ovirt/models/compute/interface.rb
+++ b/lib/fog/ovirt/models/compute/interface.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ovirt
-
       class Interface < Fog::Model
         attr_accessor :raw
         identity :id
@@ -14,9 +13,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ovirt/models/compute/interfaces.rb b/lib/fog/ovirt/models/compute/interfaces.rb
index 9823282..1a9b030 100644
--- a/lib/fog/ovirt/models/compute/interfaces.rb
+++ b/lib/fog/ovirt/models/compute/interfaces.rb
@@ -4,9 +4,7 @@ require 'fog/ovirt/models/compute/interface'
 module Fog
   module Compute
     class Ovirt
-
       class Interfaces < Fog::Collection
-
         model Fog::Compute::Ovirt::Interface
 
         attr_accessor :vm
@@ -25,7 +23,6 @@ module Fog
         def get(id)
           new service.get_interface(id)
         end
-
      end
     end
   end
diff --git a/lib/fog/ovirt/models/compute/quota.rb b/lib/fog/ovirt/models/compute/quota.rb
index e7bb4f3..df51ea4 100644
--- a/lib/fog/ovirt/models/compute/quota.rb
+++ b/lib/fog/ovirt/models/compute/quota.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Ovirt
-
       class Quota < Fog::Model
-
         identity :id
 
         attribute :name
@@ -12,10 +10,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/ovirt/models/compute/quotas.rb b/lib/fog/ovirt/models/compute/quotas.rb
index 27805cd..002b391 100644
--- a/lib/fog/ovirt/models/compute/quotas.rb
+++ b/lib/fog/ovirt/models/compute/quotas.rb
@@ -4,9 +4,7 @@ require 'fog/ovirt/models/compute/quota'
 module Fog
   module Compute
     class Ovirt
-
       class Quotas < Fog::Collection
-
         model Fog::Compute::Ovirt::Quota
 
 	def all(filters = {})
@@ -16,9 +14,7 @@ module Fog
         def get(id)
           new service.get_quota(id)
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/ovirt/models/compute/server.rb b/lib/fog/ovirt/models/compute/server.rb
index bd1ed74..1887d73 100644
--- a/lib/fog/ovirt/models/compute/server.rb
+++ b/lib/fog/ovirt/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Ovirt
-
       class Server < Fog::Compute::Server
-
         # This will be the instance uuid which is globally unique across
         # a oVirt deployment.
         identity :id
@@ -28,12 +26,14 @@ module Fog
         attribute :volumes
         attribute :raw
         attribute :quota
+        attribute :ips
 
         def ready?
           !(status =~ /down/i)
         end
 
         def locked?
+          @volumes = nil # force reload volumes
           !!(status =~ /locked/i) || (attributes[:volumes]=nil) || volumes.any?{|v| !!(v.status =~ /locked/i)}
         end
 
@@ -128,9 +128,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ovirt/models/compute/servers.rb b/lib/fog/ovirt/models/compute/servers.rb
index 2f5e095..945a88a 100644
--- a/lib/fog/ovirt/models/compute/servers.rb
+++ b/lib/fog/ovirt/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/ovirt/models/compute/server'
 module Fog
   module Compute
     class Ovirt
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Ovirt::Server
 
         def all(filters = {})
@@ -23,7 +21,6 @@ module Fog
           server.start
           server
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/models/compute/template.rb b/lib/fog/ovirt/models/compute/template.rb
index cfe56f9..20419ba 100644
--- a/lib/fog/ovirt/models/compute/template.rb
+++ b/lib/fog/ovirt/models/compute/template.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Ovirt
-
       class Template < Fog::Model
-
         identity :id
 
         attr_accessor :raw
@@ -52,9 +50,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ovirt/models/compute/templates.rb b/lib/fog/ovirt/models/compute/templates.rb
index 389159e..5193a27 100644
--- a/lib/fog/ovirt/models/compute/templates.rb
+++ b/lib/fog/ovirt/models/compute/templates.rb
@@ -4,9 +4,7 @@ require 'fog/ovirt/models/compute/template'
 module Fog
   module Compute
     class Ovirt
-
       class Templates < Fog::Collection
-
         model Fog::Compute::Ovirt::Template
 
         def all(filters = {})
@@ -16,7 +14,6 @@ module Fog
         def get(id)
           new service.get_template(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/models/compute/volume.rb b/lib/fog/ovirt/models/compute/volume.rb
index c595e70..932ccfa 100644
--- a/lib/fog/ovirt/models/compute/volume.rb
+++ b/lib/fog/ovirt/models/compute/volume.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ovirt
-
       class Volume < Fog::Model
         attr_accessor :raw
         DISK_SIZE_TO_GB = 1073741824
@@ -29,9 +28,7 @@ module Fog
         def to_s
           id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/ovirt/models/compute/volumes.rb b/lib/fog/ovirt/models/compute/volumes.rb
index 1d1d9b1..9f50e10 100644
--- a/lib/fog/ovirt/models/compute/volumes.rb
+++ b/lib/fog/ovirt/models/compute/volumes.rb
@@ -4,9 +4,7 @@ require 'fog/ovirt/models/compute/volume'
 module Fog
   module Compute
     class Ovirt
-
       class Volumes < Fog::Collection
-
         model Fog::Compute::Ovirt::Volume
 
         attr_accessor :vm
@@ -25,7 +23,6 @@ module Fog
         def get(id)
           new service.get_volume(id)
         end
-
      end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/add_interface.rb b/lib/fog/ovirt/requests/compute/add_interface.rb
index 675311d..8b1113a 100644
--- a/lib/fog/ovirt/requests/compute/add_interface.rb
+++ b/lib/fog/ovirt/requests/compute/add_interface.rb
@@ -2,13 +2,11 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def add_interface(id, options = {})
           raise ArgumentError, "instance id is a required parameter" unless id
 
           client.add_interface(id, options)
         end
-
       end
 
       class Mock
@@ -16,7 +14,6 @@ module Fog
           raise ArgumentError, "instance id is a required parameter" unless id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/add_volume.rb b/lib/fog/ovirt/requests/compute/add_volume.rb
index 264a07c..9ffb4b9 100644
--- a/lib/fog/ovirt/requests/compute/add_volume.rb
+++ b/lib/fog/ovirt/requests/compute/add_volume.rb
@@ -8,7 +8,6 @@ module Fog
           options[:size]=options[:size_gb].to_i*DISK_SIZE_TO_GB if options[:size_gb]
           client.add_volume(id, options)
         end
-
       end
 
       class Mock
@@ -16,7 +15,6 @@ module Fog
           raise ArgumentError, "instance id is a required parameter" unless id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/create_vm.rb b/lib/fog/ovirt/requests/compute/create_vm.rb
index b725057..a6d2652 100644
--- a/lib/fog/ovirt/requests/compute/create_vm.rb
+++ b/lib/fog/ovirt/requests/compute/create_vm.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ovirt
-
       class Real
         def create_vm(attrs)
           client.create_vm(attrs)
@@ -13,7 +12,6 @@ module Fog
           xml = read_xml('vm.xml')
           OVIRT::VM::new(self, Nokogiri::XML(xml).root)
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/datacenters.rb b/lib/fog/ovirt/requests/compute/datacenters.rb
index 4c94ba4..6f6a31a 100644
--- a/lib/fog/ovirt/requests/compute/datacenters.rb
+++ b/lib/fog/ovirt/requests/compute/datacenters.rb
@@ -2,17 +2,15 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def datacenters filter={}
           client.datacenters(filter).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
 
         class Mock
         def datacenters(filters = {})
           xml = read_xml 'data_centers.xml'
-          Nokogiri::XML(xml).xpath('/data_centers/data_center').collect do |dc|
+          Nokogiri::XML(xml).xpath('/data_centers/data_center').map do |dc|
             ovirt_attrs OVIRT::DataCenter::new(self, dc)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/destroy_interface.rb b/lib/fog/ovirt/requests/compute/destroy_interface.rb
index 00610c2..6e12785 100644
--- a/lib/fog/ovirt/requests/compute/destroy_interface.rb
+++ b/lib/fog/ovirt/requests/compute/destroy_interface.rb
@@ -2,23 +2,20 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def destroy_interface(id, options)
           raise ArgumentError, "instance id is a required parameter" unless id
-          raise ArgumentError, "interface id is a required parameter for destroy-interface" unless options.has_key? :id
+          raise ArgumentError, "interface id is a required parameter for destroy-interface" unless options.key? :id
 
           client.destroy_interface(id, options[:id])
         end
-
       end
 
       class Mock
         def destroy_interface(id, options)
           raise ArgumentError, "instance id is a required parameter" unless id
-          raise ArgumentError, "interface id is a required parameter for destroy-interface" unless options.has_key? :id
+          raise ArgumentError, "interface id is a required parameter for destroy-interface" unless options.key? :id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/destroy_vm.rb b/lib/fog/ovirt/requests/compute/destroy_vm.rb
index 8bc2211..5323992 100644
--- a/lib/fog/ovirt/requests/compute/destroy_vm.rb
+++ b/lib/fog/ovirt/requests/compute/destroy_vm.rb
@@ -2,20 +2,17 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def destroy_vm(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           client.destroy_vm(options[:id])
         end
-
       end
 
       class Mock
         def destroy_vm(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/destroy_volume.rb b/lib/fog/ovirt/requests/compute/destroy_volume.rb
index 3b12b89..e19cfd8 100644
--- a/lib/fog/ovirt/requests/compute/destroy_volume.rb
+++ b/lib/fog/ovirt/requests/compute/destroy_volume.rb
@@ -2,23 +2,20 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def destroy_volume(id, options)
           raise ArgumentError, "instance id is a required parameter" unless id
-          raise ArgumentError, "volume id is a required parameter for destroy-volume" unless options.has_key? :id
+          raise ArgumentError, "volume id is a required parameter for destroy-volume" unless options.key? :id
 
           client.destroy_volume(id, options[:id])
         end
-
       end
 
       class Mock
         def destroy_volume(id, options)
           raise ArgumentError, "instance id is a required parameter" unless id
-          raise ArgumentError, "volume id is a required parameter for destroy-volume" unless options.has_key? :id
+          raise ArgumentError, "volume id is a required parameter for destroy-volume" unless options.key? :id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/get_cluster.rb b/lib/fog/ovirt/requests/compute/get_cluster.rb
index 61d628d..33daddb 100644
--- a/lib/fog/ovirt/requests/compute/get_cluster.rb
+++ b/lib/fog/ovirt/requests/compute/get_cluster.rb
@@ -5,7 +5,6 @@ module Fog
         def get_cluster(id)
           ovirt_attrs client.cluster(id)
         end
-
       end
       class Mock
         def get_cluster(id)
diff --git a/lib/fog/ovirt/requests/compute/get_quota.rb b/lib/fog/ovirt/requests/compute/get_quota.rb
index 4a5abc6..94b6c3c 100644
--- a/lib/fog/ovirt/requests/compute/get_quota.rb
+++ b/lib/fog/ovirt/requests/compute/get_quota.rb
@@ -5,7 +5,6 @@ module Fog
         def get_quota(id)
           ovirt_attrs client.quota(id)
         end
-
       end
       class Mock
         def get_quota(id)
@@ -16,4 +15,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/ovirt/requests/compute/get_template.rb b/lib/fog/ovirt/requests/compute/get_template.rb
index 73622dc..337aa7b 100644
--- a/lib/fog/ovirt/requests/compute/get_template.rb
+++ b/lib/fog/ovirt/requests/compute/get_template.rb
@@ -5,7 +5,6 @@ module Fog
         def get_template(id)
           ovirt_attrs client.template(id)
         end
-
       end
       class Mock
         def get_template(id)
diff --git a/lib/fog/ovirt/requests/compute/get_virtual_machine.rb b/lib/fog/ovirt/requests/compute/get_virtual_machine.rb
index 8896a5c..5d85311 100644
--- a/lib/fog/ovirt/requests/compute/get_virtual_machine.rb
+++ b/lib/fog/ovirt/requests/compute/get_virtual_machine.rb
@@ -5,7 +5,6 @@ module Fog
         def get_virtual_machine(id)
           ovirt_attrs client.vm(id)
         end
-
       end
       class Mock
         def get_virtual_machine(id)
diff --git a/lib/fog/ovirt/requests/compute/list_clusters.rb b/lib/fog/ovirt/requests/compute/list_clusters.rb
index 4fdf0b9..014b9fd 100644
--- a/lib/fog/ovirt/requests/compute/list_clusters.rb
+++ b/lib/fog/ovirt/requests/compute/list_clusters.rb
@@ -5,12 +5,11 @@ module Fog
         def list_clusters(filters = {})
           client.clusters(filters).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_clusters(filters = {})
           xml = read_xml 'clusters.xml'
-          Nokogiri::XML(xml).xpath('/clusters/cluster').collect do |cl|
+          Nokogiri::XML(xml).xpath('/clusters/cluster').map do |cl|
             ovirt_attrs OVIRT::Cluster::new(self, cl)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/list_networks.rb b/lib/fog/ovirt/requests/compute/list_networks.rb
index f4af0d7..f789d93 100644
--- a/lib/fog/ovirt/requests/compute/list_networks.rb
+++ b/lib/fog/ovirt/requests/compute/list_networks.rb
@@ -5,7 +5,6 @@ module Fog
         def list_networks(cluster_id)
           client.networks(:cluster_id => cluster_id)
         end
-
       end
       class Mock
         def list_networks(cluster_id)
diff --git a/lib/fog/ovirt/requests/compute/list_quotas.rb b/lib/fog/ovirt/requests/compute/list_quotas.rb
index 9b56cd2..7abbe05 100644
--- a/lib/fog/ovirt/requests/compute/list_quotas.rb
+++ b/lib/fog/ovirt/requests/compute/list_quotas.rb
@@ -5,12 +5,11 @@ module Fog
         def list_quotas(filters = {})
           client.quotas(filters).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_quotas(filters = {})
           xml = read_xml 'quotas.xml'
-          Nokogiri::XML(xml).xpath('/quotas/quota').collect do |q|
+          Nokogiri::XML(xml).xpath('/quotas/quota').map do |q|
             ovirt_attrs OVIRT::Quotas::new(self, q)
           end
         end
@@ -18,4 +17,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/ovirt/requests/compute/list_template_interfaces.rb b/lib/fog/ovirt/requests/compute/list_template_interfaces.rb
index 7467dbc..1ee2379 100644
--- a/lib/fog/ovirt/requests/compute/list_template_interfaces.rb
+++ b/lib/fog/ovirt/requests/compute/list_template_interfaces.rb
@@ -5,12 +5,11 @@ module Fog
         def list_template_interfaces(vm_id)
           client.template_interfaces(vm_id).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_template_interfaces(vm_id)
           xml = read_xml 'nics.xml'
-          Nokogiri::XML(xml).xpath('/nics/nic').collect do |nic|
+          Nokogiri::XML(xml).xpath('/nics/nic').map do |nic|
             ovirt_attrs OVIRT::Interface::new(self, nic)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/list_template_volumes.rb b/lib/fog/ovirt/requests/compute/list_template_volumes.rb
index 7c4fe86..a75b714 100644
--- a/lib/fog/ovirt/requests/compute/list_template_volumes.rb
+++ b/lib/fog/ovirt/requests/compute/list_template_volumes.rb
@@ -5,12 +5,11 @@ module Fog
         def list_template_volumes(template_id)
           client.template_volumes(template_id).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_template_volumes(template_id)
           xml = read_xml 'volumes.xml'
-          Nokogiri::XML(xml).xpath('/disks/disk').collect do |vol|
+          Nokogiri::XML(xml).xpath('/disks/disk').map do |vol|
             ovirt_attrs OVIRT::Volume::new(self, vol)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/list_templates.rb b/lib/fog/ovirt/requests/compute/list_templates.rb
index eb74d98..8b1e737 100644
--- a/lib/fog/ovirt/requests/compute/list_templates.rb
+++ b/lib/fog/ovirt/requests/compute/list_templates.rb
@@ -5,12 +5,11 @@ module Fog
         def list_templates(filters = {})
           client.templates(filters).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_templates(filters = {})
           xml = read_xml 'templates.xml'
-          Nokogiri::XML(xml).xpath('/templates/template').collect do |t|
+          Nokogiri::XML(xml).xpath('/templates/template').map do |t|
             ovirt_attrs OVIRT::Template::new(self, t)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/list_virtual_machines.rb b/lib/fog/ovirt/requests/compute/list_virtual_machines.rb
index a2d6251..b676065 100644
--- a/lib/fog/ovirt/requests/compute/list_virtual_machines.rb
+++ b/lib/fog/ovirt/requests/compute/list_virtual_machines.rb
@@ -5,12 +5,11 @@ module Fog
         def list_virtual_machines(filters = {})
           client.vms(filters).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_virtual_machines(filters = {})
           xml = read_xml 'vms.xml'
-          Nokogiri::XML(xml).xpath('/vms/vm').collect do |vm|
+          Nokogiri::XML(xml).xpath('/vms/vm').map do |vm|
             ovirt_attrs OVIRT::VM::new(self, vm)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb b/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb
index 9f744b5..521cc22 100644
--- a/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb
+++ b/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb
@@ -5,12 +5,11 @@ module Fog
         def list_vm_interfaces(vm_id)
           client.vm_interfaces(vm_id).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_vm_interfaces(vm_id)
           xml = read_xml 'nics.xml'
-          Nokogiri::XML(xml).xpath('/nics/nic').collect do |nic|
+          Nokogiri::XML(xml).xpath('/nics/nic').map do |nic|
             ovirt_attrs OVIRT::Interface::new(self, nic)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/list_vm_volumes.rb b/lib/fog/ovirt/requests/compute/list_vm_volumes.rb
index bfd7b5a..ead11f7 100644
--- a/lib/fog/ovirt/requests/compute/list_vm_volumes.rb
+++ b/lib/fog/ovirt/requests/compute/list_vm_volumes.rb
@@ -5,12 +5,11 @@ module Fog
         def list_vm_volumes(vm_id)
           client.vm_volumes(vm_id).map {|ovirt_obj| ovirt_attrs ovirt_obj}
         end
-
       end
       class Mock
         def list_vm_volumes(vm_id)
           xml = read_xml 'volumes.xml'
-          Nokogiri::XML(xml).xpath('/disks/disk').collect do |vol|
+          Nokogiri::XML(xml).xpath('/disks/disk').map do |vol|
             ovirt_attrs OVIRT::Volume::new(self, vol)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/storage_domains.rb b/lib/fog/ovirt/requests/compute/storage_domains.rb
index 557af7d..c06f957 100644
--- a/lib/fog/ovirt/requests/compute/storage_domains.rb
+++ b/lib/fog/ovirt/requests/compute/storage_domains.rb
@@ -2,17 +2,15 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def storage_domains filter={}
           client.storagedomains(filter)
         end
-
       end
 
       class Mock
         def storage_domains(filters = {})
           xml = read_xml 'storage_domains.xml'
-          Nokogiri::XML(xml).xpath('/storage_domains/storage_domain').collect do |sd|
+          Nokogiri::XML(xml).xpath('/storage_domains/storage_domain').map do |sd|
             OVIRT::StorageDomain::new(self, sd)
           end
         end
diff --git a/lib/fog/ovirt/requests/compute/update_interface.rb b/lib/fog/ovirt/requests/compute/update_interface.rb
index 39c13e8..9d3236e 100644
--- a/lib/fog/ovirt/requests/compute/update_interface.rb
+++ b/lib/fog/ovirt/requests/compute/update_interface.rb
@@ -2,23 +2,20 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def update_interface(id, options)
           raise ArgumentError, "instance id is a required parameter" unless id
-          raise ArgumentError, "interface id is a required parameter for update-interface" unless options.has_key? :id
+          raise ArgumentError, "interface id is a required parameter for update-interface" unless options.key? :id
 
           client.update_interface(id, options)
         end
-
       end
 
       class Mock
         def update_interface(id, options)
           raise ArgumentError, "instance id is a required parameter" unless id
-          raise ArgumentError, "interface id is a required parameter for update-interface" unless options.has_key? :id
+          raise ArgumentError, "interface id is a required parameter for update-interface" unless options.key? :id
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/update_vm.rb b/lib/fog/ovirt/requests/compute/update_vm.rb
index 48ef49b..af7dd0e 100644
--- a/lib/fog/ovirt/requests/compute/update_vm.rb
+++ b/lib/fog/ovirt/requests/compute/update_vm.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Ovirt
-
       class Real
         def update_vm(attrs)
           client.update_vm(attrs)
@@ -13,7 +12,6 @@ module Fog
           xml = read_xml('vm.xml')
           OVIRT::VM::new(self, Nokogiri::XML(xml).root)
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/vm_action.rb b/lib/fog/ovirt/requests/compute/vm_action.rb
index d71be38..afa9bb4 100644
--- a/lib/fog/ovirt/requests/compute/vm_action.rb
+++ b/lib/fog/ovirt/requests/compute/vm_action.rb
@@ -2,24 +2,20 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def vm_action(options = {})
-          raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
-          raise ArgumentError, "action is a required parameter" unless options.has_key? :action
+          raise ArgumentError, "instance id is a required parameter" unless options.key? :id
+          raise ArgumentError, "action is a required parameter" unless options.key? :action
 
           client.vm_action options[:id], options[:action]
         end
-
       end
 
       class Mock
-
         def vm_action(options = {})
-          raise ArgumentError, "id is a required parameter" unless options.has_key? :id
-          raise ArgumentError, "action is a required parameter" unless options.has_key? :action
+          raise ArgumentError, "id is a required parameter" unless options.key? :id
+          raise ArgumentError, "action is a required parameter" unless options.key? :action
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/ovirt/requests/compute/vm_ticket.rb b/lib/fog/ovirt/requests/compute/vm_ticket.rb
index 86da6aa..140b440 100644
--- a/lib/fog/ovirt/requests/compute/vm_ticket.rb
+++ b/lib/fog/ovirt/requests/compute/vm_ticket.rb
@@ -2,19 +2,15 @@ module Fog
   module Compute
     class Ovirt
       class Real
-
         def vm_ticket(id, options = {})
           client.set_ticket(id, options)
         end
-
       end
 
       class Mock
-
         def vm_ticket(id, options = {})
           "Secret"
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/auto_scale.rb b/lib/fog/rackspace/auto_scale.rb
index bdcbf46..a5f1e46 100644
--- a/lib/fog/rackspace/auto_scale.rb
+++ b/lib/fog/rackspace/auto_scale.rb
@@ -86,9 +86,7 @@ module Fog
           end
         end
 
-
         class Real < Fog::Rackspace::Service
-
           def initialize(options = {})
             @options = options
             @options[:connection_options] ||= {}
diff --git a/lib/fog/rackspace/block_storage.rb b/lib/fog/rackspace/block_storage.rb
index 0f5762e..974940b 100644
--- a/lib/fog/rackspace/block_storage.rb
+++ b/lib/fog/rackspace/block_storage.rb
@@ -61,7 +61,7 @@ module Fog
           headers = params[:headers] || {}
 
           response = Excon::Response.new(:body => body, :headers => headers, :status => status)
-          if params.has_key?(:expects) && ![*params[:expects]].include?(response.status)
+          if params.key?(:expects) && ![*params[:expects]].include?(response.status)
             raise(Excon::Errors.status_error(params, response))
           else response
           end
@@ -139,7 +139,7 @@ module Fog
               @rackspace_endpoint = nil
               @rackspace_region = :lon
             else
-              @rackspace_region = options[:rackspace_region] || :dfw
+              @rackspace_region = options[:rackspace_region]
             end
           else
             #if we are using auth1 and the endpoint is not set, default to DFW_ENDPOINT for historical reasons
@@ -154,10 +154,6 @@ module Fog
             regions = @identity_service.service_catalog.display_service_regions(service_name)
             Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid region for :rackspace_region are #{regions}.")
           end
-
-          unless options[:rackspace_region]
-            Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires setting the :rackspace_region option")
-          end
         end
 
         def append_tenant_v1(credentials)
@@ -173,7 +169,6 @@ module Fog
           append_tenant_v1 credentials
           @auth_token = credentials['X-Auth-Token']
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/cdn.rb b/lib/fog/rackspace/cdn.rb
index 8b65817..a5a89a0 100644
--- a/lib/fog/rackspace/cdn.rb
+++ b/lib/fog/rackspace/cdn.rb
@@ -13,7 +13,6 @@ module Fog
       request :put_container
       request :delete_object
 
-
       module Base
         URI_HEADERS = {
           "X-Cdn-Ios-Uri" => :ios_uri,
@@ -30,7 +29,7 @@ module Fog
           @connection_options = options[:connection_options] || {}
           @rackspace_auth_url = options[:rackspace_auth_url]
           @rackspace_cdn_url = options[:rackspace_cdn_url]
-          @rackspace_region = options[:rackspace_region] || :dfw
+          @rackspace_region = options[:rackspace_region]
         end
 
         def service_name
@@ -130,7 +129,6 @@ module Fog
         def reset_data
           self.class.data.delete(@rackspace_username)
         end
-
       end
 
       class Real < Fog::Rackspace::Service
diff --git a/lib/fog/rackspace/compute.rb b/lib/fog/rackspace/compute.rb
index dfd688f..ee92ccd 100644
--- a/lib/fog/rackspace/compute.rb
+++ b/lib/fog/rackspace/compute.rb
@@ -46,7 +46,6 @@ module Fog
       request :update_server
 
       class Mock < Fog::Rackspace::Service
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -181,11 +180,9 @@ module Fog
         def reset_data
           self.class.data.delete(@rackspace_username)
         end
-
       end
 
       class Real < Fog::Rackspace::Service
-
         def initialize(options={})
           @rackspace_api_key = options[:rackspace_api_key]
           @rackspace_username = options[:rackspace_username]
@@ -242,7 +239,7 @@ module Fog
            super(@rackspace_endpoint || service_endpoint_url, :rackspace_compute_v1_url)
          end
 
-         private
+        private
 
          def deprecation_warnings(options)
            Fog::Logger.deprecation("The :rackspace_management_url option is deprecated. Please use :rackspace_compute_v1_url for custom endpoints") if options[:rackspace_management_url]
@@ -253,7 +250,6 @@ module Fog
            endpoint_uri credentials['X-Server-Management-Url']
            @auth_token = credentials['X-Auth-Token']
          end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/compute_v2.rb b/lib/fog/rackspace/compute_v2.rb
index fb24ec2..ca052c2 100644
--- a/lib/fog/rackspace/compute_v2.rb
+++ b/lib/fog/rackspace/compute_v2.rb
@@ -10,7 +10,6 @@ module Fog
       class BadRequest < Fog::Rackspace::Errors::BadRequest; end
 
       class InvalidStateException < ::RuntimeError
-
         attr_reader :desired_state
         attr_reader :current_state
 
@@ -136,7 +135,7 @@ module Fog
           headers = params[:headers] || {}
 
           response = Excon::Response.new(:body => body, :headers => headers, :status => status)
-          if params.has_key?(:expects) && ![*params[:expects]].include?(response.status)
+          if params.key?(:expects) && ![*params[:expects]].include?(response.status)
             raise(Excon::Errors.status_error(params, response))
           else response
           end
@@ -144,7 +143,6 @@ module Fog
       end
 
       class Real < Fog::Rackspace::Service
-
         def initialize(options = {})
           @rackspace_api_key = options[:rackspace_api_key]
           @rackspace_username = options[:rackspace_username]
@@ -216,7 +214,7 @@ module Fog
               @rackspace_region = :lon
             else
               # we are actually using a custom endpoint
-              @rackspace_region = options[:rackspace_region] || :dfw
+              @rackspace_region = options[:rackspace_region]
             end
           else
             #if we are using auth1 and the endpoint is not set, default to DFW_ENDPOINT for historical reasons
@@ -231,10 +229,6 @@ module Fog
             regions = @identity_service.service_catalog.display_service_regions(service_name)
             Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid regions for :rackspace_region are #{regions}.")
           end
-
-          unless options[:rackspace_region]
-            Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires setting the :rackspace_region option")
-          end
         end
 
         def append_tenant_v1(credentials)
diff --git a/lib/fog/rackspace/core.rb b/lib/fog/rackspace/core.rb
index a264020..7e22a9b 100644
--- a/lib/fog/rackspace/core.rb
+++ b/lib/fog/rackspace/core.rb
@@ -4,7 +4,6 @@ require 'fog/rackspace/mock_data'
 require 'fog/rackspace/service'
 require 'fog/rackspace/errors'
 
-
 module Fog
   module Rackspace
     extend Fog::Provider
@@ -101,7 +100,7 @@ module Fog
 
     def self.authenticate(options, connection_options = {})
       rackspace_auth_url = options[:rackspace_auth_url]
-      rackspace_auth_url ||= options[:rackspace_endpoint] == Fog::Compute::RackspaceV2::LON_ENDPOINT ? "lon.auth.api.rackspacecloud.com" : "auth.api.rackspacecloud.com"
+      rackspace_auth_url ||= options[:rackspace_endpoint] == Fog::Compute::RackspaceV2::LON_ENDPOINT ? UK_AUTH_ENDPOINT : US_AUTH_ENDPOINT
       url = rackspace_auth_url.match(/^https?:/) ? \
                 rackspace_auth_url : 'https://' + rackspace_auth_url
       uri = URI.parse(url)
diff --git a/lib/fog/rackspace/databases.rb b/lib/fog/rackspace/databases.rb
index 569c152..d78913b 100644
--- a/lib/fog/rackspace/databases.rb
+++ b/lib/fog/rackspace/databases.rb
@@ -20,7 +20,6 @@ module Fog
       recognizes :rackspace_region
       recognizes :rackspace_database_url
 
-
       model_path 'fog/rackspace/models/databases'
       model :flavor
       collection :flavors
@@ -52,6 +51,8 @@ module Fog
       request :list_users
       request :create_user
       request :delete_user
+      request :grant_user_access
+      request :revoke_user_access
 
       class Mock < Fog::Rackspace::Service
         def request(params)
@@ -60,7 +61,6 @@ module Fog
       end
 
       class Real < Fog::Rackspace::Service
-
         def service_name
           :cloudDatabases
         end
@@ -128,11 +128,11 @@ module Fog
               @rackspace_region = :lon
             else
               # we are actually using a custom endpoint
-              @rackspace_region = options[:rackspace_region] || :dfw
+              @rackspace_region = options[:rackspace_region]
             end
           else
             #if we are using auth1 and the endpoint is not set, default to DFW_ENDPOINT for historical reasons
-             @rackspace_endpoint ||= DFW_ENDPOINT
+            @rackspace_endpoint ||= DFW_ENDPOINT
           end
         end
 
@@ -143,10 +143,6 @@ module Fog
             regions = @identity_service.service_catalog.display_service_regions(service_name)
             Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid region for :rackspace_region are #{regions}.")
           end
-
-          unless options[:rackspace_region]
-            Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires setting the :rackspace_region option")
-          end
         end
 
         def append_tenant_v1(credentials)
diff --git a/lib/fog/rackspace/dns.rb b/lib/fog/rackspace/dns.rb
index f3f8ba5..10e6eb2 100644
--- a/lib/fog/rackspace/dns.rb
+++ b/lib/fog/rackspace/dns.rb
@@ -50,7 +50,6 @@ module Fog
       request :add_records
 
       class Mock < Fog::Rackspace::Service
-
         def initialize(options={})
           @rackspace_api_key = options[:rackspace_api_key]
           @rackspace_username = options[:rackspace_username]
@@ -74,11 +73,9 @@ module Fog
         def reset_data
           self.class.reset
         end
-
       end
 
       class Real < Fog::Rackspace::Service
-
         def service_name
           :cloudDNS
         end
@@ -128,7 +125,7 @@ module Fog
 
         def array_to_query_string(arr)
           return "" unless arr
-          query_array = arr.collect do | k, v |
+          query_array = arr.map do | k, v |
             val_str = v.is_a?(Array) ? v.join(",") : v.to_s
             "#{k}=#{val_str}"
           end
diff --git a/lib/fog/rackspace/docs/auto_scale.md b/lib/fog/rackspace/docs/auto_scale.md
index 78704c9..f8a18e6 100644
--- a/lib/fog/rackspace/docs/auto_scale.md
+++ b/lib/fog/rackspace/docs/auto_scale.md
@@ -47,7 +47,7 @@ Next, create a connection to Auto Scale:
 
 Using a US-based account:
 
-	service = Fog::Rackspace::AutoScale(
+	service = Fog::Rackspace::AutoScale.new (
 		:rackspace_username  => RACKSPACE_USER_NAME, # Your Rackspace Username
 		:rackspace_api_key   => RACKSPACE_API,       # Your Rackspace API key
 		:rackspace_region    => :ord,
@@ -56,7 +56,7 @@ Using a US-based account:
 
 Using a UK-based account:
 
-	service = Fog::Rackspace::AutoScale(
+	service = Fog::Rackspace::AutoScale.new (
 		:rackspace_username  => RACKSPACE_USER_NAME,        # Your Rackspace Username
 		:rackspace_api_key   => RACKSPACE_API,              # Your Rackspace API key
 		:rackspace_auth_url  => Fog::Rackspace::UK_AUTH_ENDPOINT,
@@ -70,7 +70,7 @@ By default `Fog::Rackspace::AutoScale` will authenticate against the US authenti
 
 Alternative regions are specified using the key `:rackspace_region `. A list of regions available for Auto Scale can be found by executing the following:
 
-	identity_service = Fog::Identity({
+	identity_service = Fog::Identity.new({
 		:provider            => 'Rackspace',                     # Rackspace Fog provider
 		:rackspace_username  => RACKSPACE_USER_NAME,             # Your Rackspace Username
 		:rackspace_api_key   => RACKSPACE_API,                   # Your Rackspace API key
@@ -319,7 +319,7 @@ And then use the builder as follows:
       ],
       :max_entities => 3,
       :min_entities => 2,
-      :cooldown => cooldown,
+      :cooldown => 600,
       :name => "MyScalingGroup",
       :metadata => { "created_by" => "autoscale sample script" },
       :load_balancers => {
@@ -330,6 +330,7 @@ And then use the builder as follows:
     }
 
     group = Fog::Rackspace::AutoScale::GroupBuilder.build(service, attributes)
+    group.save
 
 This creates the scaling group with the name `MyScalingGroup`, and returns a `Fog::Rackspace::AutoScale::Group` object representing the new group. Since the `:min_entities` is 2, it immediately creates 2 servers for the group, based on the image whose ID is in the variable `my_image`. When they are created, they are then added to the load balancer whose ID is `1234`, and receive requests on port 80.
 
@@ -339,6 +340,8 @@ Note that the `:server_name` parameter represents a base string to which Autosca
     as92e512fe-testgroup
     asedcf7587-testgroup
 
+**Note**: You will see need to add policies to trigger auto scaling operations. See [Policies Section](#policies) for more information.
+
 #### Parameters
 Parameter | Required | Default | Notes
 ---- | ---- | ---- | ----
@@ -355,7 +358,6 @@ Parameter | Required | Default | Notes
 **:personality** | no |  | Small text files that are created on the new servers. _Personality_ is discussed in the [Rackspace Cloud Servers documentation](http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html)
 **:networks** | no |  | Any array of networks to which you want to attach new servers. See the [Create Servers documentation](http://docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateServers.html) for standard network IDs.
 **:load_balancers** | no |  | Either a  hash of {:port, :loadBalancerId} or a `Fog::Rackspace::LoadBalancers::LoadBalancer` object.
-**scaling_policies** | no |  | You can define the scaling policies when you create the group, or add them later.
 
 ### Updating a Scaling Configuration Group
 
diff --git a/lib/fog/rackspace/docs/storage.md b/lib/fog/rackspace/docs/storage.md
index 44059fe..f78d396 100644
--- a/lib/fog/rackspace/docs/storage.md
+++ b/lib/fog/rackspace/docs/storage.md
@@ -93,10 +93,6 @@ The Storage service supports the following additional parameters:
 		<td>:rackspace_cdn_url</td>
 		<td>The endpoint for the CDN service. By default, Fog::Storage pick the appropriate endpoint for region. This option will typically only be used for Rackspace Private Cloud Access.</td>
 	</tr>
-		<tr>
-		<td>:chunk_size</td>
-		<td>The chunk size in bytes used for block transfers. By default, Fog uses 1 MB chunks.</td>
-	</tr>
 </table>
 
 
@@ -136,6 +132,10 @@ Fog supports passing additional connection parameters to its underlying HTTP lib
 		<td>:ssl_verify_peer</td>
 		<td>SSL verify peer (default: true)</td>
 	</tr>	
+    <tr>
+		<td>:chunk_size</td>
+		<td>The chunk size in bytes used for block transfers. By default, Fog uses 1 MB chunks.</td>
+	</tr>
 </table>
 
 
diff --git a/lib/fog/rackspace/errors.rb b/lib/fog/rackspace/errors.rb
index 5e140be..73e0c13 100644
--- a/lib/fog/rackspace/errors.rb
+++ b/lib/fog/rackspace/errors.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     module Errors
-
       def self.included(mod)
         mod.class_eval <<-'EOS', __FILE__, __LINE__
           class NotFound < Fog::Service::NotFound
diff --git a/lib/fog/rackspace/examples/auto_scale/add_policy.rb b/lib/fog/rackspace/examples/auto_scale/add_policy.rb
index c67680a..ff0fbc3 100644
--- a/lib/fog/rackspace/examples/auto_scale/add_policy.rb
+++ b/lib/fog/rackspace/examples/auto_scale/add_policy.rb
@@ -39,7 +39,6 @@ def select_group(groups)
   groups[select_str.to_i]
 end
 
-
 # create auto scaling service
 auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_username   => rackspace_username,
@@ -47,7 +46,6 @@ auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_region => :ord # Use Chicago Region
 })
 
-
 # retrieve list of scaling groups
 groups = auto_scale_service.groups
 
diff --git a/lib/fog/rackspace/examples/auto_scale/create_scaling_group.rb b/lib/fog/rackspace/examples/auto_scale/create_scaling_group.rb
index 9069ccc..a3c1ee6 100644
--- a/lib/fog/rackspace/examples/auto_scale/create_scaling_group.rb
+++ b/lib/fog/rackspace/examples/auto_scale/create_scaling_group.rb
@@ -33,7 +33,6 @@ def rackspace_api_key
   Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
 end
 
-
 def select_image(images)
   puts "\nSelect Image For Server:\n\n"
   images.each_with_index do |image, i|
@@ -44,7 +43,6 @@ def select_image(images)
   images[select_str.to_i]
 end
 
-
 # create auto scaling service
 auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_username   => rackspace_username,
@@ -52,7 +50,6 @@ auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_region => :ord # Use Chicago Region
 })
 
-
 # create Next Generation Cloud Server service to get list of flavors
 compute_service = Fog::Compute.new({
   :provider             => 'rackspace',
@@ -62,7 +59,6 @@ compute_service = Fog::Compute.new({
   :rackspace_region => :ord # Use Chicago Region
 })
 
-
 # prompt for scaling group name
 scaling_group_name = get_user_input "Enter name of scaling group"
 
diff --git a/lib/fog/rackspace/examples/auto_scale/delete_scaling_group.rb b/lib/fog/rackspace/examples/auto_scale/delete_scaling_group.rb
index ae6ef68..c6c7629 100644
--- a/lib/fog/rackspace/examples/auto_scale/delete_scaling_group.rb
+++ b/lib/fog/rackspace/examples/auto_scale/delete_scaling_group.rb
@@ -34,7 +34,6 @@ def select_group(groups)
   groups[select_str.to_i]
 end
 
-
 # create auto scaling service
 auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_username   => rackspace_username,
@@ -42,7 +41,6 @@ auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_region => :ord # Use Chicago Region
 })
 
-
 # retrieve list of scaling groups
 groups = auto_scale_service.groups
 
diff --git a/lib/fog/rackspace/examples/auto_scale/delete_webhook.rb b/lib/fog/rackspace/examples/auto_scale/delete_webhook.rb
index afba4bf..d03b638 100644
--- a/lib/fog/rackspace/examples/auto_scale/delete_webhook.rb
+++ b/lib/fog/rackspace/examples/auto_scale/delete_webhook.rb
@@ -9,7 +9,6 @@ def get_user_input(prompt)
   gets.chomp
 end
 
-
 # Use username defined in ~/.fog file, if absent prompt for username.
 # For more details on ~/.fog refer to http://fog.io/about/getting_started.html
 def rackspace_username
@@ -59,7 +58,6 @@ def select_webhook(webhooks)
   webhooks[select_str.to_i]
 end
 
-
 # create auto scaling service
 auto_scale_service = Fog::Rackspace::AutoScale.new({
   :rackspace_username   => rackspace_username,
diff --git a/lib/fog/rackspace/examples/block_storage/create_snapshot.rb b/lib/fog/rackspace/examples/block_storage/create_snapshot.rb
index f435de5..1408556 100644
--- a/lib/fog/rackspace/examples/block_storage/create_snapshot.rb
+++ b/lib/fog/rackspace/examples/block_storage/create_snapshot.rb
@@ -83,7 +83,6 @@ puts "* Volume must be unmounted from operating system before detaching. *"
 puts "* This script assumes volume has been unmounted.                   *"
 puts "********************************************************************\n\n"
 
-
 volume = cbs_service.volumes.get attachment.volume_id
 
 # The snapshot process requires all writes to be flushed to disk. This requires unmounting the file systems or detaching the volume.
@@ -115,4 +114,3 @@ rescue Fog::Errors::TimeoutError
   puts "The snapshot #{snapshot.display_name} is still being preformed and is taking longer to complete than expected."
   puts "You can continute to monitor the process through the web console at https://mycloud.rackspace.com/\n\n"
 end
-
diff --git a/lib/fog/rackspace/examples/compute_v2/bootstrap_server.rb b/lib/fog/rackspace/examples/compute_v2/bootstrap_server.rb
index 942d0d8..2a02ae1 100644
--- a/lib/fog/rackspace/examples/compute_v2/bootstrap_server.rb
+++ b/lib/fog/rackspace/examples/compute_v2/bootstrap_server.rb
@@ -94,5 +94,3 @@ rescue Fog::Errors::TimeoutError
 end
 
 puts "To delete the server please execute the delete_server.rb script\n\n"
-
-
diff --git a/lib/fog/rackspace/examples/compute_v2/create_image.rb b/lib/fog/rackspace/examples/compute_v2/create_image.rb
index 2c93e2d..77ba217 100644
--- a/lib/fog/rackspace/examples/compute_v2/create_image.rb
+++ b/lib/fog/rackspace/examples/compute_v2/create_image.rb
@@ -57,5 +57,3 @@ server.create_image image_name
 
 puts "\nImage #{image_name} is being created for server #{server.name}.\n\n"
 puts "To delete the image please execute the delete_image.rb script\n\n"
-
-
diff --git a/lib/fog/rackspace/examples/compute_v2/create_server.rb b/lib/fog/rackspace/examples/compute_v2/create_server.rb
index e6a2ba8..b300d2c 100644
--- a/lib/fog/rackspace/examples/compute_v2/create_server.rb
+++ b/lib/fog/rackspace/examples/compute_v2/create_server.rb
@@ -85,5 +85,3 @@ end
 
 puts "The #{server.username} password is #{server.password}\n\n"
 puts "To delete the server please execute the delete_server.rb script\n\n"
-
-
diff --git a/lib/fog/rackspace/examples/compute_v2/delete_image.rb b/lib/fog/rackspace/examples/compute_v2/delete_image.rb
index 0d9f3cc..912ef4b 100644
--- a/lib/fog/rackspace/examples/compute_v2/delete_image.rb
+++ b/lib/fog/rackspace/examples/compute_v2/delete_image.rb
@@ -58,4 +58,3 @@ image = select_image(snapshot_images)
 image.destroy
 
 puts "\n#{image.name} has been destroyed\n\n"
-
diff --git a/lib/fog/rackspace/examples/compute_v2/delete_server.rb b/lib/fog/rackspace/examples/compute_v2/delete_server.rb
index 0d21ab3..5e5eb0d 100644
--- a/lib/fog/rackspace/examples/compute_v2/delete_server.rb
+++ b/lib/fog/rackspace/examples/compute_v2/delete_server.rb
@@ -53,4 +53,3 @@ server = select_server(servers)
 server.destroy
 
 puts "\nServer #{server.name} has been destroyed\n"
-
diff --git a/lib/fog/rackspace/examples/compute_v2/server_attachments.rb b/lib/fog/rackspace/examples/compute_v2/server_attachments.rb
index 041e7ce..53e0de3 100644
--- a/lib/fog/rackspace/examples/compute_v2/server_attachments.rb
+++ b/lib/fog/rackspace/examples/compute_v2/server_attachments.rb
@@ -66,4 +66,3 @@ attachment = server.attach_volume volume
 
 puts "\nVolume #{volume.display_name} has been attached to #{server.name} on device #{attachment.device}\n\n"
 puts "To detach volume please execute the detach_volume.rb script\n\n"
-
diff --git a/lib/fog/rackspace/examples/compute_v2/server_metadata.rb b/lib/fog/rackspace/examples/compute_v2/server_metadata.rb
index a79deb0..03decf0 100644
--- a/lib/fog/rackspace/examples/compute_v2/server_metadata.rb
+++ b/lib/fog/rackspace/examples/compute_v2/server_metadata.rb
@@ -81,5 +81,3 @@ server.metadata.reload
 print_metadata(server)
 
 puts "To delete the server please execute the delete_server.rb script\n\n"
-
-
diff --git a/lib/fog/rackspace/examples/queues/delete_message.rb b/lib/fog/rackspace/examples/queues/delete_message.rb
index aa84c88..6fb7afd 100644
--- a/lib/fog/rackspace/examples/queues/delete_message.rb
+++ b/lib/fog/rackspace/examples/queues/delete_message.rb
@@ -34,7 +34,6 @@ def select_message(messages)
   messages[delete_str.to_i]
 end
 
-
 # Use username defined in ~/.fog file, if absent prompt for username.
 # For more details on ~/.fog refer to http://fog.io/about/getting_started.html
 def rackspace_username
diff --git a/lib/fog/rackspace/examples/storage/create_cdn_directory.rb b/lib/fog/rackspace/examples/storage/create_cdn_directory.rb
index 9cbd0e7..86e2aed 100644
--- a/lib/fog/rackspace/examples/storage/create_cdn_directory.rb
+++ b/lib/fog/rackspace/examples/storage/create_cdn_directory.rb
@@ -41,4 +41,3 @@ directory.reload
 
 puts "\nDirectory #{directory.key} was created."
 puts "To delete the container please execute the delete_directory.rb script\n\n"
-
diff --git a/lib/fog/rackspace/examples/storage/create_private_directory.rb b/lib/fog/rackspace/examples/storage/create_private_directory.rb
index 439f597..9ae7a1b 100644
--- a/lib/fog/rackspace/examples/storage/create_private_directory.rb
+++ b/lib/fog/rackspace/examples/storage/create_private_directory.rb
@@ -30,7 +30,6 @@ service = Fog::Storage.new({
   :rackspace_region => :ord #Use Chicago Region
   })
 
-
 # prompt for directory name
 directory_name = get_user_input "\nEnter name of directory to create"
 
@@ -42,5 +41,3 @@ directory.reload
 
 puts "\n Directory #{directory.key} was created."
 puts "To delete the container please execute the delete_directory.rb script\n\n"
-
-
diff --git a/lib/fog/rackspace/examples/storage/storage_metadata.rb b/lib/fog/rackspace/examples/storage/storage_metadata.rb
index 698867b..3b29a2b 100644
--- a/lib/fog/rackspace/examples/storage/storage_metadata.rb
+++ b/lib/fog/rackspace/examples/storage/storage_metadata.rb
@@ -32,7 +32,6 @@ service = Fog::Storage.new({
   :rackspace_region => :ord #Use Chicago Region
   })
 
-
 # create directory
 puts "Creating directory 'metadata-tester'"
 directory = service.directories.create :key => "metadata-tester"
@@ -75,8 +74,3 @@ file.save
 print_metadata file
 
 puts "To delete the directory and file please execute the delete_directory.rb script\n\n"
-
-
-
-
-
diff --git a/lib/fog/rackspace/examples/storage/upload_file.rb b/lib/fog/rackspace/examples/storage/upload_file.rb
index 6ccb8ba..b718816 100644
--- a/lib/fog/rackspace/examples/storage/upload_file.rb
+++ b/lib/fog/rackspace/examples/storage/upload_file.rb
@@ -42,4 +42,3 @@ file = directory.files.create :key => 'sample.txt', :body => File.open(upload_fi
 
 puts "You should be able to view this file via CDN at #{file.public_url}"
 puts "To delete the container and associated file please execute the delete_directory.rb script\n\n"
-
diff --git a/lib/fog/rackspace/examples/storage/upload_large_files.rb b/lib/fog/rackspace/examples/storage/upload_large_files.rb
index 29d5a69..52f9d59 100644
--- a/lib/fog/rackspace/examples/storage/upload_large_files.rb
+++ b/lib/fog/rackspace/examples/storage/upload_large_files.rb
@@ -49,7 +49,6 @@ service = Fog::Storage.new({
   :rackspace_region     => :ord
   })
 
-
 # retrieve directories with files
 directories = service.directories
 
@@ -64,7 +63,6 @@ File.open(file_name) do |f|
   num_segments = (f.stat.size / SEGMENT_LIMIT).round + 1
   puts "\nThis upload of '#{file_name}' will require #{num_segments} segment(s) and 1 manifest file\n"
 
-
   segment = 0
    until f.eof?
      segment += 1
diff --git a/lib/fog/rackspace/identity.rb b/lib/fog/rackspace/identity.rb
index cef5cce..ec86a5c 100644
--- a/lib/fog/rackspace/identity.rb
+++ b/lib/fog/rackspace/identity.rb
@@ -3,7 +3,6 @@ require 'fog/rackspace/core'
 module Fog
   module Rackspace
     class Identity < Fog::Service
-
       US_ENDPOINT = 'https://identity.api.rackspacecloud.com/v2.0'
       UK_ENDPOINT = 'https://lon.identity.api.rackspacecloud.com/v2.0'
 
diff --git a/lib/fog/rackspace/load_balancers.rb b/lib/fog/rackspace/load_balancers.rb
index 56ca430..8655656 100644
--- a/lib/fog/rackspace/load_balancers.rb
+++ b/lib/fog/rackspace/load_balancers.rb
@@ -76,9 +76,8 @@ module Fog
       request :get_stats
 
       module Shared
-
         def algorithms
-          list_algorithms.body['algorithms'].collect { |i| i['name'] }
+          list_algorithms.body['algorithms'].map { |i| i['name'] }
         end
 
         def protocols
@@ -88,7 +87,6 @@ module Fog
         def usage(options = {})
           get_usage(options).body
         end
-
       end
 
       class Mock < Fog::Rackspace::Service
@@ -99,7 +97,6 @@ module Fog
           @rackspace_username = options[:rackspace_username]
           @rackspace_auth_url = options[:rackspace_auth_url]
         end
-
       end
 
       class Real < Fog::Rackspace::Service
@@ -173,7 +170,7 @@ module Fog
               @rackspace_region = :lon
             else
               # we are actually using a custom endpoint
-              @rackspace_region = options[:rackspace_region] || :dfw
+              @rackspace_region = options[:rackspace_region]
             end
           else
             #if we are using auth1 and the endpoint is not set, default to DFW_ENDPOINT for historical reasons
@@ -188,10 +185,6 @@ module Fog
             regions = @identity_service.service_catalog.display_service_regions(service_name)
             Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid regions for :rackspace_region are #{regions}.")
           end
-
-          unless options[:rackspace_region]
-            Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires setting the :rackspace_region option")
-          end
         end
 
         def append_tenant_v1(credentials)
@@ -207,7 +200,6 @@ module Fog
           append_tenant_v1 credentials
           @auth_token = credentials['X-Auth-Token']
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/mock_data.rb b/lib/fog/rackspace/mock_data.rb
index 060a38f..c39f639 100644
--- a/lib/fog/rackspace/mock_data.rb
+++ b/lib/fog/rackspace/mock_data.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     module MockData
-
       NOT_FOUND_ID = "NOT-FOUND"
 
       def data
diff --git a/lib/fog/rackspace/models/auto_scale/group.rb b/lib/fog/rackspace/models/auto_scale/group.rb
index eb5ef72..595cabf 100644
--- a/lib/fog/rackspace/models/auto_scale/group.rb
+++ b/lib/fog/rackspace/models/auto_scale/group.rb
@@ -7,7 +7,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Group < Fog::Model
-
         # @!attribute [r] id
         # @return [String] The autoscale group's id
         identity :id
@@ -29,7 +28,7 @@ module Fog
         #
         # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getGroupConfig_v1.0__tenantId__groups__groupId__config_Configurations.html
         def group_config
-          if attributes[:group_config].nil?
+          if attributes[:group_config].nil? && persisted?
             data = service.get_group_config(identity)
             attributes[:group_config] = load_model('GroupConfig', data.body['groupConfiguration'])
           end
@@ -60,7 +59,7 @@ module Fog
         #
         # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getLaunchConfig_v1.0__tenantId__groups__groupId__launch_Configurations.html
         def launch_config
-          if attributes[:launch_config].nil?
+          if attributes[:launch_config].nil?  && persisted?
             data = service.get_launch_config(identity)
             attributes[:launch_config] = load_model('LaunchConfig', data.body['launchConfiguration'])
           end
@@ -86,7 +85,16 @@ module Fog
         #
         # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getPolicies_v1.0__tenantId__groups__groupId__policies_Policies.html
         def policies
-          @policies ||= load_model('Policies')
+          return @policies if @policies
+          if persisted?
+            @policies = load_model('Policies')
+          else
+            @policies = Fog::Rackspace::AutoScale::Policies.new(:service => service, :group => self)
+            @policies.clear
+          end
+          @policies
+          # return nil unless persisted?
+          # @policies ||= load_model('Policies')
         end
 
         # Creates group
@@ -200,7 +208,6 @@ module Fog
           end
           model
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/auto_scale/group_builder.rb b/lib/fog/rackspace/models/auto_scale/group_builder.rb
index 905cdd0..962b40b 100644
--- a/lib/fog/rackspace/models/auto_scale/group_builder.rb
+++ b/lib/fog/rackspace/models/auto_scale/group_builder.rb
@@ -7,7 +7,6 @@ module Fog
   module Rackspace
     class AutoScale
       class GroupBuilder
-
         class << self
           def build(service, attributes)
             service.groups.new :group_config => build_group_config(attributes), :launch_config => build_server_launch_config(attributes)
@@ -35,7 +34,7 @@ module Fog
             return nil unless attributes[:load_balancers]
 
             load_balancers = attributes[:load_balancers].is_a?(Array) ? attributes[:load_balancers] : [attributes[:load_balancers]]
-            load_balancers.collect do |obj|
+            load_balancers.map do |obj|
               obj.is_a?(Hash) ? obj : load_balancer_to_hash(obj)
             end
           end
@@ -61,6 +60,8 @@ module Fog
             }
 
             server_template["personality"] = attributes[:personality] if attributes[:personality]
+            server_template["user_data"] = [attributes[:user_data]].pack('m') if attributes[:user_data]
+            server_template["config_drive"] = 'true' if attributes[:config_drive]
             server_template["networks"] = networks_to_hash(attributes[:networks]) if attributes[:networks]
             server_template
           end
@@ -76,7 +77,7 @@ module Fog
           end
 
           def networks_to_hash(networks)
-            networks.collect {|n| {"uuid" => n}}
+            networks.map {|n| {"uuid" => n}}
           end
         end
       end
diff --git a/lib/fog/rackspace/models/auto_scale/group_config.rb b/lib/fog/rackspace/models/auto_scale/group_config.rb
index 88553fe..462fdcd 100644
--- a/lib/fog/rackspace/models/auto_scale/group_config.rb
+++ b/lib/fog/rackspace/models/auto_scale/group_config.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class AutoScale
       class GroupConfig < Fog::Model
-
         # @!attribute [r] group
         # @return [Fog::Rackspace::AutoScale::Group] The parent group
         attribute :group
@@ -40,7 +39,6 @@ module Fog
         #
         # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/PUT_putGroupConfig_v1.0__tenantId__groups__groupId__config_Configurations.html
         def update
-
           options = {}
           options['name'] = name unless name.nil?
           options['cooldown'] = cooldown unless cooldown.nil?
@@ -72,7 +70,6 @@ module Fog
             merge_attributes data.body['groupConfiguration']
           end
         end
-
       end
   	end
   end
diff --git a/lib/fog/rackspace/models/auto_scale/groups.rb b/lib/fog/rackspace/models/auto_scale/groups.rb
index 5fe9ea9..e4dfd07 100644
--- a/lib/fog/rackspace/models/auto_scale/groups.rb
+++ b/lib/fog/rackspace/models/auto_scale/groups.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Groups < Fog::Collection
-
         model Fog::Rackspace::AutoScale::Group
 
         # Returns list of autoscale groups
diff --git a/lib/fog/rackspace/models/auto_scale/launch_config.rb b/lib/fog/rackspace/models/auto_scale/launch_config.rb
index 23871d5..1275bd7 100644
--- a/lib/fog/rackspace/models/auto_scale/launch_config.rb
+++ b/lib/fog/rackspace/models/auto_scale/launch_config.rb
@@ -4,15 +4,14 @@ module Fog
   module Rackspace
     class AutoScale
       class LaunchConfig < Fog::Model
-
         # @!attribute [r] group
         # @return [Fog::Rackspace::AutoScale::Group] The parent group
         attribute :group
-      	
+
         # @!attribute [r] type
         # @return [Fog::Rackspace::AutoScale::Group] The type of operation (usually "launch_server")
         attribute :type
-      	
+
         # @!attribute [r] args
         # @return [Fog::Rackspace::AutoScale::Group] The arguments for the operation
         attribute :args
@@ -28,7 +27,6 @@ module Fog
         #
         # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/PUT_putLaunchConfig_v1.0__tenantId__groups__groupId__launch_Configurations.html
         def update
-
           options = {}
           options['type'] = type unless type.nil?
           options['args'] = args unless args.nil?
@@ -57,7 +55,6 @@ module Fog
             merge_attributes data.body['launchConfiguration']
           end
         end
-
       end
   	end
   end
diff --git a/lib/fog/rackspace/models/auto_scale/policies.rb b/lib/fog/rackspace/models/auto_scale/policies.rb
index 5f77f2b..ad066ba 100644
--- a/lib/fog/rackspace/models/auto_scale/policies.rb
+++ b/lib/fog/rackspace/models/auto_scale/policies.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Policies < Fog::Collection
-
         model Fog::Rackspace::AutoScale::Policy
 
         attr_accessor :group
@@ -60,7 +59,6 @@ module Fog
         def new(attributes = {})
           super({:group => group}.merge(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/auto_scale/policy.rb b/lib/fog/rackspace/models/auto_scale/policy.rb
index 56d8d62..5d96518 100644
--- a/lib/fog/rackspace/models/auto_scale/policy.rb
+++ b/lib/fog/rackspace/models/auto_scale/policy.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Policy < Fog::Model
-
         # @!attribute [r] id
         # @return [String] The policy id
         identity :id
@@ -215,7 +214,6 @@ module Fog
             :group  => group
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/auto_scale/webhook.rb b/lib/fog/rackspace/models/auto_scale/webhook.rb
index 8da6e53..87dd27a 100644
--- a/lib/fog/rackspace/models/auto_scale/webhook.rb
+++ b/lib/fog/rackspace/models/auto_scale/webhook.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Webhook < Fog::Model
-
         # @!attribute [r] id
         # @return [String] The webhook id
         identity :id
@@ -111,7 +110,6 @@ module Fog
           link = links.find { |l| l['rel'] == 'capability' }
           link['href'] rescue nil
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/auto_scale/webhooks.rb b/lib/fog/rackspace/models/auto_scale/webhooks.rb
index c1c1662..ee6b0a0 100644
--- a/lib/fog/rackspace/models/auto_scale/webhooks.rb
+++ b/lib/fog/rackspace/models/auto_scale/webhooks.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Webhooks < Fog::Collection
-
         model Fog::Rackspace::AutoScale::Webhook
 
         attr_accessor :group
diff --git a/lib/fog/rackspace/models/block_storage/snapshots.rb b/lib/fog/rackspace/models/block_storage/snapshots.rb
index a10c66b..d216d1c 100644
--- a/lib/fog/rackspace/models/block_storage/snapshots.rb
+++ b/lib/fog/rackspace/models/block_storage/snapshots.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Snapshots < Fog::Collection
-
         model Fog::Rackspace::BlockStorage::Snapshot
 
         # Returns list of snapshots
diff --git a/lib/fog/rackspace/models/block_storage/volume.rb b/lib/fog/rackspace/models/block_storage/volume.rb
index fd4896e..2e9cacc 100644
--- a/lib/fog/rackspace/models/block_storage/volume.rb
+++ b/lib/fog/rackspace/models/block_storage/volume.rb
@@ -48,6 +48,10 @@ module Fog
         # @return [String] region of the volume
         attribute :availability_zone
 
+        # @!attribute [rw] image_id
+        # @return [String] The ID of an image used to create a bootable volume.
+        attribute :image_id, :aliases => ['image', 'imageRef'], :squash => 'id'
+
         # Returns true if the volume is in a ready state
         # @return [Boolean] returns true if volume is in a ready state
         def ready?
@@ -70,7 +74,6 @@ module Fog
           service.snapshots.select { |s| s.volume_id == identity }
         end
 
-
         # Creates a snapshot from the current volume
         # @param [Hash] options
         # @option options [String] :display_name of snapshot
@@ -105,7 +108,8 @@ module Fog
             :display_description => display_description,
             :volume_type => volume_type,
             :availability_zone => availability_zone,
-            :snapshot_id => attributes[:snapshot_id]
+            :snapshot_id => attributes[:snapshot_id],
+            :image_id => attributes[:image_id]
           })
           merge_attributes(data.body['volume'])
           true
diff --git a/lib/fog/rackspace/models/block_storage/volume_type.rb b/lib/fog/rackspace/models/block_storage/volume_type.rb
index 731e0d1..84454c6 100644
--- a/lib/fog/rackspace/models/block_storage/volume_type.rb
+++ b/lib/fog/rackspace/models/block_storage/volume_type.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class VolumeType < Fog::Model
-
         # @!attribute [r] id
         # @return [String] The volume type id
         identity :id
diff --git a/lib/fog/rackspace/models/block_storage/volume_types.rb b/lib/fog/rackspace/models/block_storage/volume_types.rb
index 09f58c3..b15baa7 100644
--- a/lib/fog/rackspace/models/block_storage/volume_types.rb
+++ b/lib/fog/rackspace/models/block_storage/volume_types.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class VolumeTypes < Fog::Collection
-
         model Fog::Rackspace::BlockStorage::VolumeType
 
         # Returns list of volume types
diff --git a/lib/fog/rackspace/models/block_storage/volumes.rb b/lib/fog/rackspace/models/block_storage/volumes.rb
index 261091b..b1e5452 100644
--- a/lib/fog/rackspace/models/block_storage/volumes.rb
+++ b/lib/fog/rackspace/models/block_storage/volumes.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Volumes < Fog::Collection
-
         model Fog::Rackspace::BlockStorage::Volume
 
         # Returns list of volumes
diff --git a/lib/fog/rackspace/models/compute/flavor.rb b/lib/fog/rackspace/models/compute/flavor.rb
index 4972312..13c4906 100644
--- a/lib/fog/rackspace/models/compute/flavor.rb
+++ b/lib/fog/rackspace/models/compute/flavor.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Rackspace
-
       class Flavor < Fog::Model
-
         identity :id
 
         attribute :disk
@@ -38,9 +36,7 @@ module Fog
             2
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/compute/flavors.rb b/lib/fog/rackspace/models/compute/flavors.rb
index 301a0bc..590527d 100644
--- a/lib/fog/rackspace/models/compute/flavors.rb
+++ b/lib/fog/rackspace/models/compute/flavors.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/compute/flavor'
 module Fog
   module Compute
     class Rackspace
-
       class Flavors < Fog::Collection
-
         model Fog::Compute::Rackspace::Flavor
 
         def all
@@ -20,9 +18,7 @@ module Fog
         rescue Fog::Compute::Rackspace::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/compute/image.rb b/lib/fog/rackspace/models/compute/image.rb
index 1e423b8..89238f4 100644
--- a/lib/fog/rackspace/models/compute/image.rb
+++ b/lib/fog/rackspace/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Rackspace
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
@@ -40,9 +38,7 @@ module Fog
           merge_attributes(data.body['image'])
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/compute/images.rb b/lib/fog/rackspace/models/compute/images.rb
index e2c18cc..80e4c51 100644
--- a/lib/fog/rackspace/models/compute/images.rb
+++ b/lib/fog/rackspace/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/compute/image'
 module Fog
   module Compute
     class Rackspace
-
       class Images < Fog::Collection
-
         model Fog::Compute::Rackspace::Image
 
         attribute :server
@@ -27,9 +25,7 @@ module Fog
         rescue Fog::Compute::Rackspace::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/compute/server.rb b/lib/fog/rackspace/models/compute/server.rb
index 9bb4a5e..b4d9631 100644
--- a/lib/fog/rackspace/models/compute/server.rb
+++ b/lib/fog/rackspace/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Rackspace
-
       class Server < Fog::Compute::Server
-
         identity :id
 
         attribute :addresses
@@ -98,10 +96,7 @@ module Fog
         def adminPass=(new_admin_pass)
           @password = new_admin_pass
         end
-
       end
-
     end
   end
-
 end
diff --git a/lib/fog/rackspace/models/compute/servers.rb b/lib/fog/rackspace/models/compute/servers.rb
index 907fff4..b32968e 100644
--- a/lib/fog/rackspace/models/compute/servers.rb
+++ b/lib/fog/rackspace/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/compute/server'
 module Fog
   module Compute
     class Rackspace
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Rackspace::Server
 
         def all
@@ -28,9 +26,7 @@ module Fog
         rescue Fog::Compute::Rackspace::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/compute_v2/attachment.rb b/lib/fog/rackspace/models/compute_v2/attachment.rb
index 4bdb8ba..55e5171 100644
--- a/lib/fog/rackspace/models/compute_v2/attachment.rb
+++ b/lib/fog/rackspace/models/compute_v2/attachment.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Attachment < Fog::Model
-
         # @!attribute [r] server_id
         # @return [String] The server id
         attribute :server_id, :aliases => 'serverId'
@@ -50,9 +49,9 @@ module Fog
           service.delete_attachment(server_id, volume_id)
           true
         end
-        alias :detach :destroy
+        alias_method :detach, :destroy
 
-      private
+        private
         def server
           collection.server
         end
diff --git a/lib/fog/rackspace/models/compute_v2/attachments.rb b/lib/fog/rackspace/models/compute_v2/attachments.rb
index 9933533..afb03e4 100644
--- a/lib/fog/rackspace/models/compute_v2/attachments.rb
+++ b/lib/fog/rackspace/models/compute_v2/attachments.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Attachments < Fog::Collection
-
         model Fog::Compute::RackspaceV2::Attachment
 
         attr_accessor :server
diff --git a/lib/fog/rackspace/models/compute_v2/flavor.rb b/lib/fog/rackspace/models/compute_v2/flavor.rb
index 538a060..da38ee3 100644
--- a/lib/fog/rackspace/models/compute_v2/flavor.rb
+++ b/lib/fog/rackspace/models/compute_v2/flavor.rb
@@ -4,12 +4,10 @@ module Fog
   module Compute
     class RackspaceV2
       class Flavor < Fog::Model
-
         # @!attribute [r] id
         # @return [String] The flavor id
         identity :id
 
-
         # @!attribute [r] name
         # @return [String] flavor name
         attribute :name
diff --git a/lib/fog/rackspace/models/compute_v2/flavors.rb b/lib/fog/rackspace/models/compute_v2/flavors.rb
index 9c6f5a7..5991d42 100644
--- a/lib/fog/rackspace/models/compute_v2/flavors.rb
+++ b/lib/fog/rackspace/models/compute_v2/flavors.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Flavors < Fog::Collection
-
         model Fog::Compute::RackspaceV2::Flavor
 
         # Retrieves information for all available flavors
diff --git a/lib/fog/rackspace/models/compute_v2/image.rb b/lib/fog/rackspace/models/compute_v2/image.rb
index 74e98a2..d2f75b4 100644
--- a/lib/fog/rackspace/models/compute_v2/image.rb
+++ b/lib/fog/rackspace/models/compute_v2/image.rb
@@ -102,7 +102,6 @@ module Fog
           state == ready_state
         end
 
-
         # Destroy image
         # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
         # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
diff --git a/lib/fog/rackspace/models/compute_v2/images.rb b/lib/fog/rackspace/models/compute_v2/images.rb
index 9dcacf3..185c119 100644
--- a/lib/fog/rackspace/models/compute_v2/images.rb
+++ b/lib/fog/rackspace/models/compute_v2/images.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Images < Fog::Collection
-
         # @!attribute [rw] name
         # @return [String] Given a string value x, filters the list of images by image name.
         attribute :name
diff --git a/lib/fog/rackspace/models/compute_v2/key_pair.rb b/lib/fog/rackspace/models/compute_v2/key_pair.rb
index b004140..e6ec591 100644
--- a/lib/fog/rackspace/models/compute_v2/key_pair.rb
+++ b/lib/fog/rackspace/models/compute_v2/key_pair.rb
@@ -4,7 +4,6 @@ module Fog
   module Compute
     class RackspaceV2
       class KeyPair < Fog::Model
-
         # @!attribute [rw] name
         # @return [String] the keypair name
         identity  :name
@@ -49,7 +48,6 @@ module Fog
             service.delete_keypair(identity)
             true
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/compute_v2/key_pairs.rb b/lib/fog/rackspace/models/compute_v2/key_pairs.rb
index dd152ed..aba09ff 100644
--- a/lib/fog/rackspace/models/compute_v2/key_pairs.rb
+++ b/lib/fog/rackspace/models/compute_v2/key_pairs.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/compute_v2/key_pair'
 module Fog
   module Compute
     class RackspaceV2
-
       class KeyPairs < Fog::Collection
-
         model Fog::Compute::RackspaceV2::KeyPair
 
         # Fetch the list of known keypairs
@@ -36,7 +34,6 @@ module Fog
                 nil
             end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/compute_v2/meta_parent.rb b/lib/fog/rackspace/models/compute_v2/meta_parent.rb
index 4c996ab..8a37b1a 100644
--- a/lib/fog/rackspace/models/compute_v2/meta_parent.rb
+++ b/lib/fog/rackspace/models/compute_v2/meta_parent.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       module MetaParent
-
         # Parent of metadata
         # @return [#parent] parent of metadata
         def parent
@@ -35,7 +34,6 @@ module Fog
           metas.each { |meta| hash[meta.key] = meta.value }
           hash
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/compute_v2/metadata.rb b/lib/fog/rackspace/models/compute_v2/metadata.rb
index ac2d057..71adba4 100644
--- a/lib/fog/rackspace/models/compute_v2/metadata.rb
+++ b/lib/fog/rackspace/models/compute_v2/metadata.rb
@@ -7,9 +7,7 @@ require 'fog/rackspace/models/compute_v2/server'
 module Fog
   module Compute
     class RackspaceV2
-
       class Metadata < Fog::Collection
-
         model Fog::Compute::RackspaceV2::Metadatum
 
         include Fog::Compute::RackspaceV2::MetaParent
@@ -104,7 +102,6 @@ module Fog
           self.each { |datum| h[datum.key] = datum.value }
           h
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/compute_v2/metadatum.rb b/lib/fog/rackspace/models/compute_v2/metadatum.rb
index 3bd03c2..03ebf0a 100644
--- a/lib/fog/rackspace/models/compute_v2/metadatum.rb
+++ b/lib/fog/rackspace/models/compute_v2/metadatum.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Metadatum < Fog::Model
-
         include Fog::Compute::RackspaceV2::MetaParent
 
         identity :key
@@ -34,7 +33,6 @@ module Fog
           service.set_metadata_item(collection_name, parent.id, key, value)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/compute_v2/server.rb b/lib/fog/rackspace/models/compute_v2/server.rb
index a43cb17..6b84c1a 100644
--- a/lib/fog/rackspace/models/compute_v2/server.rb
+++ b/lib/fog/rackspace/models/compute_v2/server.rb
@@ -111,7 +111,6 @@ module Fog
         #              and so on, and enables you to manage the disk configuration.
         attribute :disk_config, :aliases => 'OS-DCF:diskConfig'
 
-
         # @!attribute [rw] config_drive_ext
         # @return [Boolean] whether a read-only configuration drive is attached
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/config_drive_ext.html
@@ -149,6 +148,16 @@ module Fog
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Images-d1e4435.html
         attribute :image_id, :aliases => 'image', :squash => 'id'
 
+        # @!attribute [w] boot_volume_id
+        # @return [String] The ID of a bootable volume from the BlockStorage service.
+        # @see http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot
+        attribute :boot_volume_id
+
+        # @!attribute [w] boot_image_id
+        # @return [String] The ID of an image to create a bootable volume from.
+        # @see http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot
+        attribute :boot_image_id
+
         # @!attribute [rw] password
         # @return [String] Password for system adminstrator account.
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Passwords-d1e2510.html
@@ -160,16 +169,15 @@ module Fog
         # @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
         attribute :key_name
 
-
         def initialize(attributes={})
           @service = attributes[:service]
           super
         end
 
-        alias :access_ipv4_address :ipv4_address
-        alias :access_ipv4_address= :ipv4_address=
-        alias :access_ipv6_address :ipv6_address
-        alias :access_ipv6_address= :ipv6_address=
+        alias_method :access_ipv4_address, :ipv4_address
+        alias_method :access_ipv4_address=, :ipv4_address=
+        alias_method :access_ipv6_address, :ipv6_address
+        alias_method :access_ipv6_address=, :ipv6_address=
 
         # Server metadata
         # @return [Fog::Compute::RackspaceV2::Metadata] metadata key value pairs.
@@ -223,7 +231,8 @@ module Fog
 
         # Creates server
         # * requires attributes: service:, :name, :image_id, and :flavor_id
-        # * optional attributes :disk_config, :metadata, :personality, :config_drive
+        # * optional attributes :disk_config, :metadata, :personality, :config_drive, :boot_volume_id, :boot_image_id
+        # * :image_id should be "" if :boot_volume_id or :boot_image_id are provided.
         # @return [Boolean] returns true if server is being created
         # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
         # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
@@ -253,10 +262,13 @@ module Fog
           modified_options[:config_drive] = config_drive unless config_drive.nil?
           modified_options[:user_data] = user_data_encoded unless user_data_encoded.nil?
           modified_options[:key_name] ||= attributes[:key_name]
+          modified_options[:boot_volume_id] ||= attributes[:boot_volume_id]
+          modified_options[:boot_image_id] ||= attributes[:boot_image_id]
 
           if modified_options[:networks]
             modified_options[:networks].map! { |id| { :uuid => id } }
           end
+
           data = service.create_server(name, image_id, flavor_id, 1, 1, modified_options)
           merge_attributes(data.body['server'])
           true
@@ -426,7 +438,6 @@ module Fog
           true
         end
 
-
         # Rebuild removes all data on the server and replaces it with the specified image. The id and all IP addresses remain the same.
         # @param [String] image_id image to use for rebuild
         # @return [Boolean] returns true if rebuild is in process
@@ -554,7 +565,7 @@ module Fog
         # @note Though Rackspace does not enforce complexity requirements for the password, the operating system might. If the password is not complex enough, the server might enter an ERROR state.
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Change_Password-d1e3234.html
         #
-        # * Status Transition:	
+        # * Status Transition:
         #   * ACTIVE -> PASSWORD -> ACTIVE
         #   * ACTIVE -> PASSWORD -> ERROR (on error)
         def change_admin_password(password)
@@ -570,6 +581,8 @@ module Fog
         def setup(credentials = {})
           requires :ssh_ip_address, :identity, :public_key, :username
 
+          retried_disconnect = false
+
           commands = [
             %{mkdir .ssh},
             %{echo "#{public_key}" >> ~/.ssh/authorized_keys},
@@ -585,6 +598,14 @@ module Fog
         rescue Errno::ECONNREFUSED
           sleep(1)
           retry
+        # Ubuntu 12.04 images seem to be disconnecting during the ssh setup process.
+        # This rescue block is an effort to address that issue.
+        rescue Net::SSH::Disconnect
+          unless retried_disconnect
+            retried_disconnect = true
+            sleep(1)
+            retry
+          end
         end
 
         def virtual_interfaces
diff --git a/lib/fog/rackspace/models/compute_v2/servers.rb b/lib/fog/rackspace/models/compute_v2/servers.rb
index 695f541..c8b8548 100644
--- a/lib/fog/rackspace/models/compute_v2/servers.rb
+++ b/lib/fog/rackspace/models/compute_v2/servers.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/compute_v2/server'
 module Fog
   module Compute
     class RackspaceV2
-
       class Servers < Fog::Collection
-
         model Fog::Compute::RackspaceV2::Server
 
         # Returns list of servers
diff --git a/lib/fog/rackspace/models/compute_v2/virtual_interface.rb b/lib/fog/rackspace/models/compute_v2/virtual_interface.rb
index f4bffb3..0854591 100644
--- a/lib/fog/rackspace/models/compute_v2/virtual_interface.rb
+++ b/lib/fog/rackspace/models/compute_v2/virtual_interface.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class RackspaceV2
       class VirtualInterface < Fog::Model
-
         # @!attribute [r] id
         # @return [String] The virtual interface id
         identity :id
@@ -80,7 +79,6 @@ module Fog
         def network_id
           attributes[:network].is_a?(Network) ? attributes[:network].id : attributes[:network]
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/databases/database.rb b/lib/fog/rackspace/models/databases/database.rb
index a9f277b..ad89a7e 100644
--- a/lib/fog/rackspace/models/databases/database.rb
+++ b/lib/fog/rackspace/models/databases/database.rb
@@ -21,6 +21,17 @@ module Fog
           true
         end
 
+        def grant_access_for(user)
+          requires :identity, :instance
+          service.grant_user_access(instance.identity, user, name)
+        end
+
+        def revoke_access_for(user)
+          requires :identity, :instance
+          service.revoke_user_access(instance.identity, user, name)
+        end
+
+
         private
 
         def instance
diff --git a/lib/fog/rackspace/models/databases/databases.rb b/lib/fog/rackspace/models/databases/databases.rb
index a3cc076..0c21ba5 100644
--- a/lib/fog/rackspace/models/databases/databases.rb
+++ b/lib/fog/rackspace/models/databases/databases.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Databases
       class Databases < Fog::Collection
-
         model Fog::Rackspace::Databases::Database
 
         attr_accessor :instance
diff --git a/lib/fog/rackspace/models/databases/flavors.rb b/lib/fog/rackspace/models/databases/flavors.rb
index 6cd9385..f53d7a2 100644
--- a/lib/fog/rackspace/models/databases/flavors.rb
+++ b/lib/fog/rackspace/models/databases/flavors.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Databases
       class Flavors < Fog::Collection
-
         model Fog::Rackspace::Databases::Flavor
 
         def all
diff --git a/lib/fog/rackspace/models/databases/instances.rb b/lib/fog/rackspace/models/databases/instances.rb
index 31a75d5..6bb9164 100644
--- a/lib/fog/rackspace/models/databases/instances.rb
+++ b/lib/fog/rackspace/models/databases/instances.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Databases
       class Instances < Fog::Collection
-
         model Fog::Rackspace::Databases::Instance
 
         def all
diff --git a/lib/fog/rackspace/models/databases/user.rb b/lib/fog/rackspace/models/databases/user.rb
index f467447..95ca05b 100644
--- a/lib/fog/rackspace/models/databases/user.rb
+++ b/lib/fog/rackspace/models/databases/user.rb
@@ -8,10 +8,11 @@ module Fog
 
         attribute :password
         attribute :databases
+        attribute :host
 
         def save
           requires :identity, :instance, :password
-          service.create_user(instance.identity, identity, password, :databases => databases)
+          service.create_user(instance.identity, identity, password, :databases => databases, :host => host)
           true
         end
 
diff --git a/lib/fog/rackspace/models/databases/users.rb b/lib/fog/rackspace/models/databases/users.rb
index ad37777..bfad020 100644
--- a/lib/fog/rackspace/models/databases/users.rb
+++ b/lib/fog/rackspace/models/databases/users.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Databases
       class Users < Fog::Collection
-
         model Fog::Rackspace::Databases::User
 
         attr_accessor :instance
diff --git a/lib/fog/rackspace/models/dns/callback.rb b/lib/fog/rackspace/models/dns/callback.rb
index 33c0c53..a0bfb28 100644
--- a/lib/fog/rackspace/models/dns/callback.rb
+++ b/lib/fog/rackspace/models/dns/callback.rb
@@ -1,9 +1,7 @@
 module Fog
   module DNS
     class Rackspace
-
       module Callback
-
         protected
 
         def wait_for_job(job_id, timeout=Fog.timeout, interval=1)
diff --git a/lib/fog/rackspace/models/dns/record.rb b/lib/fog/rackspace/models/dns/record.rb
index dafa462..ddd974c 100644
--- a/lib/fog/rackspace/models/dns/record.rb
+++ b/lib/fog/rackspace/models/dns/record.rb
@@ -5,7 +5,6 @@ require 'ipaddr'
 module Fog
   module DNS
     class Rackspace
-
       class Record < Fog::Model
         include Fog::DNS::Rackspace::Callback
         extend Fog::Deprecation
@@ -93,7 +92,6 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/dns/records.rb b/lib/fog/rackspace/models/dns/records.rb
index 5ce3f19..7a47ad7 100644
--- a/lib/fog/rackspace/models/dns/records.rb
+++ b/lib/fog/rackspace/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/dns/record'
 module Fog
   module DNS
     class Rackspace
-
       class Records < Fog::Collection
-
         attribute :zone
         attribute :total_entries, :aliases => 'totalEntries'
 
@@ -18,7 +16,7 @@ module Fog
           load(data.body['records'])
         end
 
-        alias :each_record_this_page :each
+        alias_method :each_record_this_page, :each
         def each
           requires :zone
 
diff --git a/lib/fog/rackspace/models/dns/zone.rb b/lib/fog/rackspace/models/dns/zone.rb
index a1a0c89..badb814 100644
--- a/lib/fog/rackspace/models/dns/zone.rb
+++ b/lib/fog/rackspace/models/dns/zone.rb
@@ -4,7 +4,6 @@ require 'fog/rackspace/models/dns/records'
 module Fog
   module DNS
     class Rackspace
-
       class Zone < Fog::Model
         include Fog::DNS::Rackspace::Callback
 
diff --git a/lib/fog/rackspace/models/dns/zones.rb b/lib/fog/rackspace/models/dns/zones.rb
index 59bc84d..e69d7df 100644
--- a/lib/fog/rackspace/models/dns/zones.rb
+++ b/lib/fog/rackspace/models/dns/zones.rb
@@ -5,7 +5,6 @@ module Fog
   module DNS
     class Rackspace
       class Zones < Fog::Collection
-
         attribute :total_entries, :aliases => "totalEntries"
 
         model Fog::DNS::Rackspace::Zone
@@ -23,7 +22,7 @@ module Fog
           load(body['domains'])
         end
 
-        alias :each_zone_this_page :each
+        alias_method :each_zone_this_page, :each
         def each
           return self unless block_given?
 
@@ -69,7 +68,6 @@ module Fog
           CGI.parse uri.query
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/identity/credentials.rb b/lib/fog/rackspace/models/identity/credentials.rb
index ebab09e..de8600f 100644
--- a/lib/fog/rackspace/models/identity/credentials.rb
+++ b/lib/fog/rackspace/models/identity/credentials.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Identity
       class Credentials < Fog::Collection
-
         model Fog::Rackspace::Identity::Credential
 
         attr_accessor :user
diff --git a/lib/fog/rackspace/models/identity/roles.rb b/lib/fog/rackspace/models/identity/roles.rb
index c433296..7274a06 100644
--- a/lib/fog/rackspace/models/identity/roles.rb
+++ b/lib/fog/rackspace/models/identity/roles.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Identity
       class Roles < Fog::Collection
-
         model Fog::Rackspace::Identity::Role
 
         attr_accessor :user
diff --git a/lib/fog/rackspace/models/identity/service_catalog.rb b/lib/fog/rackspace/models/identity/service_catalog.rb
index 0e54553..02b5775 100644
--- a/lib/fog/rackspace/models/identity/service_catalog.rb
+++ b/lib/fog/rackspace/models/identity/service_catalog.rb
@@ -12,7 +12,7 @@ module Fog
         end
 
         def services
-          catalog.collect {|s| s["name"]}
+          catalog.map {|s| s["name"]}
         end
 
         def get_endpoints(service_name, service_net=false)
@@ -22,10 +22,9 @@ module Fog
           h["endpoints"].select {|e| e[key]}
         end
 
-
         def display_service_regions(service_name, service_net=false)
           endpoints = get_endpoints(service_name, service_net)
-          regions = endpoints.collect do |e|
+          regions = endpoints.map do |e|
             e["region"] ? ":#{e["region"].downcase}" : ":global"
           end
           regions.join(", ")
@@ -79,7 +78,6 @@ module Fog
           return region.to_s.upcase if region.is_a? Symbol
           (region.nil? || region.empty?) ? "GLOBAL" : region.to_s.upcase
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/identity/tenants.rb b/lib/fog/rackspace/models/identity/tenants.rb
index 269de91..f68ad3a 100644
--- a/lib/fog/rackspace/models/identity/tenants.rb
+++ b/lib/fog/rackspace/models/identity/tenants.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Identity
       class Tenants < Fog::Collection
-
         model Fog::Rackspace::Identity::Tenant
 
         def all
diff --git a/lib/fog/rackspace/models/identity/users.rb b/lib/fog/rackspace/models/identity/users.rb
index 646dadf..7045820 100644
--- a/lib/fog/rackspace/models/identity/users.rb
+++ b/lib/fog/rackspace/models/identity/users.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Identity
       class Users < Fog::Collection
-
         model Fog::Rackspace::Identity::User
 
         def all
diff --git a/lib/fog/rackspace/models/load_balancers/access_rule.rb b/lib/fog/rackspace/models/load_balancers/access_rule.rb
index 34f86ae..415a1eb 100644
--- a/lib/fog/rackspace/models/load_balancers/access_rule.rb
+++ b/lib/fog/rackspace/models/load_balancers/access_rule.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class LoadBalancers
       class AccessRule < Fog::Model
-
         identity :id
 
         attribute :address
diff --git a/lib/fog/rackspace/models/load_balancers/load_balancer.rb b/lib/fog/rackspace/models/load_balancers/load_balancer.rb
index cca2b6a..b203cb6 100644
--- a/lib/fog/rackspace/models/load_balancers/load_balancer.rb
+++ b/lib/fog/rackspace/models/load_balancers/load_balancer.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class LoadBalancers
       class LoadBalancer < Fog::Model
-
         #States
         ACTIVE = 'ACTIVE'
         ERROR = 'ERROR'
@@ -28,6 +27,7 @@ module Fog
         attribute :state,               :aliases => 'status'
         attribute :timeout
         attribute :nodes
+        attribute :https_redirect,      :aliases => 'httpsRedirect'
 
         def initialize(attributes)
           #HACK - Since we are hacking how sub-collections work, we have to make sure the service is valid first.
@@ -37,11 +37,15 @@ module Fog
         end
 
         def access_rules
-          @access_rules ||= begin
-            Fog::Rackspace::LoadBalancers::AccessRules.new({
+          unless @access_rules
+            @access_rules = Fog::Rackspace::LoadBalancers::AccessRules.new({
               :service => service,
               :load_balancer => self})
+
+             # prevents loading access rules from non-existent load balancers
+            @access_rules.clear unless persisted?
           end
+          @access_rules
         end
 
         def access_rules=(new_access_rules=[])
@@ -49,17 +53,33 @@ module Fog
         end
 
         def nodes
-          @nodes ||= begin
-            Fog::Rackspace::LoadBalancers::Nodes.new({
-              :service => service,
-              :load_balancer => self})
+          if @nodes.nil?
+            @nodes = Fog::Rackspace::LoadBalancers::Nodes.new({
+                :service => service,
+                :load_balancer => self})
+
+            # prevents loading nodes from non-existent load balancers
+            @nodes.clear unless persisted?
           end
+          @nodes
         end
 
         def nodes=(new_nodes=[])
           nodes.load(new_nodes)
         end
 
+        def https_redirect
+          if @https_redirect.nil?
+            requires :identity
+            @https_redirect = begin
+              service.get_load_balancer(identity).body['loadBalancer']['httpsRedirect']
+            rescue => e
+              nil
+            end
+          end
+          @https_redirect
+        end
+
         def ssl_termination
           requires :identity
           ssl_termination = service.get_ssl_termination(identity).body['sslTermination']
@@ -78,11 +98,13 @@ module Fog
         end
 
         def virtual_ips
-          @virtual_ips ||= begin
-            Fog::Rackspace::LoadBalancers::VirtualIps.new({
+          if @virtual_ips.nil?
+            @virtual_ips = Fog::Rackspace::LoadBalancers::VirtualIps.new({
               :service => service,
               :load_balancer => self})
+            @virtual_ips.clear unless persisted?
           end
+          @virtual_ips
         end
 
         def virtual_ips=(new_virtual_ips=[])
@@ -217,44 +239,35 @@ module Fog
         end
 
         private
+
         def create
-          requires :name, :protocol, :port, :virtual_ips, :nodes
+          requires :name, :protocol, :virtual_ips
 
           options = {}
           options[:algorithm] = algorithm if algorithm
           options[:timeout] = timeout if timeout
 
-          data = service.create_load_balancer(name, protocol, port, virtual_ips_hash, nodes_hash, options)
+          data = service.create_load_balancer(name, protocol, port, virtual_ips, nodes, options)
           merge_attributes(data.body['loadBalancer'])
         end
 
         def update
-          requires :name, :protocol, :port, :algorithm, :timeout
+          requires :name, :protocol, :port, :algorithm, :timeout, :https_redirect
           options = {
             :name => name,
             :algorithm => algorithm,
             :protocol => protocol,
             :port => port,
-            :timeout => timeout }
+            :timeout => timeout,
+            :https_redirect => !!https_redirect
+          }
+
           service.update_load_balancer(identity, options)
 
-          #TODO - Should this bubble down to nodes? Without tracking changes this would be very inefficient.
+          # TODO - Should this bubble down to nodes? Without tracking changes this would be very inefficient.
           # For now, individual nodes will have to be saved individually after saving an LB
         end
 
-        def virtual_ips_hash
-          virtual_ips.collect do |virtual_ip|
-            { :type => virtual_ip.type }
-          end
-
-        end
-
-        def nodes_hash
-          nodes.collect do |node|
-            { :address => node.address, :port => node.port, :condition => node.condition, :weight => node.weight }
-          end
-        end
-
         def connection_logging=(new_value)
           if !new_value.nil? and new_value.is_a?(Hash)
             attributes[:connection_logging] = case new_value['enabled']
diff --git a/lib/fog/rackspace/models/load_balancers/load_balancers.rb b/lib/fog/rackspace/models/load_balancers/load_balancers.rb
index 21aad40..c6b0150 100644
--- a/lib/fog/rackspace/models/load_balancers/load_balancers.rb
+++ b/lib/fog/rackspace/models/load_balancers/load_balancers.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/load_balancers/load_balancer'
 module Fog
   module Rackspace
     class LoadBalancers
-
       class LoadBalancers < Fog::Collection
-
         model Fog::Rackspace::LoadBalancers::LoadBalancer
 
         def all
diff --git a/lib/fog/rackspace/models/load_balancers/node.rb b/lib/fog/rackspace/models/load_balancers/node.rb
index 9a77ef8..947df34 100644
--- a/lib/fog/rackspace/models/load_balancers/node.rb
+++ b/lib/fog/rackspace/models/load_balancers/node.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class LoadBalancers
       class Node < Fog::Model
-
         identity :id
 
         attribute :address
@@ -32,6 +31,7 @@ module Fog
         def load_balancer
           collection.load_balancer
         end
+
         def create
           requires :load_balancer, :address, :condition, :port
           options = {}
diff --git a/lib/fog/rackspace/models/load_balancers/virtual_ip.rb b/lib/fog/rackspace/models/load_balancers/virtual_ip.rb
index 94e14ec..68d0e04 100644
--- a/lib/fog/rackspace/models/load_balancers/virtual_ip.rb
+++ b/lib/fog/rackspace/models/load_balancers/virtual_ip.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class LoadBalancers
       class VirtualIp < Fog::Model
-
         identity :id
 
         attribute :address
diff --git a/lib/fog/rackspace/models/monitoring/agent_token.rb b/lib/fog/rackspace/models/monitoring/agent_token.rb
index f429bc3..9917e54 100644
--- a/lib/fog/rackspace/models/monitoring/agent_token.rb
+++ b/lib/fog/rackspace/models/monitoring/agent_token.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class AgentToken < Fog::Rackspace::Monitoring::Base
-
         identity :id
 
         attribute :label
@@ -33,7 +32,6 @@ module Fog
           requires :id
           service.delete_agent_token(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/agent_tokens.rb b/lib/fog/rackspace/models/monitoring/agent_tokens.rb
index a4f524f..fac2fcf 100644
--- a/lib/fog/rackspace/models/monitoring/agent_tokens.rb
+++ b/lib/fog/rackspace/models/monitoring/agent_tokens.rb
@@ -5,12 +5,14 @@ module Fog
   module Rackspace
     class Monitoring
       class AgentTokens < Fog::Collection
+        attribute :marker
 
         model Fog::Rackspace::Monitoring::AgentToken
 
         def all(options={})
           clear
           body = service.list_agent_tokens(options).body
+          self.marker = body['metadata']['next_marker']
 
           load(body['values'])
         end
@@ -21,7 +23,6 @@ module Fog
         rescue Fog::Rackspace::Monitoring::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/alarm.rb b/lib/fog/rackspace/models/monitoring/alarm.rb
index a59fa07..1079516 100644
--- a/lib/fog/rackspace/models/monitoring/alarm.rb
+++ b/lib/fog/rackspace/models/monitoring/alarm.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Alarm < Fog::Rackspace::Monitoring::Base
-
         identity :id
         attribute :entity, :aliases => 'entity_id'
         attribute :check, :aliases => 'check_id'
@@ -53,9 +52,7 @@ module Fog
           requires :id
           service.delete_alarm(entity.id, id)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/monitoring/alarm_example.rb b/lib/fog/rackspace/models/monitoring/alarm_example.rb
index a3f7b25..f01cca4 100644
--- a/lib/fog/rackspace/models/monitoring/alarm_example.rb
+++ b/lib/fog/rackspace/models/monitoring/alarm_example.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class AlarmExample < Fog::Rackspace::Monitoring::Base
-
         identity :id
 
         attribute :label
@@ -14,7 +13,6 @@ module Fog
         attribute :criteria
         attribute :fields
 
-
         attribute :bound_criteria
 
         def bound?
diff --git a/lib/fog/rackspace/models/monitoring/alarm_examples.rb b/lib/fog/rackspace/models/monitoring/alarm_examples.rb
index 3b879c1..1ab7d8d 100644
--- a/lib/fog/rackspace/models/monitoring/alarm_examples.rb
+++ b/lib/fog/rackspace/models/monitoring/alarm_examples.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class AlarmExamples < Fog::Collection
-
         model Fog::Rackspace::Monitoring::AlarmExample
 
         def all
@@ -24,7 +23,6 @@ module Fog
           data = service.evaluate_alarm_example(alarm_example_id, options).body
           new(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/alarms.rb b/lib/fog/rackspace/models/monitoring/alarms.rb
index ce14353..296575b 100644
--- a/lib/fog/rackspace/models/monitoring/alarms.rb
+++ b/lib/fog/rackspace/models/monitoring/alarms.rb
@@ -5,15 +5,17 @@ module Fog
   module Rackspace
     class Monitoring
       class Alarms < Fog::Collection
-
         attribute :entity
+        attribute :marker
 
         model Fog::Rackspace::Monitoring::Alarm
 
-        def all
+        def all(options={})
           requires :entity
-          data = service.list_alarms(entity.identity).body['values']
-          load(data)
+          data = service.list_alarms(entity.identity, options).body
+          self.marker = data['metadata']['next_marker']
+
+          load(data['values'])
         end
 
         def get(alarm_id)
@@ -33,7 +35,6 @@ module Fog
           requires :entity
           super({ :entity => entity }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/base.rb b/lib/fog/rackspace/models/monitoring/base.rb
index 0cb1668..011f3f1 100644
--- a/lib/fog/rackspace/models/monitoring/base.rb
+++ b/lib/fog/rackspace/models/monitoring/base.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Base < Fog::Model
-
         attribute :created_at
         attribute :updated_at
 
diff --git a/lib/fog/rackspace/models/monitoring/check.rb b/lib/fog/rackspace/models/monitoring/check.rb
index 6fdd707..0cdb045 100644
--- a/lib/fog/rackspace/models/monitoring/check.rb
+++ b/lib/fog/rackspace/models/monitoring/check.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Check < Fog::Rackspace::Monitoring::Base
-
         identity :id
         attribute :entity
 
@@ -67,9 +66,7 @@ module Fog
             )
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/monitoring/check_types.rb b/lib/fog/rackspace/models/monitoring/check_types.rb
index eab71e7..4551336 100644
--- a/lib/fog/rackspace/models/monitoring/check_types.rb
+++ b/lib/fog/rackspace/models/monitoring/check_types.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class CheckTypes < Fog::Collection
-
         model Fog::Rackspace::Monitoring::CheckType
 
         def all
@@ -16,7 +15,6 @@ module Fog
         def new(attributes = {})
           super({ }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/checks.rb b/lib/fog/rackspace/models/monitoring/checks.rb
index b55bb6e..1296db9 100644
--- a/lib/fog/rackspace/models/monitoring/checks.rb
+++ b/lib/fog/rackspace/models/monitoring/checks.rb
@@ -5,15 +5,17 @@ module Fog
   module Rackspace
     class Monitoring
       class Checks < Fog::Collection
-
         attribute :entity
+        attribute :marker
 
         model Fog::Rackspace::Monitoring::Check
 
-        def all
+        def all(options={})
           requires :entity
-          data = service.list_checks(entity.identity).body['values']
-          load(data)
+          data = service.list_checks(entity.identity, options).body
+          self.marker = data['metadata']['next_marker']
+
+          load(data['values'])
         end
 
         def get(check_id)
@@ -33,7 +35,6 @@ module Fog
           requires :entity unless attributes[:entity]
           super({ :entity => entity }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/data_points.rb b/lib/fog/rackspace/models/monitoring/data_points.rb
index 476b443..a236bd0 100644
--- a/lib/fog/rackspace/models/monitoring/data_points.rb
+++ b/lib/fog/rackspace/models/monitoring/data_points.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class DataPoints < Fog::Collection
-
         attribute :metric
 
         model Fog::Rackspace::Monitoring::DataPoint
@@ -42,7 +41,6 @@ module Fog
           requires :metric
           super({ :metric => metric }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/entities.rb b/lib/fog/rackspace/models/monitoring/entities.rb
index c990dfa..5805a24 100644
--- a/lib/fog/rackspace/models/monitoring/entities.rb
+++ b/lib/fog/rackspace/models/monitoring/entities.rb
@@ -6,7 +6,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Entities < Fog::Collection
-
         model Fog::Rackspace::Monitoring::Entity
 
         attribute :marker
@@ -27,7 +26,7 @@ module Fog
 
         def overview(options={})
           body = service.list_overview(options).body
-          marker = body['metadata']['next_marker']
+          self.marker = body['metadata']['next_marker']
 
           load_all(body['values'])
         end
diff --git a/lib/fog/rackspace/models/monitoring/entity.rb b/lib/fog/rackspace/models/monitoring/entity.rb
index 8966ce1..18ac4b5 100644
--- a/lib/fog/rackspace/models/monitoring/entity.rb
+++ b/lib/fog/rackspace/models/monitoring/entity.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Entity < Fog::Rackspace::Monitoring::Base
-
         identity :id
 
         attribute :label
@@ -57,7 +56,6 @@ module Fog
           requires :id
           service.delete_entity(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/metric.rb b/lib/fog/rackspace/models/monitoring/metric.rb
index ce24c82..055b53e 100644
--- a/lib/fog/rackspace/models/monitoring/metric.rb
+++ b/lib/fog/rackspace/models/monitoring/metric.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Metric < Fog::Rackspace::Monitoring::Base
-
         identity  :name
         attribute :check
 
@@ -17,9 +16,7 @@ module Fog
             )
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/monitoring/metrics.rb b/lib/fog/rackspace/models/monitoring/metrics.rb
index 8e33a35..66dc06f 100644
--- a/lib/fog/rackspace/models/monitoring/metrics.rb
+++ b/lib/fog/rackspace/models/monitoring/metrics.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Metrics < Fog::Collection
-
         attribute :check
 
         model Fog::Rackspace::Monitoring::Metric
@@ -20,7 +19,6 @@ module Fog
           requires :check
           super({ :check => check }.merge!(attributes))
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/notification.rb b/lib/fog/rackspace/models/monitoring/notification.rb
index 3ee89f1..94a975e 100644
--- a/lib/fog/rackspace/models/monitoring/notification.rb
+++ b/lib/fog/rackspace/models/monitoring/notification.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Notification < Fog::Rackspace::Monitoring::Base
-
         identity :id
 
         attribute :label
@@ -35,7 +34,6 @@ module Fog
           requires :id
           service.delete_notification(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/monitoring/notifications.rb b/lib/fog/rackspace/models/monitoring/notifications.rb
index 7e2297e..e12af0c 100644
--- a/lib/fog/rackspace/models/monitoring/notifications.rb
+++ b/lib/fog/rackspace/models/monitoring/notifications.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Notifications < Fog::Collection
-
         model Fog::Rackspace::Monitoring::Notification
 
         attribute :marker
@@ -23,7 +22,6 @@ module Fog
         rescue Fog::Rackspace::Monitoring::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/queues/claim.rb b/lib/fog/rackspace/models/queues/claim.rb
index 1e44030..d053600 100644
--- a/lib/fog/rackspace/models/queues/claim.rb
+++ b/lib/fog/rackspace/models/queues/claim.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class Queues
       class Claim < Fog::Model
-
         # @!attribute [r] identity
         # @return [String] The claim's id
         identity :identity
@@ -29,7 +28,7 @@ module Fog
         #   If limit is not specified, limit defaults to 10.
         attribute :messages
 
-        alias :id :identity
+        alias_method :id, :identity
 
         # Creates or updates a claim
         #
@@ -78,7 +77,7 @@ module Fog
               :client_id => service.client_id,
               :echo => true
             })
-          attributes[:messages] = messages.collect do |message|
+          attributes[:messages] = messages.map do |message|
             if message.instance_of? Fog::Rackspace::Queues::Message
               message.claim_id = self.id
               message
diff --git a/lib/fog/rackspace/models/queues/claims.rb b/lib/fog/rackspace/models/queues/claims.rb
index 83802b3..4c3960c 100644
--- a/lib/fog/rackspace/models/queues/claims.rb
+++ b/lib/fog/rackspace/models/queues/claims.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Queues
       class Claims < Fog::Collection
-
         model Fog::Rackspace::Queues::Claim
 
         # @!attribute [rw] queue
diff --git a/lib/fog/rackspace/models/queues/message.rb b/lib/fog/rackspace/models/queues/message.rb
index 9e6ca26..199240d 100644
--- a/lib/fog/rackspace/models/queues/message.rb
+++ b/lib/fog/rackspace/models/queues/message.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class Queues
       class Message < Fog::Model
-
         # @!attribute [r] age
         # @return [Integer] The number of seconds relative to the server's clock.
         attribute :age
@@ -35,7 +34,7 @@ module Fog
           match = href.match(/\A.*\/queues\/[a-zA-Z0-9_-]{0,64}\/messages\/(.+?)(?:\?|\z)/i)
           match ? match[1] : nil
         end
-        alias :id :identity
+        alias_method :id, :identity
 
         # Creates messages
         # Requires queue, client_id, body, and ttl attributes to be populated
diff --git a/lib/fog/rackspace/models/queues/messages.rb b/lib/fog/rackspace/models/queues/messages.rb
index 375e8fa..00dfb3f 100644
--- a/lib/fog/rackspace/models/queues/messages.rb
+++ b/lib/fog/rackspace/models/queues/messages.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Queues
       class Messages < Fog::Collection
-
         model Fog::Rackspace::Queues::Message
 
         # @!attribute [r] client_id
diff --git a/lib/fog/rackspace/models/queues/queue.rb b/lib/fog/rackspace/models/queues/queue.rb
index 7309110..4fbb23d 100644
--- a/lib/fog/rackspace/models/queues/queue.rb
+++ b/lib/fog/rackspace/models/queues/queue.rb
@@ -4,7 +4,6 @@ module Fog
   module Rackspace
     class Queues
       class Queue < Fog::Model
-
         # @!attribute [rw] name
         # @return [String] name of queue
         identity :name
diff --git a/lib/fog/rackspace/models/queues/queues.rb b/lib/fog/rackspace/models/queues/queues.rb
index 3b835ea..e17a9e6 100644
--- a/lib/fog/rackspace/models/queues/queues.rb
+++ b/lib/fog/rackspace/models/queues/queues.rb
@@ -5,7 +5,6 @@ module Fog
   module Rackspace
     class Queues
       class Queues < Fog::Collection
-
         model Fog::Rackspace::Queues::Queue
 
         # Returns list of queues
diff --git a/lib/fog/rackspace/models/storage/directories.rb b/lib/fog/rackspace/models/storage/directories.rb
index 91f6a3f..c65821b 100644
--- a/lib/fog/rackspace/models/storage/directories.rb
+++ b/lib/fog/rackspace/models/storage/directories.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/storage/directory'
 module Fog
   module Storage
     class Rackspace
-
       class Directories < Fog::Collection
-
         model Fog::Storage::Rackspace::Directory
 
         # Returns list of directories
@@ -58,9 +56,7 @@ module Fog
         rescue Fog::Storage::Rackspace::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/storage/directory.rb b/lib/fog/rackspace/models/storage/directory.rb
index b17742e..e41bef5 100644
--- a/lib/fog/rackspace/models/storage/directory.rb
+++ b/lib/fog/rackspace/models/storage/directory.rb
@@ -5,9 +5,7 @@ require 'fog/rackspace/models/storage/metadata'
 module Fog
   module Storage
     class Rackspace
-
       class Directory < Fog::Model
-
         # @!attribute [r] key
         # @return [String] The name of the directory
         identity  :key, :aliases => 'name'
diff --git a/lib/fog/rackspace/models/storage/file.rb b/lib/fog/rackspace/models/storage/file.rb
index b255b2d..bdc011d 100644
--- a/lib/fog/rackspace/models/storage/file.rb
+++ b/lib/fog/rackspace/models/storage/file.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Storage
     class Rackspace
-
       class File < Fog::Model
-
         # @!attribute [r] key
         # @return [String] The name of the file
         identity  :key,             :aliases => 'name'
@@ -178,7 +176,6 @@ module Fog
           directory.public?
         end
 
-
         # Get a url for file.
         #
         #     required attributes: key
@@ -284,7 +281,6 @@ module Fog
           merge_attributes(data.headers.reject {|key, value| ['Content-Length', 'Content-Type'].include?(key)})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/models/storage/files.rb b/lib/fog/rackspace/models/storage/files.rb
index fe0afe8..e97341d 100644
--- a/lib/fog/rackspace/models/storage/files.rb
+++ b/lib/fog/rackspace/models/storage/files.rb
@@ -4,9 +4,7 @@ require 'fog/rackspace/models/storage/file'
 module Fog
   module Storage
     class Rackspace
-
       class Files < Fog::Collection
-
         # @!attribute [rw] directory
         # @return [String] The name of the directory
         # @note Methods in this class require this attribute to be set
@@ -68,7 +66,7 @@ module Fog
         # @raise [Fog::Storage::Rackspace::InternalServerError] - HTTP 500
         # @raise [Fog::Storage::Rackspace::ServiceError]
         # @note This method retrieves files in pages. Page size is defined by the limit attribute
-        alias :each_file_this_page :each
+        alias_method :each_file_this_page, :each
         def each
           if !block_given?
             self
@@ -197,7 +195,6 @@ module Fog
           return nil unless path
           "#{path}/#{Fog::Rackspace.escape(key, '/')}"
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/models/storage/metadata.rb b/lib/fog/rackspace/models/storage/metadata.rb
index beb0f4a..c0c3ad6 100644
--- a/lib/fog/rackspace/models/storage/metadata.rb
+++ b/lib/fog/rackspace/models/storage/metadata.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Metadata
-
         OBJECT_META_PREFIX = "X-Object-Meta-"
         OBJECT_REMOVE_META_PREFIX = "X-Remove-Object-Meta-"
         CONTAINER_META_PREFIX = "X-Container-Meta-"
@@ -15,7 +13,6 @@ module Fog
         CONTAINER_KEY_REGEX = /^#{CONTAINER_META_PREFIX}(.*)/
         OBJECT_KEY_REGEX = /^#{OBJECT_META_PREFIX}(.*)/
 
-
         # @!attribute [rw] data
         # @return [Hash] underlying data store for metadata class
         attr_reader :data
@@ -33,7 +30,6 @@ module Fog
           @parent = parent
         end
 
-
         # Delete key value pair from metadata
         # @param [String] key to be deleted
         # @return [Object] returns value for key
@@ -56,6 +52,30 @@ module Fog
           headers
         end
 
+        # Retrieve specific value for key from Metadata.
+        # * If key is of type String, this method will return the value of the metadatum
+        # @param [#key] key
+        # @return [#value]
+        def [](key)
+          return nil unless key
+          @data[key.to_s] || @data[key.to_sym]
+        end
+
+        # Set value for key.
+        # * If key is of type String, this method will set/add the value to Metadata
+        # @param [#key] key
+        # @return [String]
+        def []=(key, value)
+          return nil unless key
+          if @data[key.to_s]
+            @data[key.to_s] = value
+          elsif @data[key.to_sym]
+            @data[key.to_sym] = value
+          else
+            @data[key] = value
+          end
+        end
+
         # Creates metadata object from Cloud File Headers
         # @param [Fog::Storage::Rackspace::Directory,Fog::Storage::Rackspace::File] parent object of the metadata
         # @param [Hash] headers Cloud File headers
@@ -130,18 +150,16 @@ module Fog
            return nil unless m && m[1]
 
            a = m[1].split('-')
-           a.collect!(&:downcase)
+           a.map!(&:downcase)
            str = a.join('_')
            str.to_sym
          end
 
         def to_header_key(key, value)
           prefix = value.nil? ?  remove_meta_prefix : meta_prefix
-          prefix + key.to_s.split(/[-_]/).collect(&:capitalize).join('-')
+          prefix + key.to_s.split(/[-_]/).map(&:capitalize).join('-')
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/monitoring.rb b/lib/fog/rackspace/monitoring.rb
index 1a0a77d..3ea3726 100644
--- a/lib/fog/rackspace/monitoring.rb
+++ b/lib/fog/rackspace/monitoring.rb
@@ -3,7 +3,6 @@ require 'fog/rackspace/core'
 # https://github.com/racker/rackspace-monitoring-rb
 # It has been heavily modified for import into Fog master.
 
-
 module Fog
   module Rackspace
     class Monitoring < Fog::Service
@@ -15,7 +14,6 @@ module Fog
       class Conflict < Fog::Rackspace::Errors::Conflict; end
       class ServiceUnavailable < Fog::Rackspace::Errors::ServiceUnavailable; end
 
-
       class BadRequest < Fog::Rackspace::Errors::BadRequest
         attr_reader :validation_errors
 
@@ -110,9 +108,7 @@ module Fog
       request      :list_monitoring_zones
       request      :get_monitoring_zone
 
-
       class Mock < Fog::Rackspace::Service
-
         def initialize(options={})
         end
 
diff --git a/lib/fog/rackspace/queues.rb b/lib/fog/rackspace/queues.rb
index 8efd6bd..1ae2075 100644
--- a/lib/fog/rackspace/queues.rb
+++ b/lib/fog/rackspace/queues.rb
@@ -17,7 +17,6 @@ module Fog
       recognizes :rackspace_queues_url
       recognizes :rackspace_queues_client_id
 
-
       model_path 'fog/rackspace/models/queues'
       model :queue
       collection :queues
@@ -48,13 +47,20 @@ module Fog
           @rackspace_username = options[:rackspace_username]
           @rackspace_queues_client_id = options[:rackspace_queues_client_id] || Fog::UUID.uuid
           @rackspace_auth_url = options[:rackspace_auth_url]
+          @rackspace_queues_url = options[:rackspace_queues_url]
           @rackspace_must_reauthenticate = false
           @connection_options = options[:connection_options] || {}
-          @rackspace_region = options[:rackspace_region] || :ord
+          @rackspace_region = options[:rackspace_region]
 
           unless v2_authentication?
             raise Fog::Errors::NotImplemented.new("V2 authentication required for Queues")
           end
+
+          unless @rackspace_region || @rackspace_queues_url
+            Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires settng the :rackspace_region option.")
+          end
+
+          @rackspace_region ||= :ord
         end
 
         def service_name
@@ -66,7 +72,7 @@ module Fog
         end
 
         def endpoint_uri(service_endpoint_url=nil)
-          @uri = super(@rackspace_endpoint || service_endpoint_url, :rackspace_queues_url)
+          @uri = super(@rackspace_queues_url || service_endpoint_url, :rackspace_queues_url)
         end
 
         def authenticate(options={})
@@ -395,7 +401,6 @@ module Fog
           raise ServiceError.slurp(error, self)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/create_group.rb b/lib/fog/rackspace/requests/auto_scale/create_group.rb
index 4964c5e..c263a37 100644
--- a/lib/fog/rackspace/requests/auto_scale/create_group.rb
+++ b/lib/fog/rackspace/requests/auto_scale/create_group.rb
@@ -2,9 +2,7 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def create_group(launch_config, group_config, policies)
-
           body = {
             'launchConfiguration' => launch_config,
             'groupConfiguration' => group_config,
@@ -22,7 +20,6 @@ module Fog
 
       class Mock
         def create_group(launch_config, group_config, policies)
-
           group_id = Fog::Rackspace::MockData.uuid
 
           # Construct group structure
diff --git a/lib/fog/rackspace/requests/auto_scale/create_policy.rb b/lib/fog/rackspace/requests/auto_scale/create_policy.rb
index c733866..ef35d0e 100644
--- a/lib/fog/rackspace/requests/auto_scale/create_policy.rb
+++ b/lib/fog/rackspace/requests/auto_scale/create_policy.rb
@@ -3,7 +3,6 @@ module Fog
     class AutoScale
       class Real
         def create_policy(group_id, options)
-
           data = [options]
 
           request(
@@ -17,7 +16,6 @@ module Fog
 
       class Mock
         def create_policy(group_id, options)
-
           group = self.data[:autoscale_groups][group_id]
 
           if group.nil?
@@ -37,7 +35,6 @@ module Fog
           body = [policy]
 
           response(:body => body)
-
         end
       end
     end
diff --git a/lib/fog/rackspace/requests/auto_scale/create_webhook.rb b/lib/fog/rackspace/requests/auto_scale/create_webhook.rb
index 388b908..817fab7 100644
--- a/lib/fog/rackspace/requests/auto_scale/create_webhook.rb
+++ b/lib/fog/rackspace/requests/auto_scale/create_webhook.rb
@@ -3,7 +3,6 @@ module Fog
     class AutoScale
       class Real
         def create_webhook(group_id, policy_id, options)
-
           body = [options]
 
           request(
@@ -17,13 +16,12 @@ module Fog
 
       class Mock
         def create_webhook(group_id, policy_id, options)
-
           group = self.data[:autoscale_groups][group_id]
           if group.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['scalingPolicies'].detect { |p| p["id"] == policy_id }
+          policy = group['scalingPolicies'].find { |p| p["id"] == policy_id }
           if policy.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
@@ -49,7 +47,6 @@ module Fog
 
           body = {'webhook' => webhook}
           response(:body => body)
-
         end
       end
     end
diff --git a/lib/fog/rackspace/requests/auto_scale/delete_group.rb b/lib/fog/rackspace/requests/auto_scale/delete_group.rb
index f5f073d..304c128 100644
--- a/lib/fog/rackspace/requests/auto_scale/delete_group.rb
+++ b/lib/fog/rackspace/requests/auto_scale/delete_group.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def delete_group(group_id)
           request(
           :expects => [204],
diff --git a/lib/fog/rackspace/requests/auto_scale/delete_policy.rb b/lib/fog/rackspace/requests/auto_scale/delete_policy.rb
index 914ab75..e15c3f1 100644
--- a/lib/fog/rackspace/requests/auto_scale/delete_policy.rb
+++ b/lib/fog/rackspace/requests/auto_scale/delete_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def delete_policy(group_id, policy_id)
           request(
             :expects => [204],
@@ -23,7 +22,6 @@ module Fog
           group['policies'].delete_if { |p| p['id'] == policy_id }
 
           response(:status => 204)
-
         end
       end
     end
diff --git a/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb b/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb
index d9beccb..3c39964 100644
--- a/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb
+++ b/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def delete_webhook(group_id, policy_id, webhook_id)
           request(
             :expects => [204],
@@ -19,7 +18,7 @@ module Fog
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['policies'].detect { |p| p["id"] == policy_id }
+          policy = group['policies'].find { |p| p["id"] == policy_id }
           if policy.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
diff --git a/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb b/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb
index 3bd34de..1721ee1 100644
--- a/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb
+++ b/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def execute_anonymous_webhook(capability_version, capability_hash)
           request(
             :expects => [202],
diff --git a/lib/fog/rackspace/requests/auto_scale/execute_policy.rb b/lib/fog/rackspace/requests/auto_scale/execute_policy.rb
index 876433b..3ec33a6 100644
--- a/lib/fog/rackspace/requests/auto_scale/execute_policy.rb
+++ b/lib/fog/rackspace/requests/auto_scale/execute_policy.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def execute_policy(group_id, policy_id)
           request(
             :expects => [202],
diff --git a/lib/fog/rackspace/requests/auto_scale/get_group.rb b/lib/fog/rackspace/requests/auto_scale/get_group.rb
index da94a86..d69c09b 100644
--- a/lib/fog/rackspace/requests/auto_scale/get_group.rb
+++ b/lib/fog/rackspace/requests/auto_scale/get_group.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class AutoScale
-
       class Real
-
         def get_group(group_id)
           request(
             :expects => [200],
@@ -23,7 +21,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/get_group_config.rb b/lib/fog/rackspace/requests/auto_scale/get_group_config.rb
index 468deeb..fcfa0fb 100644
--- a/lib/fog/rackspace/requests/auto_scale/get_group_config.rb
+++ b/lib/fog/rackspace/requests/auto_scale/get_group_config.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class AutoScale
-
       class Real
-
         def get_group_config(group_id)
           request(
             :expects => [200],
@@ -24,7 +22,6 @@ module Fog
           response(:body => {"groupConfiguration" => group['groupConfiguration']})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/get_group_state.rb b/lib/fog/rackspace/requests/auto_scale/get_group_state.rb
index 656f8c5..3fabd9b 100644
--- a/lib/fog/rackspace/requests/auto_scale/get_group_state.rb
+++ b/lib/fog/rackspace/requests/auto_scale/get_group_state.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class AutoScale
-
       class Real
-
         def get_group_state(group_id)
           request(
             :expects => [200],
@@ -15,7 +13,6 @@ module Fog
 
       class Mock
         def get_group_state(group_id)
-
           instance_id_1 = Fog::Rackspace::AutoScale::MockData.uuid
           instance_id_2 = Fog::Rackspace::AutoScale::MockData.uuid
 
@@ -56,7 +53,6 @@ module Fog
           response(:body => {'group' => state})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb b/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb
index 3ef10d2..e17cf1a 100644
--- a/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb
+++ b/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class AutoScale
-
       class Real
-
         def get_launch_config(group_id)
           request(
             :expects => [200],
@@ -24,7 +22,6 @@ module Fog
           response(:body => {"launchConfiguration" => group['launchConfiguration']})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/get_policy.rb b/lib/fog/rackspace/requests/auto_scale/get_policy.rb
index ba551d8..e635248 100644
--- a/lib/fog/rackspace/requests/auto_scale/get_policy.rb
+++ b/lib/fog/rackspace/requests/auto_scale/get_policy.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class AutoScale
-
       class Real
-
         def get_policy(group_id, policy_id)
           request(
             :expects => [200],
@@ -15,13 +13,12 @@ module Fog
 
       class Mock
         def get_policy(group_id, policy_id)
-
           group = self.data[:autoscale_groups][group_id]
           if group.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['scalingPolicies'].detect { |p| p["id"] == policy_id }
+          policy = group['scalingPolicies'].find { |p| p["id"] == policy_id }
           if policy.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
@@ -29,7 +26,6 @@ module Fog
           response(:body => {'policy' => policy})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/get_webhook.rb b/lib/fog/rackspace/requests/auto_scale/get_webhook.rb
index a1e3295..5660676 100644
--- a/lib/fog/rackspace/requests/auto_scale/get_webhook.rb
+++ b/lib/fog/rackspace/requests/auto_scale/get_webhook.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class AutoScale
-
       class Real
-
         def get_webhook(group_id, policy_id, webhook_id)
           request(
             :expects => [200],
@@ -20,12 +18,12 @@ module Fog
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['scalingPolicies'].detect { |p| p["id"] == policy_id }
+          policy = group['scalingPolicies'].find { |p| p["id"] == policy_id }
           if policy.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          webhook = policy['webhooks'].detect { |w| w['id'] == webhook_id }
+          webhook = policy['webhooks'].find { |w| w['id'] == webhook_id }
           if webhook.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
@@ -33,7 +31,6 @@ module Fog
           response(:body => {'webhook' => webhook})
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/auto_scale/list_groups.rb b/lib/fog/rackspace/requests/auto_scale/list_groups.rb
index e9c6e07..1eb9730 100644
--- a/lib/fog/rackspace/requests/auto_scale/list_groups.rb
+++ b/lib/fog/rackspace/requests/auto_scale/list_groups.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         # Retrieves a list of images
         # @return [Excon::Response] response:
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/auto_scale/list_policies.rb b/lib/fog/rackspace/requests/auto_scale/list_policies.rb
index 76eeee4..7b2b62a 100644
--- a/lib/fog/rackspace/requests/auto_scale/list_policies.rb
+++ b/lib/fog/rackspace/requests/auto_scale/list_policies.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def list_policies(group_id)
           request(
             :expects => [200],
diff --git a/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb b/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb
index 507657b..5fa7581 100644
--- a/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb
+++ b/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def list_webhooks(group_id, policy_id)
           request(
             :expects => [200],
@@ -14,13 +13,12 @@ module Fog
 
       class Mock
         def list_webhooks(group_id, policy_id)
-
           group = self.data[:autoscale_groups][group_id]
           if group.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['scalingPolicies'].detect { |p| p["id"] == policy_id }
+          policy = group['scalingPolicies'].find { |p| p["id"] == policy_id }
           if policy.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
diff --git a/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb b/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb
index c04f0c3..89700d2 100644
--- a/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb
+++ b/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def pause_group_state(group_id)
           Fog::Real.not_implemented
           # request(
diff --git a/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb b/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb
index adf345b..8ba670d 100644
--- a/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb
+++ b/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def resume_group_state(group_id)
           request(
             :expects => [204],
diff --git a/lib/fog/rackspace/requests/auto_scale/update_group_config.rb b/lib/fog/rackspace/requests/auto_scale/update_group_config.rb
index a7dd382..dfc76dd 100644
--- a/lib/fog/rackspace/requests/auto_scale/update_group_config.rb
+++ b/lib/fog/rackspace/requests/auto_scale/update_group_config.rb
@@ -2,9 +2,7 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def update_group_config(group_id, options)
-
           body = options
 
           request(
diff --git a/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb b/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb
index 4fd6f20..c77fe1f 100644
--- a/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb
+++ b/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb
@@ -2,9 +2,7 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def update_launch_config(group_id, options)
-
           body = options
 
           request(
diff --git a/lib/fog/rackspace/requests/auto_scale/update_policy.rb b/lib/fog/rackspace/requests/auto_scale/update_policy.rb
index 29fb9b5..05dee25 100644
--- a/lib/fog/rackspace/requests/auto_scale/update_policy.rb
+++ b/lib/fog/rackspace/requests/auto_scale/update_policy.rb
@@ -2,9 +2,7 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def update_policy(group_id, policy_id, options)
-
           request(
             :expects => [204],
             :method => 'PUT',
@@ -21,7 +19,7 @@ module Fog
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['scalingPolicies'].detect { |p| p["id"] == policy_id }
+          policy = group['scalingPolicies'].find { |p| p["id"] == policy_id }
 
           policy.merge(options)
 
diff --git a/lib/fog/rackspace/requests/auto_scale/update_webhook.rb b/lib/fog/rackspace/requests/auto_scale/update_webhook.rb
index 57c352c..05e143b 100644
--- a/lib/fog/rackspace/requests/auto_scale/update_webhook.rb
+++ b/lib/fog/rackspace/requests/auto_scale/update_webhook.rb
@@ -2,9 +2,7 @@ module Fog
   module Rackspace
     class AutoScale
       class Real
-
         def update_webhook(group_id, policy_id, webhook_id, options)
-
           body = options
 
           request(
@@ -23,12 +21,12 @@ module Fog
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          policy = group['scalingPolicies'].detect { |p| p["id"] == policy_id }
+          policy = group['scalingPolicies'].find { |p| p["id"] == policy_id }
           if policy.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
 
-          webhook = policy['webhooks'].detect { |w| w['id'] == webhook_id }
+          webhook = policy['webhooks'].find { |w| w['id'] == webhook_id }
           if webhook.nil?
             raise Fog::Rackspace::AutoScale::NotFound
           end
@@ -36,7 +34,6 @@ module Fog
           webhook.merge(options)
 
           response(:body => webhook)
-
         end
       end
     end
diff --git a/lib/fog/rackspace/requests/block_storage/create_snapshot.rb b/lib/fog/rackspace/requests/block_storage/create_snapshot.rb
index ecd520c..fc7972b 100644
--- a/lib/fog/rackspace/requests/block_storage/create_snapshot.rb
+++ b/lib/fog/rackspace/requests/block_storage/create_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Create a snapshot from a volume
         #
         # @param [String] volume_id Id of server to create image from
diff --git a/lib/fog/rackspace/requests/block_storage/create_volume.rb b/lib/fog/rackspace/requests/block_storage/create_volume.rb
index ffacdd0..5d04098 100644
--- a/lib/fog/rackspace/requests/block_storage/create_volume.rb
+++ b/lib/fog/rackspace/requests/block_storage/create_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Create volume
         #
         # @param [Integer] size size of volume in GB. Minimum size is 100
@@ -11,6 +10,8 @@ module Fog
         # @option options [String] :display_description display description for volume
         # @option options [String] :volume_type type of volume
         # @option options [String] :snapshot_id The optional snapshot from which to create a volume.
+        # @option options [String] :image_id The ID of an image from the compute service. If provided, a bootable volume will be
+        #    created.
         # @return [Excon::Response] response:
         #   * body [Hash]:
         #     * 'volume' [Hash]:
@@ -42,6 +43,7 @@ module Fog
           data['volume']['volume_type'] = options[:volume_type] unless options[:volume_type].nil?
           data['volume']['availability_zone'] = options[:availability_zone] unless options[:availability_zone].nil?
           data['volume']['snapshot_id'] = options[:snapshot_id] unless options[:snapshot_id].nil?
+          data['volume']['imageRef'] = options[:image_id] unless options[:image_id].nil?
 
           request(
             :body => Fog::JSON.encode(data),
@@ -81,6 +83,7 @@ module Fog
               snapshot = self.data[:snapshots][snapshot_id]
               volume.merge!("size" => snapshot["size"])
             end
+            volume["image_id"] = options[:image_id] if options[:image_id]
 
             self.data[:volumes][volume_id] = volume
 
diff --git a/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb b/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb
index f0e7ad0..4f2d970 100644
--- a/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb
+++ b/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Delete snapshot
         #
         # @param [String] snapshot_id Id of snapshot to delete
diff --git a/lib/fog/rackspace/requests/block_storage/delete_volume.rb b/lib/fog/rackspace/requests/block_storage/delete_volume.rb
index 472b42c..a06004b 100644
--- a/lib/fog/rackspace/requests/block_storage/delete_volume.rb
+++ b/lib/fog/rackspace/requests/block_storage/delete_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Delete volume
         #
         # @param [String] volume_id Id of volume to delete
diff --git a/lib/fog/rackspace/requests/block_storage/get_snapshot.rb b/lib/fog/rackspace/requests/block_storage/get_snapshot.rb
index acd41c0..2400740 100644
--- a/lib/fog/rackspace/requests/block_storage/get_snapshot.rb
+++ b/lib/fog/rackspace/requests/block_storage/get_snapshot.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Retrieves snapshot detail
         # @param [String] snapshot_id
         # @return [Excon::Response] response:
diff --git a/lib/fog/rackspace/requests/block_storage/get_volume.rb b/lib/fog/rackspace/requests/block_storage/get_volume.rb
index 643347c..c62498b 100644
--- a/lib/fog/rackspace/requests/block_storage/get_volume.rb
+++ b/lib/fog/rackspace/requests/block_storage/get_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Retrieves volume detail
         # @param [String] volume_id
         # @return [Excon::Response] response:
diff --git a/lib/fog/rackspace/requests/block_storage/get_volume_type.rb b/lib/fog/rackspace/requests/block_storage/get_volume_type.rb
index 675fb89..8caf874 100644
--- a/lib/fog/rackspace/requests/block_storage/get_volume_type.rb
+++ b/lib/fog/rackspace/requests/block_storage/get_volume_type.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Retrieves volume type detail
         # @param [String] volume_type_id
         # @return [Excon::Response] response:
diff --git a/lib/fog/rackspace/requests/block_storage/list_snapshots.rb b/lib/fog/rackspace/requests/block_storage/list_snapshots.rb
index 8cf4b63..b750af1 100644
--- a/lib/fog/rackspace/requests/block_storage/list_snapshots.rb
+++ b/lib/fog/rackspace/requests/block_storage/list_snapshots.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Retrieves list of snapshots
         # @return [Excon::Response] response:
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/block_storage/list_volume_types.rb b/lib/fog/rackspace/requests/block_storage/list_volume_types.rb
index d4285c5..47452b9 100644
--- a/lib/fog/rackspace/requests/block_storage/list_volume_types.rb
+++ b/lib/fog/rackspace/requests/block_storage/list_volume_types.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Retrieves list of volume types
         # @return [Excon::Response] response
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/block_storage/list_volumes.rb b/lib/fog/rackspace/requests/block_storage/list_volumes.rb
index 725fff8..3a38d3a 100644
--- a/lib/fog/rackspace/requests/block_storage/list_volumes.rb
+++ b/lib/fog/rackspace/requests/block_storage/list_volumes.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class BlockStorage
       class Real
-
         # Retrieves list of volumes
         # @return [Excon::Response] response:
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/cdn/delete_object.rb b/lib/fog/rackspace/requests/cdn/delete_object.rb
index b0a97f0..a30f02e 100644
--- a/lib/fog/rackspace/requests/cdn/delete_object.rb
+++ b/lib/fog/rackspace/requests/cdn/delete_object.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class Rackspace
       class Real
-
         # Delete an existing object
         #
         # ==== Parameters
@@ -23,7 +22,6 @@ module Fog
       end
 
       class Mock
-
         def delete_object(container, object)
           response = Excon::Response.new
           response.status = 204
diff --git a/lib/fog/rackspace/requests/cdn/get_containers.rb b/lib/fog/rackspace/requests/cdn/get_containers.rb
index 54960a7..7b7f4b0 100644
--- a/lib/fog/rackspace/requests/cdn/get_containers.rb
+++ b/lib/fog/rackspace/requests/cdn/get_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class Rackspace
       class Real
-
         # List existing cdn-enabled storage containers
         #
         # ==== Parameters
@@ -29,11 +28,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock
-
         def get_containers(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -64,7 +61,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/cdn/head_container.rb b/lib/fog/rackspace/requests/cdn/head_container.rb
index 9797bea..7bd7d7d 100644
--- a/lib/fog/rackspace/requests/cdn/head_container.rb
+++ b/lib/fog/rackspace/requests/cdn/head_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class Rackspace
       class Real
-
         # List cdn properties for a container
         #
         # ==== Parameters
@@ -31,11 +30,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock
-
         def head_container(container)
           raise Fog::Storage::Rackspace::NotFound.new "#{container} not found" unless container == 'fogcontainertests'
           response = Excon::Response.new
@@ -56,7 +53,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/cdn/post_container.rb b/lib/fog/rackspace/requests/cdn/post_container.rb
index 5f3dae4..c9b4adf 100644
--- a/lib/fog/rackspace/requests/cdn/post_container.rb
+++ b/lib/fog/rackspace/requests/cdn/post_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class Rackspace
       class Real
-
         # modify CDN properties for a container
         #
         # ==== Parameters
@@ -28,11 +27,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock
-
         def post_container(name, options = {})
           raise Fog::Storage::Rackspace::NotFound.new "#{name} not found" unless name == 'fogcontainertests'
           response = Excon::Response.new
@@ -50,7 +47,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/cdn/put_container.rb b/lib/fog/rackspace/requests/cdn/put_container.rb
index 65d4c24..28227e8 100644
--- a/lib/fog/rackspace/requests/cdn/put_container.rb
+++ b/lib/fog/rackspace/requests/cdn/put_container.rb
@@ -2,7 +2,6 @@ module Fog
   module CDN
     class Rackspace
       class Real
-
         # enable CDN for a container
         #
         # ==== Parameters
@@ -28,11 +27,9 @@ module Fog
           )
           response
         end
-
       end
 
       class Mock
-
         def put_container(name, options = {})
           response = Excon::Response.new
           response.status = 201
@@ -50,7 +47,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute/confirm_resized_server.rb b/lib/fog/rackspace/requests/compute/confirm_resized_server.rb
index 635b90d..d679ba2 100644
--- a/lib/fog/rackspace/requests/compute/confirm_resized_server.rb
+++ b/lib/fog/rackspace/requests/compute/confirm_resized_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Confirm resizing
         #
         # ==== Parameters
@@ -12,11 +11,9 @@ module Fog
           body = { 'confirmResize' => nil }
           server_action(server_id, body, 204)
         end
-
       end
 
       class Mock
-
         def confirm_resized_server(server_id)
           response = Excon::Response.new
           response.status = 204
@@ -27,7 +24,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/create_image.rb b/lib/fog/rackspace/requests/compute/create_image.rb
index c101344..e82cc5a 100644
--- a/lib/fog/rackspace/requests/compute/create_image.rb
+++ b/lib/fog/rackspace/requests/compute/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Create an image from a running server
         #
         # ==== Parameters
@@ -29,11 +28,9 @@ module Fog
             :path     => "images"
           )
         end
-
       end
 
       class Mock
-
         def create_image(server_id, options = {})
           response = Excon::Response.new
           response.status = 202
@@ -53,7 +50,6 @@ module Fog
           response.body = { 'image' => data.reject {|key, value| !['id', 'name', 'serverId', 'status', 'updated'].include?(key)} }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/create_server.rb b/lib/fog/rackspace/requests/compute/create_server.rb
index 6f73cca..02ae3c5 100644
--- a/lib/fog/rackspace/requests/compute/create_server.rb
+++ b/lib/fog/rackspace/requests/compute/create_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Create a new server
         #
         # ==== Parameters
@@ -62,11 +61,9 @@ module Fog
             :path     => 'servers.json'
           )
         end
-
       end
 
       class Mock
-
         def create_server(flavor_id, image_id, options = {})
           response = Excon::Response.new
           response.status = 202
@@ -87,7 +84,6 @@ module Fog
           response.body = { 'server' => data.merge({'adminPass' => 'password'}) }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/delete_image.rb b/lib/fog/rackspace/requests/compute/delete_image.rb
index 2ea4a45..52b60e5 100644
--- a/lib/fog/rackspace/requests/compute/delete_image.rb
+++ b/lib/fog/rackspace/requests/compute/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Delete an image
         #
         # ==== Parameters
@@ -15,14 +14,12 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_image(image_id)
           response = Excon::Response.new
-          if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
+          if image = list_images_detail.body['images'].find {|_| _['id'] == image_id}
             if image['status'] == 'SAVING'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -36,9 +33,7 @@ module Fog
             response.status = 400
             raise Fog::Compute::Rackspace::NotFound.new
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/delete_server.rb b/lib/fog/rackspace/requests/compute/delete_server.rb
index 64e0db0..9c45bc6 100644
--- a/lib/fog/rackspace/requests/compute/delete_server.rb
+++ b/lib/fog/rackspace/requests/compute/delete_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Delete an existing server
         #
         # ==== Parameters
@@ -15,14 +14,12 @@ module Fog
             :path   => "servers/#{server_id}"
           )
         end
-
       end
 
       class Mock
-
         def delete_server(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if server['status'] == 'BUILD'
               response.status = 409
               raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -36,7 +33,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/get_flavor_details.rb b/lib/fog/rackspace/requests/compute/get_flavor_details.rb
index b2f68b1..67e8112 100644
--- a/lib/fog/rackspace/requests/compute/get_flavor_details.rb
+++ b/lib/fog/rackspace/requests/compute/get_flavor_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Get details for flavor by id
         #
         # ==== Returns
@@ -19,11 +18,9 @@ module Fog
             :path     => "flavors/#{flavor_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_flavor_details(flavor_id)
           response = Excon::Response.new
           flavor = {
@@ -45,7 +42,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/get_image_details.rb b/lib/fog/rackspace/requests/compute/get_image_details.rb
index de4ec2d..b9fca41 100644
--- a/lib/fog/rackspace/requests/compute/get_image_details.rb
+++ b/lib/fog/rackspace/requests/compute/get_image_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Get details for image by id
         #
         # ==== Returns
@@ -20,7 +19,6 @@ module Fog
             :path     => "images/#{image_id}.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/get_server_details.rb b/lib/fog/rackspace/requests/compute/get_server_details.rb
index 6f0aaef..d1b1d3e 100644
--- a/lib/fog/rackspace/requests/compute/get_server_details.rb
+++ b/lib/fog/rackspace/requests/compute/get_server_details.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Get details about a server
         #
         # ==== Parameters
@@ -30,14 +29,12 @@ module Fog
             :path     => "servers/#{server_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def get_server_details(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'].to_s == server_id.to_s}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'].to_s == server_id.to_s}
             response.status = [200, 203][rand(1)]
             response.body = { 'server' => server }
             response
@@ -45,7 +42,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_addresses.rb b/lib/fog/rackspace/requests/compute/list_addresses.rb
index 3c313dc..101fc2b 100644
--- a/lib/fog/rackspace/requests/compute/list_addresses.rb
+++ b/lib/fog/rackspace/requests/compute/list_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all server addresses
         #
         # ==== Parameters
@@ -21,14 +20,12 @@ module Fog
             :path     => "servers/#{server_id}/ips.json"
           )
         end
-
       end
 
       class Mock
-
         def list_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'addresses' => server['addresses'] }
             response
@@ -36,7 +33,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_flavors.rb b/lib/fog/rackspace/requests/compute/list_flavors.rb
index e064ca8..bbc7e6f 100644
--- a/lib/fog/rackspace/requests/compute/list_flavors.rb
+++ b/lib/fog/rackspace/requests/compute/list_flavors.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all flavors (IDs and names only)
         #
         # ==== Returns
@@ -17,11 +16,9 @@ module Fog
             :path     => 'flavors.json'
           )
         end
-
       end
 
       class Mock
-
         def list_flavors
           response = Excon::Response.new
           response.status = 200
@@ -38,7 +35,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_flavors_detail.rb b/lib/fog/rackspace/requests/compute/list_flavors_detail.rb
index fbace8c..bb9ac2a 100644
--- a/lib/fog/rackspace/requests/compute/list_flavors_detail.rb
+++ b/lib/fog/rackspace/requests/compute/list_flavors_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all flavors
         #
         # ==== Returns
@@ -19,11 +18,9 @@ module Fog
             :path     => 'flavors/detail.json'
           )
         end
-
       end
 
       class Mock
-
         def list_flavors_detail
           response = Excon::Response.new
           response.status = 200
@@ -40,7 +37,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_images.rb b/lib/fog/rackspace/requests/compute/list_images.rb
index 7125add..f1ae8f5 100644
--- a/lib/fog/rackspace/requests/compute/list_images.rb
+++ b/lib/fog/rackspace/requests/compute/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all images (IDs and names only)
         #
         # ==== Returns
@@ -17,11 +16,9 @@ module Fog
             :path     => 'images.json'
           )
         end
-
       end
 
       class Mock
-
         def list_images
           response = Excon::Response.new
           data = list_images_detail.body['images']
@@ -33,7 +30,6 @@ module Fog
           response.body = { 'images' => images }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_images_detail.rb b/lib/fog/rackspace/requests/compute/list_images_detail.rb
index bed4ded..f3f12c1 100644
--- a/lib/fog/rackspace/requests/compute/list_images_detail.rb
+++ b/lib/fog/rackspace/requests/compute/list_images_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all images
         #
         # ==== Returns
@@ -20,11 +19,9 @@ module Fog
             :path     => 'images/detail.json'
           )
         end
-
       end
 
       class Mock
-
         def list_images_detail
           response = Excon::Response.new
 
@@ -42,7 +39,6 @@ module Fog
           response.body = { 'images' => images.map {|image| image.reject {|key, value| !['id', 'name', 'status', 'updated'].include?(key)}} }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_private_addresses.rb b/lib/fog/rackspace/requests/compute/list_private_addresses.rb
index 633104b..5875d87 100644
--- a/lib/fog/rackspace/requests/compute/list_private_addresses.rb
+++ b/lib/fog/rackspace/requests/compute/list_private_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List private server addresses
         #
         # ==== Parameters
@@ -19,14 +18,12 @@ module Fog
             :path     => "servers/#{server_id}/ips/private.json"
           )
         end
-
       end
 
       class Mock
-
         def list_private_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'private' => server['addresses']['private'] }
             response
@@ -34,7 +31,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_public_addresses.rb b/lib/fog/rackspace/requests/compute/list_public_addresses.rb
index 8a77505..36c7f1b 100644
--- a/lib/fog/rackspace/requests/compute/list_public_addresses.rb
+++ b/lib/fog/rackspace/requests/compute/list_public_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List public server addresses
         #
         # ==== Parameters
@@ -19,14 +18,12 @@ module Fog
             :path     => "servers/#{server_id}/ips/public.json"
           )
         end
-
       end
 
       class Mock
-
         def list_public_addresses(server_id)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             response.status = [200, 203][rand(1)]
             response.body = { 'public' => server['addresses']['public'] }
             response
@@ -34,7 +31,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_servers.rb b/lib/fog/rackspace/requests/compute/list_servers.rb
index 9c658b0..daff0d2 100644
--- a/lib/fog/rackspace/requests/compute/list_servers.rb
+++ b/lib/fog/rackspace/requests/compute/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all servers (IDs and names only)
         #
         # ==== Returns
@@ -18,11 +17,9 @@ module Fog
             :path     => 'servers.json'
           )
         end
-
       end
 
       class Mock
-
         def list_servers
           response = Excon::Response.new
           data = list_servers_detail.body['servers']
@@ -34,7 +31,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/list_servers_detail.rb b/lib/fog/rackspace/requests/compute/list_servers_detail.rb
index 449faf7..dbbd66f 100644
--- a/lib/fog/rackspace/requests/compute/list_servers_detail.rb
+++ b/lib/fog/rackspace/requests/compute/list_servers_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # List all servers details
         #
         # ==== Returns
@@ -27,11 +26,9 @@ module Fog
             :path     => 'servers/detail.json'
           )
         end
-
       end
 
       class Mock
-
         def list_servers_detail
           response = Excon::Response.new
 
@@ -49,7 +46,6 @@ module Fog
           response.body = { 'servers' => servers }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/reboot_server.rb b/lib/fog/rackspace/requests/compute/reboot_server.rb
index 49095b3..167df87 100644
--- a/lib/fog/rackspace/requests/compute/reboot_server.rb
+++ b/lib/fog/rackspace/requests/compute/reboot_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Reboot an existing server
         #
         # ==== Parameters
@@ -13,17 +12,14 @@ module Fog
           body = { 'reboot' => { 'type' => type }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def reboot_server(server_id, type = 'SOFT')
           response = Excon::Response.new
           response.status = 202
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/resize_server.rb b/lib/fog/rackspace/requests/compute/resize_server.rb
index 39b42bf..641fac7 100644
--- a/lib/fog/rackspace/requests/compute/resize_server.rb
+++ b/lib/fog/rackspace/requests/compute/resize_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Reboot an existing server
         #
         # ==== Parameters
@@ -13,11 +12,9 @@ module Fog
           body = { 'resize' => { 'flavorId' => flavor_id }}
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         # FIXME: should probably transition instead of skipping to VERIFY_RESIZE
         def resize_server(server_id, flavor_id)
           response = Excon::Response.new
@@ -32,7 +29,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/revert_resized_server.rb b/lib/fog/rackspace/requests/compute/revert_resized_server.rb
index 3c17e19..c735156 100644
--- a/lib/fog/rackspace/requests/compute/revert_resized_server.rb
+++ b/lib/fog/rackspace/requests/compute/revert_resized_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Revert resizing
         #
         # ==== Parameters
@@ -12,11 +11,9 @@ module Fog
           body = { 'revertResize' => nil }
           server_action(server_id, body)
         end
-
       end
 
       class Mock
-
         def revert_resized_server(server_id)
           response = Excon::Response.new
           response.status = 202
@@ -28,7 +25,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/server_action.rb b/lib/fog/rackspace/requests/compute/server_action.rb
index 60920f6..ba84f17 100644
--- a/lib/fog/rackspace/requests/compute/server_action.rb
+++ b/lib/fog/rackspace/requests/compute/server_action.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Reboot an existing server
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :path     => "servers/#{server_id}/action.json"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute/update_server.rb b/lib/fog/rackspace/requests/compute/update_server.rb
index 3ed7e2f..cb27503 100644
--- a/lib/fog/rackspace/requests/compute/update_server.rb
+++ b/lib/fog/rackspace/requests/compute/update_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Rackspace
       class Real
-
         # Update an existing server
         #
         # ==== Parameters
@@ -18,14 +17,12 @@ module Fog
             :path     => "servers/#{server_id}.json"
           )
         end
-
       end
 
       class Mock
-
         def update_server(server_id, options)
           response = Excon::Response.new
-          if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
+          if server = list_servers_detail.body['servers'].find {|_| _['id'] == server_id}
             if options['adminPass']
               server['adminPass'] = options['adminPass']
             end
@@ -38,7 +35,6 @@ module Fog
             raise Fog::Compute::Rackspace::NotFound
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute_v2/attach_volume.rb b/lib/fog/rackspace/requests/compute_v2/attach_volume.rb
index e06f82b..cf6c638 100644
--- a/lib/fog/rackspace/requests/compute_v2/attach_volume.rb
+++ b/lib/fog/rackspace/requests/compute_v2/attach_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # This operation attaches a volume to the specified server.
         # @param [String] server_id
         # @param [String] volume_id
diff --git a/lib/fog/rackspace/requests/compute_v2/change_server_password.rb b/lib/fog/rackspace/requests/compute_v2/change_server_password.rb
index d3f8f49..c16c41b 100644
--- a/lib/fog/rackspace/requests/compute_v2/change_server_password.rb
+++ b/lib/fog/rackspace/requests/compute_v2/change_server_password.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Changes server admin password
         # @param [String] server_id
         # @param [String] password
diff --git a/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb b/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb
index e0b03ee..2f5bab5 100644
--- a/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Confirm server resize operation
         # @param [String] server_id The id of the server to revert
         # @return [Excon::Response] response
diff --git a/lib/fog/rackspace/requests/compute_v2/create_image.rb b/lib/fog/rackspace/requests/compute_v2/create_image.rb
index 6d0e69d..c6e6b54 100644
--- a/lib/fog/rackspace/requests/compute_v2/create_image.rb
+++ b/lib/fog/rackspace/requests/compute_v2/create_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Create an image from a running server
         #
         # @param [String] server_id Id of server to create image from
diff --git a/lib/fog/rackspace/requests/compute_v2/create_keypair.rb b/lib/fog/rackspace/requests/compute_v2/create_keypair.rb
index 522e01e..e2dc349 100644
--- a/lib/fog/rackspace/requests/compute_v2/create_keypair.rb
+++ b/lib/fog/rackspace/requests/compute_v2/create_keypair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Request a new keypair to be created
         # @param [String] key_name: unique name of the keypair to create
         # @return  [Excon::Response] response :
@@ -58,7 +57,6 @@ module Fog
                       :body   => { 'keypair' => k } )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/create_server.rb b/lib/fog/rackspace/requests/compute_v2/create_server.rb
index 83fab7c..a048139 100644
--- a/lib/fog/rackspace/requests/compute_v2/create_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/create_server.rb
@@ -14,6 +14,12 @@ module Fog
         # @option options [Hash] personality Hash containing data to inject into the file system of the cloud server instance during server creation.
         # @option options [Boolean] config_drive whether to attach a read-only configuration drive
         # @option options [String] keypair  Name of the kay-pair to associate with this server.
+        # @option options [Array<Hash>] block_device_mapping A manually specified block device mapping to fully control the creation and
+        #   attachment of volumes to this server. Mutually exclusive with :volume_id or :volume_image_id. If provided, leave image_id
+        #   as "". See http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot for details.
+        # @option options [String] boot_volume_id Id of a pre-created bootable volume to use for this server. If provided, leave image_id as "".
+        # @option options [String] boot_image_id Id of an image to create a bootable volume from and attach to this server. If provided,
+        #   leave image_id as "".
         # @return [Excon::Response] response:
         #   * body [Hash]:
         #     * server [Hash]:
@@ -40,6 +46,7 @@ module Fog
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Metadata-d1e2529.html
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html
         # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#diskconfig_attribute
+        # @see http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot
         #
         # * State Transitions
         #   * BUILD -> ACTIVE
@@ -73,6 +80,42 @@ module Fog
 
           data['server']['key_name'] = options[:key_name] unless options[:key_name].nil?
 
+          if options[:block_device_mapping]
+            if options[:boot_volume_id]
+              Fog::Logger.warning("Manual :block_device_mapping overrides :boot_volume_id in #create_server!")
+            end
+
+            if options[:boot_image_id]
+              Fog::Logger.warning("Manual :block_device_mapping overrides :boot_image_id in #create_server!")
+            end
+
+            data['server']['block_device_mapping_v2'] = options[:block_device_mapping]
+          else
+            if options[:boot_volume_id]
+              if options[:boot_image_id]
+                Fog::Logger.warning(":boot_volume_id overrides :boot_image_id!")
+              end
+
+              data['server']['block_device_mapping_v2'] = [{
+                'boot_index' => '0',
+                'uuid' => options[:boot_volume_id],
+                'source_type' => 'volume',
+                'destination_type' => 'volume',
+                'volume_size' => 100
+              }]
+            end
+
+            if options[:boot_image_id]
+              data['server']['block_device_mapping_v2'] = [{
+                'boot_index' => '0',
+                'uuid' => options[:boot_image_id],
+                'source_type' => 'image',
+                'destination_type' => 'volume',
+                'volume_size' => 100
+              }]
+            end
+        end
+
           request(
             :body    => Fog::JSON.encode(data),
             :expects => [202],
diff --git a/lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb b/lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb
index a2d2f7f..4abaa45 100644
--- a/lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb
+++ b/lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Creates virtual interface for a server
         # @param [String] server_id The server id to create the virtual interface on
         # @param [String] network_id The network id to attach the virtual interface to
@@ -21,12 +20,11 @@ module Fog
           request(
             :expects => [200],
             :method => 'POST',
-            :path => "/servers/#{server_id}/os-virtual-interfacesv2",
+            :path => "servers/#{server_id}/os-virtual-interfacesv2",
             :body => Fog::JSON.encode(data)
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb b/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb
index 753111d..d6c1920 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Deletes a specified volume attachment from a specified server instance.
         # @param [String] server_id id of server containing volume to delete
         # @param [String] volume_id id of volume on server to delete
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_image.rb b/lib/fog/rackspace/requests/compute_v2/delete_image.rb
index d0bd076..2fbb614 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_image.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Delete an image
         # @param [String] image_id Id of image to delete
         # @return [Excon::Response] response
@@ -18,7 +17,6 @@ module Fog
             :path     => "images/#{image_id}"
           )
         end
-
       end
 
       class Mock
@@ -28,7 +26,6 @@ module Fog
           response.status = 202
           response.body = ""
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb b/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb
index 49806b9..475cc8d 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Delete the key specified with key_name
         # @param  [String] key_name name of the key to delete
         # @return [Excon::Response] response
@@ -30,7 +29,6 @@ module Fog
             end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb b/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb
index 907f421..f1f04e8 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Deletes a metadata item.
         # @param [String<images, servers>] collection type of metadata
         # @param [String] obj_id id of the object where the metadata is attached
@@ -17,7 +16,7 @@ module Fog
           request(
             :expects => 204,
             :method => 'DELETE',
-            :path => "/#{collection}/#{obj_id}/metadata/#{key}"
+            :path => "#{collection}/#{obj_id}/metadata/#{key}"
           )
         end
       end
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_network.rb b/lib/fog/rackspace/requests/compute_v2/delete_network.rb
index 694931d..e8dc63a 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_network.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_network.rb
@@ -9,7 +9,7 @@ module Fog
 
       class Mock
         def delete_network(id)
-          unless self.data[:networks].has_key?(id)
+          unless self.data[:networks].key?(id)
             raise Fog::Compute::RackspaceV2::NotFound
           end
 
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_server.rb b/lib/fog/rackspace/requests/compute_v2/delete_server.rb
index 2370aeb..e1ffa81 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Deletes a specified server instance from the system.
         # @param [String] server_id the id of the server to delete
         # @return [Excon::Response] response
diff --git a/lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb b/lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb
index 5887701..60d2364 100644
--- a/lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb
+++ b/lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Deletes virtual interface from server
         # @param [String] server_id The server id that contains the virtual interface
         # @param [String] interface_id The id of the virtual interface
@@ -15,11 +14,10 @@ module Fog
           request(
             :expects => [200],
             :method => 'DELETE',
-            :path => "/servers/#{server_id}/os-virtual-interfacesv2/#{interface_id}"
+            :path => "servers/#{server_id}/os-virtual-interfacesv2/#{interface_id}"
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/get_attachment.rb b/lib/fog/rackspace/requests/compute_v2/get_attachment.rb
index 8a51401..2d441ab 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_attachment.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_attachment.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves attachment
         # @param [String] server_id
         # @param [String] volume_id
@@ -29,7 +28,7 @@ module Fog
 
       class Mock
         def get_attachment(server_id, volume_id)
-          attachment = self.data[:volume_attachments].detect { |v| v["serverId"] == server_id && v["volumeId"] == volume_id }
+          attachment = self.data[:volume_attachments].find { |v| v["serverId"] == server_id && v["volumeId"] == volume_id }
 
           response(:body => {"volumeAttachment" => attachment})
         end
diff --git a/lib/fog/rackspace/requests/compute_v2/get_flavor.rb b/lib/fog/rackspace/requests/compute_v2/get_flavor.rb
index b038101..8baf7ca 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_flavor.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_flavor.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves flavor detail
         # @param [Sring] flavor_id
         # @return [Excon::Response] response:
@@ -24,7 +23,7 @@ module Fog
           request(
             :expects => [200, 203],
             :method => 'GET',
-            :path => "flavors/#{flavor_id}"
+            :path => "flavors/#{Fog::Rackspace.escape(flavor_id)}"
           )
         end
       end
diff --git a/lib/fog/rackspace/requests/compute_v2/get_image.rb b/lib/fog/rackspace/requests/compute_v2/get_image.rb
index 49f7859..159bfae 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_image.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_image.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves image detail
         # @param [String] image_id
         # @return [Excon::Response] response:
@@ -28,7 +27,7 @@ module Fog
           request(
             :expects => [200, 203],
             :method => 'GET',
-            :path => "images/#{image_id}"
+            :path => "images/#{Fog::Rackspace.escape(image_id)}"
           )
         end
       end
diff --git a/lib/fog/rackspace/requests/compute_v2/get_keypair.rb b/lib/fog/rackspace/requests/compute_v2/get_keypair.rb
index 2476525..3e76018 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_keypair.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_keypair.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retreive single keypair details
         # @param [String] key_name name of the key for which to request the details
         # @return  [Excon::Response] response :
@@ -35,7 +34,6 @@ module Fog
             response(:body => key, :status => 200)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb b/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb
index 8791af0..c5fbc69 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves single metadatum item by key.
         # @param [String<images, servers>] collection type of metadata
         # @param [String] obj_id id of the object where the metadata is attached
@@ -19,7 +18,7 @@ module Fog
           request(
             :expects => 200,
             :method => 'GET',
-            :path => "/#{collection}/#{obj_id}/metadata/#{key}"
+            :path => "#{collection}/#{obj_id}/metadata/#{key}"
           )
         end
       end
diff --git a/lib/fog/rackspace/requests/compute_v2/get_network.rb b/lib/fog/rackspace/requests/compute_v2/get_network.rb
index 4247015..acc0ff9 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_network.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_network.rb
@@ -9,7 +9,7 @@ module Fog
 
       class Mock
         def get_network(id)
-          unless self.data[:networks].has_key?(id)
+          unless self.data[:networks].key?(id)
             raise Fog::Compute::RackspaceV2::NotFound
           end
 
diff --git a/lib/fog/rackspace/requests/compute_v2/get_server.rb b/lib/fog/rackspace/requests/compute_v2/get_server.rb
index b35dcda..189a339 100644
--- a/lib/fog/rackspace/requests/compute_v2/get_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/get_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves server detail
         # @param [String] server_id
         # @return [Excon::Response] response:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_addresses.rb b/lib/fog/rackspace/requests/compute_v2/list_addresses.rb
index 8755147..40cd449 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_addresses.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_addresses.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Lists all networks and addresses associated with a specified server.
         # @param [String] server_id
         # @return [Excon::Response] response:
@@ -19,11 +18,9 @@ module Fog
             :path     => "/servers/#{server_id}/ips"
           )
         end
-
       end
 
       class Mock
-
         def list_addresses(server_id)
           raise Fog::Compute::RackspaceV2::NotFound.new if server_id == 0
           response        = Excon::Response.new
@@ -36,7 +33,6 @@ module Fog
           }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb b/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb
index a7b1f99..d5de018 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Lists all addresses associated with a specified server and network
         # @param [String] server_id
         # @param [String] network_id
@@ -26,11 +25,9 @@ module Fog
             :path     => "servers/#{server_id}/ips/#{network_id}"
           )
         end
-
       end
 
       class Mock
-
         RESPONSE_BODY = {
           "addresses" => {
             "public"=>[{"version"=>6, "addr"=>"2001:4800:7811:0513:0fe1:75e8:ff04:760b"}, {"version"=>4, "addr"=>"166.78.18.176"}],
@@ -45,7 +42,6 @@ module Fog
           response.body   = { network_id => RESPONSE_BODY["addresses"][network_id] }
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/compute_v2/list_attachments.rb b/lib/fog/rackspace/requests/compute_v2/list_attachments.rb
index 5ba2ce9..5ceeda3 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_attachments.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_attachments.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves list of attached volumes
         # @param [String] server_id
         # @return [Excon::Response] response:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_flavors.rb b/lib/fog/rackspace/requests/compute_v2/list_flavors.rb
index 5293d48..35b273c 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_flavors.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_flavors.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves a list of flavors
         # @return [Excon::Response] response:
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb b/lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb
index 198b7d4..3d87db0 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves a list of flavors
         # @return [Excon::Response] response:
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_images.rb b/lib/fog/rackspace/requests/compute_v2/list_images.rb
index d332bfc..14be0c4 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_images.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_images.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves a list of images
         # ==== Parameters
         # * options<~String>:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_images_detail.rb b/lib/fog/rackspace/requests/compute_v2/list_images_detail.rb
index 1fa7e07..a68e63d 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_images_detail.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_images_detail.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves a list of images
         # ==== Parameters
         # * options<~String>:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb b/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb
index 137f390..a7b6c00 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Returns a list of all key pairs associated with an account.
         # @return  [Excon::Response] response :
         #   * body [Hash]: -
@@ -20,7 +19,7 @@ module Fog
           request(
             :method   => 'GET',
             :expects  => 200,
-            :path     => '/os-keypairs'
+            :path     => 'os-keypairs'
           )
         end
       end
@@ -31,7 +30,6 @@ module Fog
                       :body   => { 'keypairs' => self.data[:keypairs] })
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/list_metadata.rb b/lib/fog/rackspace/requests/compute_v2/list_metadata.rb
index 484cffa..7f9587b 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_metadata.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves all metadata associated with a server or an image.
         # @param [String<images, servers>] collection type of metadata
         # @param [String] obj_id id of the object where the metadata is attached
@@ -18,7 +17,7 @@ module Fog
           request(
             :expects => [200, 203],
             :method => 'GET',
-            :path => "/#{collection}/#{obj_id}/metadata"
+            :path => "#{collection}/#{obj_id}/metadata"
           )
         end
       end
diff --git a/lib/fog/rackspace/requests/compute_v2/list_servers.rb b/lib/fog/rackspace/requests/compute_v2/list_servers.rb
index 61fc4be..5adfe18 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_servers.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_servers.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Retrieves list of servers
         # @return [Excon::Response] response:
         #   * body [Hash]:
diff --git a/lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb b/lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb
index 11b57be..e4e6c7b 100644
--- a/lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb
+++ b/lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Lists virtual interfaces for a server
         # @param [String] server_id
         # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
@@ -14,11 +13,10 @@ module Fog
           request(
             :expects => [200],
             :method => 'GET',
-            :path => "/servers/#{server_id}/os-virtual-interfacesv2"
+            :path => "servers/#{server_id}/os-virtual-interfacesv2"
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/compute_v2/reboot_server.rb b/lib/fog/rackspace/requests/compute_v2/reboot_server.rb
index 0c4aa6a..83a0796 100644
--- a/lib/fog/rackspace/requests/compute_v2/reboot_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/reboot_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Reboots server
         # @param [String] server_id
         # @param [String<SOFT,HARD>] type type of reboot
diff --git a/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb b/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb
index 79ba7d5..4b00a7c 100644
--- a/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # The rebuild operation removes all data on the server and replaces it with the specified image.
         # The serverRef and all IP addresses remain the same. If you specify name, metadata, accessIPv4,
         # or accessIPv6 in the rebuild request, new values replace existing values. Otherwise, these values do not change.
diff --git a/lib/fog/rackspace/requests/compute_v2/resize_server.rb b/lib/fog/rackspace/requests/compute_v2/resize_server.rb
index 945a3e0..db7fbdb 100644
--- a/lib/fog/rackspace/requests/compute_v2/resize_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/resize_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Reverts server resize operation
         # @param [String] server_id id of server to resize
         # @param [String] flavor_id id of the desired flavor
diff --git a/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb b/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb
index 717068c..32e35e0 100644
--- a/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Reverts server resize operation
         # @param [String] server_id
         # @return [Excon::Response] response
diff --git a/lib/fog/rackspace/requests/compute_v2/set_metadata.rb b/lib/fog/rackspace/requests/compute_v2/set_metadata.rb
index e02ae29..790a38d 100644
--- a/lib/fog/rackspace/requests/compute_v2/set_metadata.rb
+++ b/lib/fog/rackspace/requests/compute_v2/set_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Sets metadata associated with a server or an image.
         # @param [String<images, servers>] collection type of metadata
         # @param [String] obj_id id of the object where the metadata is attached
@@ -19,13 +18,12 @@ module Fog
           request(
             :expects => [200, 203],
             :method => 'PUT',
-            :path => "/#{collection}/#{obj_id}/metadata",
+            :path => "#{collection}/#{obj_id}/metadata",
             :body => Fog::JSON.encode('metadata' => metadata)
           )
         end
       end
 
-
       class Mock
         def set_metadata(collection, obj_id, metadata = {})
           raise Fog::Compute::RackspaceV2::NotFound if obj_id == 0
diff --git a/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb b/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb
index 4981123..f28b557 100644
--- a/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb
+++ b/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Sets a single metadatum item by key.
         # @param [String<images, servers>] collection type of metadata
         # @param [String] obj_id id of the object where the metadata is attached
@@ -20,7 +19,7 @@ module Fog
           request(
             :expects => 200,
             :method => 'PUT',
-            :path => "/#{collection}/#{obj_id}/metadata/#{key}",
+            :path => "#{collection}/#{obj_id}/metadata/#{key}",
             :body => Fog::JSON.encode('meta' => { key => value })
           )
         end
diff --git a/lib/fog/rackspace/requests/compute_v2/update_metadata.rb b/lib/fog/rackspace/requests/compute_v2/update_metadata.rb
index 338e0b9..a339253 100644
--- a/lib/fog/rackspace/requests/compute_v2/update_metadata.rb
+++ b/lib/fog/rackspace/requests/compute_v2/update_metadata.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Updates metadata items for a specified server or image.
         # @param [String<images, servers>] collection type of metadata
         # @param [String] obj_id id of the object where the metadata is attached
@@ -19,7 +18,7 @@ module Fog
           request(
             :expects => [200, 203],
             :method => 'POST',
-            :path => "/#{collection}/#{obj_id}/metadata",
+            :path => "#{collection}/#{obj_id}/metadata",
             :body => Fog::JSON.encode('metadata' => metadata)
           )
         end
diff --git a/lib/fog/rackspace/requests/compute_v2/update_server.rb b/lib/fog/rackspace/requests/compute_v2/update_server.rb
index a3d6ca1..d89b835 100644
--- a/lib/fog/rackspace/requests/compute_v2/update_server.rb
+++ b/lib/fog/rackspace/requests/compute_v2/update_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class RackspaceV2
       class Real
-
         # Update the editable attributes of a specified server.
         # @param [String] server_id
         # @param [Hash] options
diff --git a/lib/fog/rackspace/requests/databases/create_user.rb b/lib/fog/rackspace/requests/databases/create_user.rb
index d197a3e..dbc9997 100644
--- a/lib/fog/rackspace/requests/databases/create_user.rb
+++ b/lib/fog/rackspace/requests/databases/create_user.rb
@@ -7,7 +7,8 @@ module Fog
             'users' => [{
               'name' => name,
               'password' => password,
-              'databases' => options[:databases] || []
+              'databases' => options[:databases] || [],
+              'host' => options[:host] || '%'
             }]
           }
 
diff --git a/lib/fog/rackspace/requests/databases/grant_user_access.rb b/lib/fog/rackspace/requests/databases/grant_user_access.rb
new file mode 100644
index 0000000..c41c9f3
--- /dev/null
+++ b/lib/fog/rackspace/requests/databases/grant_user_access.rb
@@ -0,0 +1,32 @@
+module Fog
+  module Rackspace
+    class Databases
+      class Real
+        def grant_user_access(instance_id, user, *databases)
+          user =
+            if user.respond_to?(:name) && user.respond_to?(:host) 
+              host_str = 
+                if user.host && user.host != '' && user.host != '%'
+                  "@#{user.host}"
+                end.to_s
+              user.name + host_str
+            else
+              user
+            end
+
+          data = { :databases => [] }
+          databases.each do |db_name|
+            data[:databases] << { :name => db_name }
+          end
+
+          request(
+            :body => Fog::JSON.encode(data),
+            :expects => 202,
+            :method => 'PUT',
+            :path => "instances/#{instance_id}/users/#{user}/databases"
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/rackspace/requests/databases/revoke_user_access.rb b/lib/fog/rackspace/requests/databases/revoke_user_access.rb
new file mode 100644
index 0000000..4b07e5b
--- /dev/null
+++ b/lib/fog/rackspace/requests/databases/revoke_user_access.rb
@@ -0,0 +1,26 @@
+module Fog
+  module Rackspace
+    class Databases
+      class Real
+        def revoke_user_access(instance_id, user, database)
+          user =
+            if user.respond_to?(:name) && user.respond_to?(:host) 
+              host_str = 
+                if user.host && user.host != '' && user.host != '%'
+                  "@#{user.host}"
+                end.to_s
+              user.name + host_str
+            else
+              user
+            end
+
+          request(
+            :expects => 202,
+            :method => 'DELETE',
+            :path => "instances/#{instance_id}/users/#{user}/databases/#{database}"
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/rackspace/requests/dns/add_records.rb b/lib/fog/rackspace/requests/dns/add_records.rb
index e374afb..ca1ffb9 100644
--- a/lib/fog/rackspace/requests/dns/add_records.rb
+++ b/lib/fog/rackspace/requests/dns/add_records.rb
@@ -3,22 +3,21 @@ module Fog
     class Rackspace
       class Real
         def add_records(domain_id, records)
-
           validate_path_fragment :domain_id, domain_id
 
           data = {
-            'records' => records.collect do |record|
+            'records' => records.map do |record|
               record_data = {
                 'name' => record[:name],
                 'type' => record[:type],
                 'data' => record[:data]
               }
 
-              if record.has_key? :ttl
+              if record.key? :ttl
                 record_data['ttl'] = record[:ttl]
               end
 
-              if record.has_key? :priority
+              if record.key? :priority
                 record_data['priority'] = record[:priority]
               end
               record_data
diff --git a/lib/fog/rackspace/requests/dns/callback.rb b/lib/fog/rackspace/requests/dns/callback.rb
index d9107d5..b2f91d7 100644
--- a/lib/fog/rackspace/requests/dns/callback.rb
+++ b/lib/fog/rackspace/requests/dns/callback.rb
@@ -3,7 +3,6 @@ module Fog
     class Rackspace
       class Real
         def callback(job_id, show_details=true)
-
           validate_path_fragment :job_id, job_id
 
           request(
diff --git a/lib/fog/rackspace/requests/dns/create_domains.rb b/lib/fog/rackspace/requests/dns/create_domains.rb
index 04ab1af..8697be4 100644
--- a/lib/fog/rackspace/requests/dns/create_domains.rb
+++ b/lib/fog/rackspace/requests/dns/create_domains.rb
@@ -14,9 +14,9 @@ module Fog
                 'emailAddress' => domain[:email]
               }
 
-            if domain.has_key? :records
+            if domain.key? :records
               domain_data['recordsList'] = {
-                'records' => domain[:records].collect do |record|
+                'records' => domain[:records].map do |record|
                   record_data = {
                     'ttl' => record[:ttl],
                     'data' => record[:data],
@@ -24,7 +24,7 @@ module Fog
                     'type' => record[:type],
                   }
 
-                  if record.has_key? :priority
+                  if record.key? :priority
                     record_data.merge!({'priority' => record[:priority]})
                   else
                     record_data
diff --git a/lib/fog/rackspace/requests/dns/list_domain_details.rb b/lib/fog/rackspace/requests/dns/list_domain_details.rb
index ccf6652..a216295 100644
--- a/lib/fog/rackspace/requests/dns/list_domain_details.rb
+++ b/lib/fog/rackspace/requests/dns/list_domain_details.rb
@@ -3,16 +3,15 @@ module Fog
     class Rackspace
       class Real
         def list_domain_details(domain_id, options={})
-
           validate_path_fragment :domain_id, domain_id
 
           path = "domains/#{domain_id}"
           query_data = {}
 
-          if options.has_key? :show_records
+          if options.key? :show_records
             query_data['showRecords'] = options[:show_records]
           end
-          if options.has_key? :show_subdomains
+          if options.key? :show_subdomains
             query_data['showSubdomains'] = options[:show_subdomains]
           end
 
diff --git a/lib/fog/rackspace/requests/dns/list_domains.rb b/lib/fog/rackspace/requests/dns/list_domains.rb
index f9e2bc0..cb6cf36 100644
--- a/lib/fog/rackspace/requests/dns/list_domains.rb
+++ b/lib/fog/rackspace/requests/dns/list_domains.rb
@@ -3,7 +3,6 @@ module Fog
     class Rackspace
       class Real
         def list_domains(options={})
-
           path = 'domains'
           unless options.empty?
             path += "?#{array_to_query_string(options)}"
diff --git a/lib/fog/rackspace/requests/dns/list_record_details.rb b/lib/fog/rackspace/requests/dns/list_record_details.rb
index c4eb169..63b1b0b 100644
--- a/lib/fog/rackspace/requests/dns/list_record_details.rb
+++ b/lib/fog/rackspace/requests/dns/list_record_details.rb
@@ -3,7 +3,6 @@ module Fog
     class Rackspace
       class Real
         def list_record_details(domain_id, record_id)
-
           validate_path_fragment :domain_id, domain_id
           validate_path_fragment :record_id, record_id
 
diff --git a/lib/fog/rackspace/requests/dns/list_records.rb b/lib/fog/rackspace/requests/dns/list_records.rb
index 62083d2..593568f 100644
--- a/lib/fog/rackspace/requests/dns/list_records.rb
+++ b/lib/fog/rackspace/requests/dns/list_records.rb
@@ -3,7 +3,6 @@ module Fog
     class Rackspace
       class Real
         def list_records(domain_id, options={})
-
           validate_path_fragment :domain_id, domain_id
 
           path = "domains/#{domain_id}/records"
diff --git a/lib/fog/rackspace/requests/dns/list_subdomains.rb b/lib/fog/rackspace/requests/dns/list_subdomains.rb
index 3371ee1..88f227f 100644
--- a/lib/fog/rackspace/requests/dns/list_subdomains.rb
+++ b/lib/fog/rackspace/requests/dns/list_subdomains.rb
@@ -3,7 +3,6 @@ module Fog
     class Rackspace
       class Real
         def list_subdomains(domain_id, options={})
-
           validate_path_fragment :domain_id, domain_id
 
           path = "domains/#{domain_id}/subdomains"
diff --git a/lib/fog/rackspace/requests/dns/modify_domain.rb b/lib/fog/rackspace/requests/dns/modify_domain.rb
index f438bc4..ea3cdd8 100644
--- a/lib/fog/rackspace/requests/dns/modify_domain.rb
+++ b/lib/fog/rackspace/requests/dns/modify_domain.rb
@@ -3,19 +3,18 @@ module Fog
     class Rackspace
       class Real
         def modify_domain(domain_id, options={})
-
           validate_path_fragment :domain_id, domain_id
 
           path = "domains/#{domain_id}"
           data = {}
 
-          if options.has_key? :ttl
+          if options.key? :ttl
             data['ttl'] = options[:ttl]
           end
-          if options.has_key? :comment
+          if options.key? :comment
             data['comment'] = options[:comment]
           end
-          if options.has_key? :email
+          if options.key? :email
             data['emailAddress'] = options[:email]
           end
 
diff --git a/lib/fog/rackspace/requests/dns/modify_record.rb b/lib/fog/rackspace/requests/dns/modify_record.rb
index c12027b..e66b948 100644
--- a/lib/fog/rackspace/requests/dns/modify_record.rb
+++ b/lib/fog/rackspace/requests/dns/modify_record.rb
@@ -3,20 +3,19 @@ module Fog
     class Rackspace
       class Real
         def modify_record(domain_id, record_id, options={})
-
           validate_path_fragment :domain_id, domain_id
           validate_path_fragment :record_id, record_id
 
           path = "domains/#{domain_id}/records/#{record_id}"
           data = {}
 
-          if options.has_key? :ttl
+          if options.key? :ttl
             data['ttl'] = options[:ttl]
           end
-          if options.has_key? :name
+          if options.key? :name
             data['name'] = options[:name]
           end
-          if options.has_key? :data
+          if options.key? :data
             data['data'] = options[:data]
           end
 
diff --git a/lib/fog/rackspace/requests/dns/remove_domain.rb b/lib/fog/rackspace/requests/dns/remove_domain.rb
index 5484c84..9039abf 100644
--- a/lib/fog/rackspace/requests/dns/remove_domain.rb
+++ b/lib/fog/rackspace/requests/dns/remove_domain.rb
@@ -3,13 +3,12 @@ module Fog
     class Rackspace
       class Real
         def remove_domain(domain_id, options={})
-
           validate_path_fragment :domain_id, domain_id
 
           path = "domains/#{domain_id}"
           query_data = {}
 
-          if options.has_key? :delete_subdomains
+          if options.key? :delete_subdomains
             query_data['deleteSubdomains'] = options[:delete_subdomains].to_s
           end
 
diff --git a/lib/fog/rackspace/requests/dns/remove_domains.rb b/lib/fog/rackspace/requests/dns/remove_domains.rb
index 35e43ee..bc2c1ae 100644
--- a/lib/fog/rackspace/requests/dns/remove_domains.rb
+++ b/lib/fog/rackspace/requests/dns/remove_domains.rb
@@ -3,11 +3,10 @@ module Fog
     class Rackspace
       class Real
         def remove_domains(domain_ids, options={})
-
-          path = "domains?" + domain_ids.collect { |domain_id| "id=#{domain_id}" }.join('&')
+          path = "domains?" + domain_ids.map { |domain_id| "id=#{domain_id}" }.join('&')
           query_data = {}
 
-          if options.has_key? :delete_subdomains
+          if options.key? :delete_subdomains
             query_data['deleteSubdomains'] = options[:delete_subdomains]
           end
 
diff --git a/lib/fog/rackspace/requests/dns/remove_record.rb b/lib/fog/rackspace/requests/dns/remove_record.rb
index 42c3df8..650a240 100644
--- a/lib/fog/rackspace/requests/dns/remove_record.rb
+++ b/lib/fog/rackspace/requests/dns/remove_record.rb
@@ -3,7 +3,6 @@ module Fog
     class Rackspace
       class Real
         def remove_record(domain_id, record_id)
-
           validate_path_fragment :domain_id, domain_id
           validate_path_fragment :record_id, record_id
 
diff --git a/lib/fog/rackspace/requests/dns/remove_records.rb b/lib/fog/rackspace/requests/dns/remove_records.rb
index f1126f8..5651c26 100644
--- a/lib/fog/rackspace/requests/dns/remove_records.rb
+++ b/lib/fog/rackspace/requests/dns/remove_records.rb
@@ -3,10 +3,9 @@ module Fog
     class Rackspace
       class Real
         def remove_records(domain_id, record_ids)
-
           validate_path_fragment :domain_id, domain_id
 
-          path = "domains/#{domain_id}/records?" + record_ids.collect { |record_id| "id=#{record_id}" }.join('&')
+          path = "domains/#{domain_id}/records?" + record_ids.map { |record_id| "id=#{record_id}" }.join('&')
 
           request(
             :expects  => [202, 204],
diff --git a/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb b/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb
index 287f42b..c8ac4e4 100644
--- a/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb
+++ b/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb
@@ -2,19 +2,37 @@ module Fog
   module Rackspace
     class LoadBalancers
       class Real
-        def create_load_balancer(name, protocol, port, virtual_ips, nodes, options = {})
-          data = {
-            'loadBalancer' => {
-              'name' => name,
-              'port' => port,
-              'protocol' => protocol,
-              'virtualIps' => virtual_ips,
-              'nodes' => nodes
-            }
+
+        # Issue an asynchronous request to create a new Load Balancer.
+        #
+        # @param name [String] human-friendly identifier for the balancer that will be shown in
+        #   the web UI.
+        # @param protocol [String] well-known protocol describing the traffic to be load balanced.
+        # @param port [Integer] port for the balancer to listen on and balance to.
+        # @param virtual_ips [Array<Hash>] description of the kind of IP address to bind to, or id
+        #   of the existing virtual IP from another balancer. Examples: `{ 'type' => 'PUBLIC' }`,
+        #   `{ 'type' => 'PRIVATE' }`, `{ 'id' => 1234 }`
+        # @param nodes [Array<Hash>] collection of
+        # @option options [String] :algorithm balancing algorithm for the balancer to use.
+        #   See http://docs.rackspace.com/loadbalancers/api/v1.0/clb-devguide/content/Algorithms-d1e4367.html
+        # @option options [String] :timeout amount of time the load balancer will wait for a response
+        #   from a back-end node before terminating the connection. Defaults to 30 seconds, may be
+        #   increased to a maximum of 120 seconds.
+        #
+        def create_load_balancer(name, protocol, port = nil, virtual_ips = [{'type' => 'PUBLIC'}], nodes = nil, options = {})
+          lb_data = {
+            'name' => name,
+            'protocol' => protocol,
+            'virtualIps' => virtual_ips
           }
 
-          data['loadBalancer']['algorithm'] = options[:algorithm] if options.has_key? :algorithm
-          data['loadBalancer']['timeout'] = options[:timeout] if options.has_key? :timeout
+          lb_data['nodes'] = nodes if nodes && !nodes.empty?
+          lb_data['port'] = port if port
+          lb_data['algorithm'] = options[:algorithm] if options.key? :algorithm
+          lb_data['timeout'] = options[:timeout] if options.key? :timeout
+          lb_data['httpsRedirect'] = options[:https_redirect] if options.key? :https_redirect
+
+          data = { 'loadBalancer' => lb_data }
 
           request(
             :body     => Fog::JSON.encode(data),
@@ -23,15 +41,66 @@ module Fog
             :path     => 'loadbalancers.json'
           )
         end
+
       end
 
       class Mock
         def create_load_balancer(name, protocol, port, virtual_ips, nodes, options = {})
-          data = {"loadBalancer"=>{"name"=>name, "id"=>uniq_id, "protocol"=>protocol, "port"=>port, "algorithm"=>"RANDOM", "status"=>"BUILD",
-                                   "cluster"=>{"name"=>"my-cluster.rackspace.net"}, "timeout"=>30, "created"=>{"time"=> MockData.zulu_time},
-                                   "updated"=>{"time"=>MockData.zulu_time }, "halfClosed"=>false, "connectionLogging"=>{"enabled"=>false}, "contentCaching"=>{"enabled"=>false}}}
-          data["virtual_ips"] = virtual_ips.collect {|n| {"virtualIps"=>[{"address"=> MockData.ipv4_address, "id"=>uniq_id, "type"=>n[:type], "ipVersion"=>"IPV4"}, {"address"=> MockData.ipv6_address, "id"=> Fog::Mock.random_numbers(4), "type"=>"PUBLIC", "ipVersion"=>"IPV6"}], "sourceAddresses"=>{"ipv6Public"=> MockData.ipv6_address, "ipv4Servicenet"=>MockData.ipv4_address, "ipv4Public"=>MockData.ipv4_address}}
-          data["nodes"] = nodes.collect {|n| {"address"=>n[:address], "id"=>uniq_id, "type"=>"PRIMARY", "port"=>n[:port], "status"=>"ONLINE", "condition"=>"ENABLED", "weight"=>1}}}
+          data = {
+            "loadBalancer" => {
+              "name" => name,
+              "id" => Fog::Mock.random_numbers(6),
+              "protocol" => protocol,
+              "port" => port,
+              "algorithm" => "RANDOM",
+              "status" => "BUILD",
+              "cluster" => { "name" => "my-cluster.rackspace.net" },
+              "timeout" => 30,
+              "created" => {"time" => MockData.zulu_time },
+              "updated" => {"time" => MockData.zulu_time },
+              "halfClosed" => false,
+              "connectionLogging" => { "enabled" => false },
+              "contentCaching" => { "enabled" => false },
+              "httpsRedirect" => false
+            }
+          }
+
+          data["virtual_ips"] = virtual_ips.map do |n|
+            {
+              "virtualIps" => [
+                {
+                  "address" => MockData.ipv4_address,
+                  "id" => Fog::Mock.random_numbers(6),
+                  "type" => n.type,
+                  "ipVersion" => "IPV4"
+                },
+                {
+                  "address" => MockData.ipv6_address,
+                  "id" => Fog::Mock.random_numbers(4),
+                  "type" => "PUBLIC",
+                  "ipVersion" => "IPV6"
+                }
+              ],
+              "sourceAddresses" => {
+                "ipv6Public" => MockData.ipv6_address,
+                "ipv4Servicenet" => MockData.ipv4_address,
+                "ipv4Public" => MockData.ipv4_address
+              }
+            }
+          end
+
+          data["nodes"] = nodes.map do |n|
+            {
+              "address" => n.address,
+              "id" => Fog::Mock.random_numbers(6),
+              "type" => "PRIMARY",
+              "port" => n.port,
+              "status" => "ONLINE",
+              "condition" => "ENABLED",
+              "weight" => 1
+            }
+          end
+
           Excon::Response.new(:body => data, :status => 202)
         end
       end
diff --git a/lib/fog/rackspace/requests/load_balancers/create_node.rb b/lib/fog/rackspace/requests/load_balancers/create_node.rb
index b0a3956..5e12ce7 100644
--- a/lib/fog/rackspace/requests/load_balancers/create_node.rb
+++ b/lib/fog/rackspace/requests/load_balancers/create_node.rb
@@ -11,7 +11,7 @@ module Fog
                 'condition' => condition
               }
           ]}
-          if options.has_key?(:weight)
+          if options.key?(:weight)
             data['nodes'][0]['weight'] = options[:weight]
           end
           request(
diff --git a/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb b/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb
index 7ea20e6..2b87e33 100644
--- a/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb
+++ b/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     class LoadBalancers
-
       class Real
         def delete_load_balancer(load_balancer_id)
           request(
@@ -19,7 +18,6 @@ module Fog
           response.body = ""
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb b/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb
index 10b2821..87e9935 100644
--- a/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb
+++ b/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb
@@ -3,7 +3,7 @@ module Fog
     class LoadBalancers
       class Real
         def delete_nodes(load_balancer_id, *node_ids)
-          query_string = node_ids.collect { |node_id| "id=#{node_id}" }.join('&')
+          query_string = node_ids.map { |node_id| "id=#{node_id}" }.join('&')
           request(
             :expects => [200, 202],
             :path => "loadbalancers/#{load_balancer_id}/nodes?#{query_string}",
diff --git a/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb b/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb
index d974b34..4bb7f59 100644
--- a/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb
+++ b/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb
@@ -11,7 +11,6 @@ module Fog
          end
       end
 
-
       class Mock
         def get_load_balancer(load_balancer_id)
           response = Excon::Response.new
@@ -31,15 +30,15 @@ module Fog
               "virtualIps"=>[
                 {"address"=> MockData.ipv4_address, "id"=>Fog::Mock.random_numbers(4), "type"=>"PUBLIC", "ipVersion"=>"IPV4"},
                 {"address"=> MockData.ipv6_address, "id"=>Fog::Mock.random_numbers(4), "type"=>"PUBLIC", "ipVersion"=>"IPV6"}],
-                "sourceAddresses"=>{"ipv6Public"=> MockData.ipv6_address, "ipv4Servicenet"=> MockData.ipv4_address, "ipv4Public"=> MockData.ipv4_address},
-                "updated"=>{"time"=>"2013-09-04T06:29:09Z"},
-                "halfClosed"=>false,
-                "connectionLogging"=>{"enabled"=>false},
-                "contentCaching"=>{"enabled"=>false}}}
+              "sourceAddresses"=>{"ipv6Public"=> MockData.ipv6_address, "ipv4Servicenet"=> MockData.ipv4_address, "ipv4Public"=> MockData.ipv4_address},
+              "updated"=>{"time"=>"2013-09-04T06:29:09Z"},
+              "halfClosed"=>false,
+              "connectionLogging"=>{"enabled"=>false},
+              "contentCaching"=>{"enabled"=>false},
+              "httpsRedirect"=>false}}
             response
          end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb b/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb
index dc65c1d..7283c69 100644
--- a/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb
+++ b/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb
@@ -4,7 +4,7 @@ module Fog
       class Real
         def get_load_balancer_usage(load_balancer_id, options = {})
           #TODO - Didn't implement usage/current.  Not sure if it is needed
-          if options.has_key? :start_time and options.has_key? :end_time
+          if options.key? :start_time and options.key? :end_time
             query = "?startTime=#{options[:start_time]}&endTime=#{options[:end_time]}"
           else
             query = ''
diff --git a/lib/fog/rackspace/requests/load_balancers/get_stats.rb b/lib/fog/rackspace/requests/load_balancers/get_stats.rb
index ae8f010..61f0106 100644
--- a/lib/fog/rackspace/requests/load_balancers/get_stats.rb
+++ b/lib/fog/rackspace/requests/load_balancers/get_stats.rb
@@ -3,7 +3,6 @@ module Fog
     class LoadBalancers
       class Real
         def get_stats(load_balancer_id)
-
           request(
               :expects => 200,
               :path => "loadbalancers/#{load_balancer_id}/stats",
diff --git a/lib/fog/rackspace/requests/load_balancers/get_usage.rb b/lib/fog/rackspace/requests/load_balancers/get_usage.rb
index 1c2a117..d5b6228 100644
--- a/lib/fog/rackspace/requests/load_balancers/get_usage.rb
+++ b/lib/fog/rackspace/requests/load_balancers/get_usage.rb
@@ -3,7 +3,7 @@ module Fog
     class LoadBalancers
       class Real
         def get_usage(options = {})
-          if options.has_key? :start_time and options.has_key? :end_time
+          if options.key? :start_time and options.key? :end_time
             query = "?startTime=#{options[:start_time]}&endTime=#{options[:end_time]}"
           else
             query = ''
diff --git a/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb b/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb
index ac1b7f2..5425080 100644
--- a/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb
+++ b/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb
@@ -3,7 +3,7 @@ module Fog
     class LoadBalancers
       class Real
         def list_load_balancers(options = {})
-          if options.has_key? :node_address
+          if options.key? :node_address
             query_string = "?nodeaddress=#{options[:node_address]}"
           else
             query_string = ''
diff --git a/lib/fog/rackspace/requests/load_balancers/set_monitor.rb b/lib/fog/rackspace/requests/load_balancers/set_monitor.rb
index a216916..3d0f15a 100644
--- a/lib/fog/rackspace/requests/load_balancers/set_monitor.rb
+++ b/lib/fog/rackspace/requests/load_balancers/set_monitor.rb
@@ -9,13 +9,13 @@ module Fog
             'timeout' => timeout,
             'attemptsBeforeDeactivation' => attempsBeforeDeactivation
           }
-          if options.has_key? :path
+          if options.key? :path
             data['path'] = options[:path]
           end
-          if options.has_key? :body_regex
+          if options.key? :body_regex
             data['bodyRegex'] = options[:body_regex]
           end
-          if options.has_key? :status_regex
+          if options.key? :status_regex
             data['statusRegex'] = options[:status_regex]
           end
           request(
diff --git a/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb b/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb
index 4bb493a..8d96c15 100644
--- a/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb
+++ b/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb
@@ -9,13 +9,13 @@ module Fog
             :certificate => certificate
           }
 
-          if options.has_key? :intermediate_certificate
+          if options.key? :intermediate_certificate
             data['intermediateCertificate'] = options[:intermediate_certificate]
           end
-          if options.has_key? :enabled
+          if options.key? :enabled
             data['enabled'] = options[:enabled]
           end
-          if options.has_key? :secure_traffic_only
+          if options.key? :secure_traffic_only
             data['secureTrafficOnly'] = options[:secure_traffic_only]
           end
           request(
diff --git a/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb b/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb
index 2c1ac54..4dcbdd7 100644
--- a/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb
+++ b/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb
@@ -9,7 +9,8 @@ module Fog
               'port' => options[:port],
               'protocol' => options[:protocol],
               'algorithm' => options[:algorithm],
-              'timeout' => options[:timeout]
+              'timeout' => options[:timeout],
+              'httpsRedirect' => options[:https_redirect]
             }
           }
           request(
diff --git a/lib/fog/rackspace/requests/load_balancers/update_node.rb b/lib/fog/rackspace/requests/load_balancers/update_node.rb
index 6457098..6bb34aa 100644
--- a/lib/fog/rackspace/requests/load_balancers/update_node.rb
+++ b/lib/fog/rackspace/requests/load_balancers/update_node.rb
@@ -6,10 +6,10 @@ module Fog
           data = {
             'node' => {}
           }
-          if options.has_key? :weight
+          if options.key? :weight
             data['node']['weight'] = options[:weight]
           end
-          if options.has_key? :condition
+          if options.key? :condition
             data['node']['condition'] = options[:condition]
           end
           #TODO - Do anything if no valid options are passed in?
diff --git a/lib/fog/rackspace/requests/monitoring/create_agent_token.rb b/lib/fog/rackspace/requests/monitoring/create_agent_token.rb
index 639ea76..8f7703e 100644
--- a/lib/fog/rackspace/requests/monitoring/create_agent_token.rb
+++ b/lib/fog/rackspace/requests/monitoring/create_agent_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def create_agent_token(options = {})
           data = options.dup
           request(
@@ -16,7 +15,6 @@ module Fog
 
       class Mock
         def create_agent_token(options = {})
-
           account_id = Fog::Mock.random_numbers(6).to_s
           token = Fog::Mock.random_letters(50).to_s
 
@@ -47,4 +45,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/create_alarm.rb b/lib/fog/rackspace/requests/monitoring/create_alarm.rb
index d0d182f..aaa9b3a 100644
--- a/lib/fog/rackspace/requests/monitoring/create_alarm.rb
+++ b/lib/fog/rackspace/requests/monitoring/create_alarm.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def create_alarm(entity_id, options = {})
           data = options.dup
           request(
@@ -16,7 +15,6 @@ module Fog
 
       class Mock
         def create_alarm(entity_id, options = {})
-
           alarm_id = Fog::Mock.random_letters(10)
           account_id = Fog::Mock.random_numbers(6).to_s
 
@@ -42,10 +40,8 @@ module Fog
           }
           response.remote_ip = Fog::Rackspace::MockData.ipv4_address
           response
-
         end
       end
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/create_check.rb b/lib/fog/rackspace/requests/monitoring/create_check.rb
index 9783cf3..32bbc8a 100644
--- a/lib/fog/rackspace/requests/monitoring/create_check.rb
+++ b/lib/fog/rackspace/requests/monitoring/create_check.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def create_check(entity_id, options = {})
           data = options.dup
           request(
@@ -16,7 +15,6 @@ module Fog
 
       class Mock
         def create_check(entity_id, options = {})
-
           account_id = Fog::Mock.random_numbers(6).to_s
           mock_id = Fog::Mock.random_letters(10).to_s
 
@@ -47,4 +45,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/create_entity.rb b/lib/fog/rackspace/requests/monitoring/create_entity.rb
index 5325503..a46581f 100644
--- a/lib/fog/rackspace/requests/monitoring/create_entity.rb
+++ b/lib/fog/rackspace/requests/monitoring/create_entity.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def create_entity(options = {})
           data = options.dup
           request(
@@ -15,9 +14,7 @@ module Fog
       end
 
       class Mock
-
         def create_entity(options = {})
-
           account_id = Fog::Mock.random_numbers(6).to_s
           entity_id = Fog::Mock.random_letters(10)
 
@@ -48,4 +45,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/create_notification.rb b/lib/fog/rackspace/requests/monitoring/create_notification.rb
index 6a611b4..a755f5a 100644
--- a/lib/fog/rackspace/requests/monitoring/create_notification.rb
+++ b/lib/fog/rackspace/requests/monitoring/create_notification.rb
@@ -15,4 +15,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb b/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb
index 72ecd89..d21a4ec 100644
--- a/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb
+++ b/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def delete_agent_token(token_id)
           request(
             :expects  => [204],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def delete_agent_token(options = {})
-
           account_id = Fog::Mock.random_numbers(6).to_s
           token = Fog::Mock.random_letters(50).to_s
 
@@ -42,8 +40,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/delete_alarm.rb b/lib/fog/rackspace/requests/monitoring/delete_alarm.rb
index 16d949d..77be669 100644
--- a/lib/fog/rackspace/requests/monitoring/delete_alarm.rb
+++ b/lib/fog/rackspace/requests/monitoring/delete_alarm.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def delete_alarm(entity_id, alarm_id)
           request(
             :expects  => [204],
@@ -13,9 +12,7 @@ module Fog
       end
 
       class Mock
-
         def delete_alarm(entity_id, alarm_id)
-
           if entity_id == -1 || alarm_id == -1
             raise Fog::Rackspace::Monitoring::NotFound
           end
@@ -42,4 +39,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/delete_check.rb b/lib/fog/rackspace/requests/monitoring/delete_check.rb
index eadcf65..021dcc2 100644
--- a/lib/fog/rackspace/requests/monitoring/delete_check.rb
+++ b/lib/fog/rackspace/requests/monitoring/delete_check.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def delete_check(entity_id, check_id)
           request(
             :expects  => [204],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def delete_check(entity_id, check_id)
-
           if entity_id == -1 || check_id == -1
             raise Fog::Rackspace::Monitoring::NotFound
           end
@@ -40,4 +38,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/delete_entity.rb b/lib/fog/rackspace/requests/monitoring/delete_entity.rb
index a50b6ac..03dbc42 100644
--- a/lib/fog/rackspace/requests/monitoring/delete_entity.rb
+++ b/lib/fog/rackspace/requests/monitoring/delete_entity.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def delete_entity(entity_id)
           request(
             :expects  => [204],
@@ -13,9 +12,7 @@ module Fog
       end
 
       class Mock
-
         def delete_entity(entity_id)
-
           if entity_id == -1
            raise Fog::Rackspace::Monitoring::NotFound
           end
@@ -41,4 +38,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/delete_notification.rb b/lib/fog/rackspace/requests/monitoring/delete_notification.rb
index 3746415..681434f 100644
--- a/lib/fog/rackspace/requests/monitoring/delete_notification.rb
+++ b/lib/fog/rackspace/requests/monitoring/delete_notification.rb
@@ -13,4 +13,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb b/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb
index 8217f73..a1f1cb0 100644
--- a/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb
+++ b/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def evaluate_alarm_example(id, options = {})
           options ||= {}
           data = {:values => options.dup}
@@ -17,5 +16,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_agent.rb b/lib/fog/rackspace/requests/monitoring/get_agent.rb
index f2c0c43..0c7b6e8 100644
--- a/lib/fog/rackspace/requests/monitoring/get_agent.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_agent.rb
@@ -13,7 +13,6 @@ module Fog
 
       class Mock
         def get_agent(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::NotFound
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_agent_token.rb b/lib/fog/rackspace/requests/monitoring/get_agent_token.rb
index f390bce..70ad80e 100644
--- a/lib/fog/rackspace/requests/monitoring/get_agent_token.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_agent_token.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_agent_token(id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_agent_token(id)
-
           token = Fog::Mock.random_letters(50).to_s
 
           if id == -1
@@ -44,9 +42,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_alarm.rb b/lib/fog/rackspace/requests/monitoring/get_alarm.rb
index c1c42ee..ad0c66a 100644
--- a/lib/fog/rackspace/requests/monitoring/get_alarm.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_alarm.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_alarm(entity_id, alarm_id)
           request(
             :expects  => [200, 203],
@@ -10,13 +9,10 @@ module Fog
             :path     => "entities/#{entity_id}/alarms/#{alarm_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_alarm(entity_id, alarm_id)
-
           if entity_id == -1 || alarm_id == -1
            raise Fog::Rackspace::Monitoring::NotFound
           end
@@ -53,5 +49,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb b/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb
index b1340cb..4a001d6 100644
--- a/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_alarm_example(id)
           request(
             :expects  => [200, 203],
@@ -10,10 +9,7 @@ module Fog
             :path     => "alarm_examples/#{id}"
           )
         end
-
       end
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_check.rb b/lib/fog/rackspace/requests/monitoring/get_check.rb
index 7e4391b..a4b2aaa 100644
--- a/lib/fog/rackspace/requests/monitoring/get_check.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_check.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_check(entity_id, check_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_check(entity_id, check_id)
-
           if entity_id == -1 || check_id == -1
             raise Fog::Rackspace::Monitoring::NotFound
           end
@@ -56,5 +54,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb b/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb
index 2369bc6..702e679 100644
--- a/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_cpus_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_cpus_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_disks_info.rb b/lib/fog/rackspace/requests/monitoring/get_disks_info.rb
index 761adb6..816bd48 100644
--- a/lib/fog/rackspace/requests/monitoring/get_disks_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_disks_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_disks_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_disks_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_entity.rb b/lib/fog/rackspace/requests/monitoring/get_entity.rb
index 109f8a3..b81ad34 100644
--- a/lib/fog/rackspace/requests/monitoring/get_entity.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_entity.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_entity(entity_id)
           request(
             :expects  => [200, 203],
@@ -10,13 +9,10 @@ module Fog
             :path     => "entities/#{entity_id}"
           )
         end
-
       end
 
       class Mock
-
         def get_entity(entity_id)
-
           account_id = Fog::Mock.random_numbers(6).to_s
           server_id = Fog::Rackspace::MockData.uuid
           entity_label = Fog::Mock.random_letters(10)
@@ -57,5 +53,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb b/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb
index 81358d5..d18361f 100644
--- a/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_filesystems_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_filesystems_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb b/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb
index 9130284..8d6b7a9 100644
--- a/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_logged_in_user_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_logged_in_user_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_memory_info.rb b/lib/fog/rackspace/requests/monitoring/get_memory_info.rb
index e1a6277..26be6cc 100644
--- a/lib/fog/rackspace/requests/monitoring/get_memory_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_memory_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_memory_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_memory_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb b/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb
index 9ee29ca..9d36fe3 100644
--- a/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_network_interfaces_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_network_interfaces_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/get_notification.rb b/lib/fog/rackspace/requests/monitoring/get_notification.rb
index 00ef2fb..a196152 100644
--- a/lib/fog/rackspace/requests/monitoring/get_notification.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_notification.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_notification(notification_id)
           request(
             :expects  => [200],
@@ -10,7 +9,6 @@ module Fog
             :path     => "notifications/#{notification_id}"
           )
         end
-
       end
 
       class Mock
@@ -46,5 +44,3 @@ module Fog
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/requests/monitoring/get_processes_info.rb b/lib/fog/rackspace/requests/monitoring/get_processes_info.rb
index 1395220..61e9b83 100644
--- a/lib/fog/rackspace/requests/monitoring/get_processes_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_processes_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_processes_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_processes_info(agent_id)
-
           memory_major_faults = Fog::Mock.random_numbers(1).to_i
           memory_minor_faults = Fog::Mock.random_numbers(3).to_i
           memory_page_faults = memory_major_faults+memory_minor_faults
diff --git a/lib/fog/rackspace/requests/monitoring/get_system_info.rb b/lib/fog/rackspace/requests/monitoring/get_system_info.rb
index ed3a5a1..7af32b4 100644
--- a/lib/fog/rackspace/requests/monitoring/get_system_info.rb
+++ b/lib/fog/rackspace/requests/monitoring/get_system_info.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def get_system_info(agent_id)
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
 
       class Mock
         def get_system_info(agent_id)
-
           if agent_id == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb b/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb
index 6cf6ec9..c4bf70c 100644
--- a/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_agent_tokens(options={})
           request(
             :expects  => [200, 203],
@@ -14,7 +13,6 @@ module Fog
       end
 
       class Mock
-
         def list_agent_tokens(options={})
           token = Fog::Mock.random_letters(50).to_s
 
@@ -55,4 +53,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_agents.rb b/lib/fog/rackspace/requests/monitoring/list_agents.rb
index dd8b4ca..03eaf4a 100644
--- a/lib/fog/rackspace/requests/monitoring/list_agents.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_agents.rb
@@ -13,7 +13,6 @@ module Fog
 
       class Mock
         def list_agents
-
           response = Excon::Response.new
           response.status = 200
           response.body = {
diff --git a/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb b/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb
index 67364d2..991d2ef 100644
--- a/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_alarm_examples
           request(
             :expects  => [200, 203],
@@ -10,9 +9,7 @@ module Fog
             :path     => 'alarm_examples'
           )
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_alarms.rb b/lib/fog/rackspace/requests/monitoring/list_alarms.rb
index 8c9c9f4..03a015c 100644
--- a/lib/fog/rackspace/requests/monitoring/list_alarms.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_alarms.rb
@@ -2,21 +2,18 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
-        def list_alarms(entity_id)
+        def list_alarms(entity_id, options={})
           request(
             :expects  => [200, 203],
             :method   => 'GET',
-            :path     => "entities/#{entity_id}/alarms"
+            :path     => "entities/#{entity_id}/alarms",
+            :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_alarms(entity_id)
-
           if entity_id == -1
            raise Fog::Rackspace::Monitoring::NotFound
           end
@@ -65,4 +62,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_check_types.rb b/lib/fog/rackspace/requests/monitoring/list_check_types.rb
index b1f669e..9237bb8 100644
--- a/lib/fog/rackspace/requests/monitoring/list_check_types.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_check_types.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_check_types
           request(
             :expects  => [200, 203],
@@ -56,8 +55,6 @@ module Fog
               }
             ],
 
-
-
             "metadata" => {
               "count"       => 2,
               "limit"       => 100,
diff --git a/lib/fog/rackspace/requests/monitoring/list_checks.rb b/lib/fog/rackspace/requests/monitoring/list_checks.rb
index f3163ef..b5fa644 100644
--- a/lib/fog/rackspace/requests/monitoring/list_checks.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_checks.rb
@@ -2,19 +2,18 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
-        def list_checks(entity_id)
+        def list_checks(entity_id, options={})
           request(
             :expects  => [200, 203],
             :method   => 'GET',
-            :path     => "entities/#{entity_id}/checks"
+            :path     => "entities/#{entity_id}/checks",
+            :query    => options
           )
         end
       end
 
       class Mock
         def list_checks(entity_id)
-
           check_id = Fog::Mock.random_letters(10)
 
           if entity_id == -1
@@ -69,4 +68,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_data_points.rb b/lib/fog/rackspace/requests/monitoring/list_data_points.rb
index 6671f67..6080e78 100644
--- a/lib/fog/rackspace/requests/monitoring/list_data_points.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_data_points.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_data_points(entity_id, check_id, metric_name, options)
           request(
             :expects  => [200, 203],
@@ -11,13 +10,10 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
-
         def list_data_points(entity_id, check_id, metric_name, options)
-
           if entity_id == -1 || check_id == -1 || metric_name == -1 || options == -1
             raise Fog::Rackspace::Monitoring::BadRequest
           end
diff --git a/lib/fog/rackspace/requests/monitoring/list_entities.rb b/lib/fog/rackspace/requests/monitoring/list_entities.rb
index 30784f5..56ce0fd 100644
--- a/lib/fog/rackspace/requests/monitoring/list_entities.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_entities.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_entities(options={})
           request(
             :expects  => [200, 203],
@@ -69,4 +68,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_metrics.rb b/lib/fog/rackspace/requests/monitoring/list_metrics.rb
index e30e422..b659fe1 100644
--- a/lib/fog/rackspace/requests/monitoring/list_metrics.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_metrics.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_metrics(entity_id, check_id)
           request(
             :expects  => [200, 203],
@@ -76,8 +75,6 @@ module Fog
         response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb b/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb
index de811d6..9f0dddf 100644
--- a/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_notification_plans
           request(
             :expects  => [200],
@@ -66,8 +65,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_notifications.rb b/lib/fog/rackspace/requests/monitoring/list_notifications.rb
index cbde654..ba0fc77 100644
--- a/lib/fog/rackspace/requests/monitoring/list_notifications.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_notifications.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_notifications(options={})
           request(
             :expects  => [200],
@@ -11,7 +10,6 @@ module Fog
             :query    => options
           )
         end
-
       end
 
       class Mock
@@ -60,8 +58,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/list_overview.rb b/lib/fog/rackspace/requests/monitoring/list_overview.rb
index 8f51380..0e993f0 100644
--- a/lib/fog/rackspace/requests/monitoring/list_overview.rb
+++ b/lib/fog/rackspace/requests/monitoring/list_overview.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def list_overview(options={})
           request(
             :expects  => [200, 203],
@@ -15,7 +14,6 @@ module Fog
 
       class Mock
         def list_overview(options={})
-
           alarm_id   = Fog::Mock.random_letters(10)
           check_id   = Fog::Mock.random_letters(10)
           entity_id  = Fog::Mock.random_letters(10)
@@ -108,8 +106,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/update_alarm.rb b/lib/fog/rackspace/requests/monitoring/update_alarm.rb
index 950cc3e..558ba51 100644
--- a/lib/fog/rackspace/requests/monitoring/update_alarm.rb
+++ b/lib/fog/rackspace/requests/monitoring/update_alarm.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def update_alarm(entity_id, alarm_id, options)
           request(
             :body     => JSON.encode(options),
@@ -14,9 +13,7 @@ module Fog
       end
 
       class Mock
-
         def update_alarm(entity_id, alarm_id, options)
-
           account_id = Fog::Mock.random_numbers(6).to_s
 
           if entity_id == -1 || alarm_id == -1 || options[:testing]
@@ -46,4 +43,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/update_check.rb b/lib/fog/rackspace/requests/monitoring/update_check.rb
index 377a734..d7253bb 100644
--- a/lib/fog/rackspace/requests/monitoring/update_check.rb
+++ b/lib/fog/rackspace/requests/monitoring/update_check.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def update_check(entity_id, check_id, options)
           request(
             :body     => JSON.encode(options),
@@ -15,7 +14,6 @@ module Fog
 
       class Mock
         def update_check(entity_id, check_id, options)
-
            account_id = Fog::Mock.random_numbers(6).to_s
 
           if entity_id == -1 || check_id == -1 || options[:testing]
@@ -45,4 +43,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/update_entity.rb b/lib/fog/rackspace/requests/monitoring/update_entity.rb
index 3a0fecf..16a4fae 100644
--- a/lib/fog/rackspace/requests/monitoring/update_entity.rb
+++ b/lib/fog/rackspace/requests/monitoring/update_entity.rb
@@ -2,7 +2,6 @@ module Fog
   module Rackspace
     class Monitoring
       class Real
-
         def update_entity(entity_id, options)
           request(
             :body     => JSON.encode(options),
@@ -14,9 +13,7 @@ module Fog
       end
 
       class Mock
-
         def update_entity(entity_id, options)
-
           account_id = Fog::Mock.random_numbers(6).to_s
 
           if entity_id == -1
@@ -46,4 +43,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/monitoring/update_notification.rb b/lib/fog/rackspace/requests/monitoring/update_notification.rb
index e3fad4c..7a87483 100644
--- a/lib/fog/rackspace/requests/monitoring/update_notification.rb
+++ b/lib/fog/rackspace/requests/monitoring/update_notification.rb
@@ -14,4 +14,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/queues/create_claim.rb b/lib/fog/rackspace/requests/queues/create_claim.rb
index 23fe92a..483db2d 100644
--- a/lib/fog/rackspace/requests/queues/create_claim.rb
+++ b/lib/fog/rackspace/requests/queues/create_claim.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation claims a set of messages (up to the value of the limit parameter) from oldest to newest and skips any messages that are already claimed.
         # If no unclaimed messages are available, the API returns a 204 No Content message.
         #
@@ -25,7 +23,7 @@ module Fog
           }
 
           query = {}
-          query[:limit] = options[:limit] if options.has_key? :limit
+          query[:limit] = options[:limit] if options.key? :limit
           request(
             :body => Fog::JSON.encode(body),
             :expects => [200, 201, 204],
@@ -34,7 +32,6 @@ module Fog
             :query => query
           )
         end
-
       end
 
       class Mock
@@ -70,7 +67,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/create_message.rb b/lib/fog/rackspace/requests/queues/create_message.rb
index c952a90..da0617a 100644
--- a/lib/fog/rackspace/requests/queues/create_message.rb
+++ b/lib/fog/rackspace/requests/queues/create_message.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation posts the specified message or messages.
         # @note You can submit up to 10 messages in a single request.
         #
@@ -53,7 +51,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/create_queue.rb b/lib/fog/rackspace/requests/queues/create_queue.rb
index b24b95a..1b1dbad 100644
--- a/lib/fog/rackspace/requests/queues/create_queue.rb
+++ b/lib/fog/rackspace/requests/queues/create_queue.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
         # This operation creates a new queue.
         # The body of the request is empty.
@@ -35,7 +34,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/delete_claim.rb b/lib/fog/rackspace/requests/queues/delete_claim.rb
index 9891f6f..5ee7e90 100644
--- a/lib/fog/rackspace/requests/queues/delete_claim.rb
+++ b/lib/fog/rackspace/requests/queues/delete_claim.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation immediately releases a claim, making any remaining, undeleted) messages that are associated with the claim available to other workers.
         # Claims with malformed IDs or claims that are not found by ID are ignored.
         #
@@ -39,7 +37,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/delete_message.rb b/lib/fog/rackspace/requests/queues/delete_message.rb
index ad8935c..63d22c9 100644
--- a/lib/fog/rackspace/requests/queues/delete_message.rb
+++ b/lib/fog/rackspace/requests/queues/delete_message.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation immediately deletes the specified message.
         # @note If you do not specify claim_id, but the message is claimed, the operation fails. You can only delete claimed messages by providing an appropriate claim_id.
         #
@@ -19,7 +17,7 @@ module Fog
         # @see http://docs.rackspace.com/queues/api/v1.0/cq-devguide/content/DELETE_deleteMessage__version__queues__queue_name__messages__messageId__message-operations-dle001.html
         def delete_message(queue_name, message_id, options = {})
           query = {}
-          query[:claim_id] = options[:claim_id] if options.has_key? :claim_id
+          query[:claim_id] = options[:claim_id] if options.key? :claim_id
           request(
             :expects => 204,
             :method => 'DELETE',
@@ -27,7 +25,6 @@ module Fog
             :query => query
           )
         end
-
       end
 
       class Mock
@@ -36,7 +33,7 @@ module Fog
 
           claim_id = options[:claim_id]
 
-          message = queue.messages.detect { |m| m.id == message_id }
+          message = queue.messages.find { |m| m.id == message_id }
 
           perform_delete = true
           if message && message.claimed?
@@ -60,7 +57,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/delete_queue.rb b/lib/fog/rackspace/requests/queues/delete_queue.rb
index c5972ee..b3f9705 100644
--- a/lib/fog/rackspace/requests/queues/delete_queue.rb
+++ b/lib/fog/rackspace/requests/queues/delete_queue.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation immediately deletes a queue and all of its existing messages.
         #
         # @param [String] queue_name Specifies the name of the queue.
@@ -20,7 +18,6 @@ module Fog
             :path => "queues/#{queue_name}"
           )
         end
-
       end
 
       class Mock
@@ -31,7 +28,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/get_claim.rb b/lib/fog/rackspace/requests/queues/get_claim.rb
index e9fc3cc..b50f6b3 100644
--- a/lib/fog/rackspace/requests/queues/get_claim.rb
+++ b/lib/fog/rackspace/requests/queues/get_claim.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation queries the specified claim for the specified queue. Claims with malformed IDs or claims that are not found by ID are ignored.
         #
         # @param [String] queue_name Specifies the name of the queue.
@@ -21,7 +19,6 @@ module Fog
             :path => "queues/#{queue_name}/claims/#{claim_id}"
           )
         end
-
       end
 
       class Mock
@@ -35,7 +32,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/get_message.rb b/lib/fog/rackspace/requests/queues/get_message.rb
index 37bfe26..609789b 100644
--- a/lib/fog/rackspace/requests/queues/get_message.rb
+++ b/lib/fog/rackspace/requests/queues/get_message.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation gets the specified message from the specified queue.
         #
         # @param [String] client_id UUID for the client instance.
@@ -23,7 +21,6 @@ module Fog
             :headers => { 'Client-ID' => client_id }
           )
         end
-
       end
 
       class Mock
@@ -39,7 +36,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/get_queue.rb b/lib/fog/rackspace/requests/queues/get_queue.rb
index 749af6c..69e435b 100644
--- a/lib/fog/rackspace/requests/queues/get_queue.rb
+++ b/lib/fog/rackspace/requests/queues/get_queue.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
         # This operation verifies whether the specified queue exists.
         #
@@ -32,7 +31,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/get_queue_stats.rb b/lib/fog/rackspace/requests/queues/get_queue_stats.rb
index e263bab..6bbbe1c 100644
--- a/lib/fog/rackspace/requests/queues/get_queue_stats.rb
+++ b/lib/fog/rackspace/requests/queues/get_queue_stats.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation returns queue statistics, including how many messages are in the queue, categorized by status.
         #
         # @param [String] queue_name Specifies the name of the queue.
@@ -20,7 +18,6 @@ module Fog
             :path => "queues/#{queue_name}/stats"
           )
         end
-
       end
 
       class Mock
@@ -55,7 +52,6 @@ module Fog
           }
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/list_messages.rb b/lib/fog/rackspace/requests/queues/list_messages.rb
index 9d33f18..974d720 100644
--- a/lib/fog/rackspace/requests/queues/list_messages.rb
+++ b/lib/fog/rackspace/requests/queues/list_messages.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation gets the message or messages in the specified queue.
         #
         # A request to list messages when the queue is not found or when messages are not found returns 204, instead of 200, because there was no information to send back.
@@ -70,7 +68,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/list_queues.rb b/lib/fog/rackspace/requests/queues/list_queues.rb
index 13e265b..9aefa2f 100644
--- a/lib/fog/rackspace/requests/queues/list_queues.rb
+++ b/lib/fog/rackspace/requests/queues/list_queues.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
         # This operation lists queues for the project. The queues are sorted alphabetically by name.
         # @note A request to list queues when you have no queues in your account returns 204, instead of 200, because there was no information to send back.
@@ -58,7 +57,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/queues/update_claim.rb b/lib/fog/rackspace/requests/queues/update_claim.rb
index 2a9164e..82df7af 100644
--- a/lib/fog/rackspace/requests/queues/update_claim.rb
+++ b/lib/fog/rackspace/requests/queues/update_claim.rb
@@ -1,9 +1,7 @@
 module Fog
   module Rackspace
     class Queues
-
       class Real
-
         # This operation posts the specified message or messages.
         # @note You can submit up to 10 messages in a single request.
         #
@@ -21,7 +19,6 @@ module Fog
             :path => "queues/#{queue_name}/claims/#{claim_id}"
           )
         end
-
       end
 
       class Mock
@@ -37,7 +34,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/copy_object.rb b/lib/fog/rackspace/requests/storage/copy_object.rb
index 629abab..b53a144 100644
--- a/lib/fog/rackspace/requests/storage/copy_object.rb
+++ b/lib/fog/rackspace/requests/storage/copy_object.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Rackspace
       class Real
-
         # Copy object
         #
         # ==== Parameters
@@ -24,7 +23,6 @@ module Fog
             :path     => "#{Fog::Rackspace.escape(target_container_name)}/#{Fog::Rackspace.escape(target_object_name)}"
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/rackspace/requests/storage/delete_container.rb b/lib/fog/rackspace/requests/storage/delete_container.rb
index a7f12d4..86469d3 100644
--- a/lib/fog/rackspace/requests/storage/delete_container.rb
+++ b/lib/fog/rackspace/requests/storage/delete_container.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Delete an existing container
         #
         # ==== Parameters
@@ -19,7 +17,6 @@ module Fog
             :path     => Fog::Rackspace.escape(name)
           )
         end
-
       end
 
       class Mock
@@ -34,7 +31,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb b/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb
index 3d3ac1d..8bd67fc 100644
--- a/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb
+++ b/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Deletes multiple objects or containers with a single request.
         #
         # To delete objects from a single container, +container+ may be provided
@@ -69,7 +67,6 @@ module Fog
           response.body = Fog::JSON.decode(response.body)
           response
         end
-
       end
 
       class Mock
@@ -126,7 +123,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/delete_object.rb b/lib/fog/rackspace/requests/storage/delete_object.rb
index c4bc60f..08071d0 100644
--- a/lib/fog/rackspace/requests/storage/delete_object.rb
+++ b/lib/fog/rackspace/requests/storage/delete_object.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Delete an existing object
         #
         # ==== Parameters
@@ -20,7 +18,6 @@ module Fog
             :path     => "#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object)}"
           )
         end
-
       end
 
       class Mock
@@ -34,7 +31,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/delete_static_large_object.rb b/lib/fog/rackspace/requests/storage/delete_static_large_object.rb
index 6314a12..18e7e65 100644
--- a/lib/fog/rackspace/requests/storage/delete_static_large_object.rb
+++ b/lib/fog/rackspace/requests/storage/delete_static_large_object.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Delete a static large object.
         #
         # Deletes the SLO manifest +object+ and all segments that it references.
@@ -43,7 +41,6 @@ module Fog
           response.body = Fog::JSON.decode(response.body)
           response
         end
-
       end
 
       class Mock
@@ -76,8 +73,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
diff --git a/lib/fog/rackspace/requests/storage/extract_archive.rb b/lib/fog/rackspace/requests/storage/extract_archive.rb
index 3317c0d..2305002 100644
--- a/lib/fog/rackspace/requests/storage/extract_archive.rb
+++ b/lib/fog/rackspace/requests/storage/extract_archive.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Rackspace
       class Real
-
         # Extract Archive
         #
         # @see http://docs.rackspace.com/files/api/v1/cf-devguide/content/Extract_Archive-d1e2338.html
diff --git a/lib/fog/rackspace/requests/storage/get_container.rb b/lib/fog/rackspace/requests/storage/get_container.rb
index fe09724..04f6045 100644
--- a/lib/fog/rackspace/requests/storage/get_container.rb
+++ b/lib/fog/rackspace/requests/storage/get_container.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Get details for container and total bytes stored
         #
         # ==== Parameters
@@ -42,7 +40,6 @@ module Fog
             :query    => {'format' => 'json'}.merge!(options)
           )
         end
-
       end
 
       class Mock
@@ -67,7 +64,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/get_containers.rb b/lib/fog/rackspace/requests/storage/get_containers.rb
index 0ea7a28..a4ef782 100644
--- a/lib/fog/rackspace/requests/storage/get_containers.rb
+++ b/lib/fog/rackspace/requests/storage/get_containers.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Rackspace
       class Real
-
         # List existing storage containers
         #
         # ==== Parameters
@@ -30,7 +29,6 @@ module Fog
             :query    => {'format' => 'json'}.merge!(options)
           )
         end
-
       end
 
       class Mock
@@ -48,7 +46,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/get_object.rb b/lib/fog/rackspace/requests/storage/get_object.rb
index 0490a13..c0d12c0 100644
--- a/lib/fog/rackspace/requests/storage/get_object.rb
+++ b/lib/fog/rackspace/requests/storage/get_object.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Get details for object
         #
         # ==== Parameters
@@ -26,7 +24,6 @@ module Fog
 
           request(params, false)
         end
-
       end
 
       class Mock
@@ -52,7 +49,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/get_object_http_url.rb b/lib/fog/rackspace/requests/storage/get_object_http_url.rb
index 7b66d3c..7e0612a 100644
--- a/lib/fog/rackspace/requests/storage/get_object_http_url.rb
+++ b/lib/fog/rackspace/requests/storage/get_object_http_url.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class Rackspace
-
       module Common
         # Get an expiring object http url from Cloud Files
         #
@@ -31,7 +30,6 @@ module Fog
       class Mock
         include Common
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/get_object_https_url.rb b/lib/fog/rackspace/requests/storage/get_object_https_url.rb
index c81c7f5..8184837 100644
--- a/lib/fog/rackspace/requests/storage/get_object_https_url.rb
+++ b/lib/fog/rackspace/requests/storage/get_object_https_url.rb
@@ -1,15 +1,14 @@
 module Fog
   module Storage
     class Rackspace
-
       module Common
-
         # Get an expiring object https url from Cloud Files
         #
         # ==== Parameters
         # * container<~String> - Name of container containing object
         # * object<~String> - Name of object to get expiring url for
         # * expires<~Time> - An expiry time for this url
+        # * options<~Hash> - Options to override the method or scheme
         #
         # ==== Returns
         # * response<~Excon::Response>:
@@ -25,7 +24,7 @@ module Fog
             raise ArgumentError, "Storage must my instantiated with the :rackspace_temp_url_key option"
           end
 
-          method         = 'GET'
+          method         = options[:method] || 'GET'
           expires        = expires.to_i
           object_path_escaped   = "#{@uri.path}/#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object,"/")}"
           object_path_unescaped = "#{@uri.path}/#{Fog::Rackspace.escape(container)}/#{object}"
@@ -56,7 +55,6 @@ module Fog
       class Real
         include Common
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/head_container.rb b/lib/fog/rackspace/requests/storage/head_container.rb
index 860a59d..55d9757 100644
--- a/lib/fog/rackspace/requests/storage/head_container.rb
+++ b/lib/fog/rackspace/requests/storage/head_container.rb
@@ -2,7 +2,6 @@ module Fog
   module Storage
     class Rackspace
       class Real
-
         # List number of objects and total bytes stored
         #
         # ==== Parameters
@@ -25,7 +24,6 @@ module Fog
             :query    => {'format' => 'json'}
           )
         end
-
       end
 
       class Mock
@@ -38,7 +36,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/head_containers.rb b/lib/fog/rackspace/requests/storage/head_containers.rb
index 22f1752..5fecba3 100644
--- a/lib/fog/rackspace/requests/storage/head_containers.rb
+++ b/lib/fog/rackspace/requests/storage/head_containers.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # List number of containers and total bytes stored
         #
         # ==== Returns
@@ -23,14 +21,13 @@ module Fog
             :query    => {'format' => 'json'}
           )
         end
-
       end
 
       class Mock
         def head_containers
-          bytes_used = data.values.map { |c| c.bytes_used }.inject(0) { |a, b| a + b }
+          bytes_used = data.values.map { |c| c.bytes_used }.reduce(0) { |a, b| a + b }
           container_count = data.size
-          object_count = data.values.map { |c| c.objects.size }.inject(0) { |a, b| a + b }
+          object_count = data.values.map { |c| c.objects.size }.reduce(0) { |a, b| a + b }
 
           response = Excon::Response.new
           response.status = 204
@@ -42,7 +39,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/head_object.rb b/lib/fog/rackspace/requests/storage/head_object.rb
index 87b834c..49a3f38 100644
--- a/lib/fog/rackspace/requests/storage/head_object.rb
+++ b/lib/fog/rackspace/requests/storage/head_object.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Get headers for object
         #
         # ==== Parameters
@@ -20,7 +18,6 @@ module Fog
             :path     => "#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object)}"
           }, false)
         end
-
       end
 
       class Mock
@@ -46,7 +43,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb b/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb
index 8a6eb02..b21649f 100644
--- a/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb
+++ b/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Set the account wide Temp URL Key. This is a secret key that's
         # used to generate signed expiring URLs.
         #
@@ -32,7 +30,6 @@ module Fog
             :headers  => {'X-Account-Meta-Temp-Url-Key' => key}
           )
         end
-
       end
 
       class Mock
@@ -44,7 +41,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/put_container.rb b/lib/fog/rackspace/requests/storage/put_container.rb
index 7d2b467..3422364 100644
--- a/lib/fog/rackspace/requests/storage/put_container.rb
+++ b/lib/fog/rackspace/requests/storage/put_container.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Create a new container
         #
         # ==== Parameters
@@ -20,7 +18,6 @@ module Fog
             :path     => Fog::Rackspace.escape(name)
           )
         end
-
       end
 
       class Mock
@@ -36,7 +33,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb b/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb
index 7d5ad2c..68859c9 100644
--- a/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb
+++ b/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Create a new dynamic large object manifest
         #
         # Creates an object with a +X-Object-Manifest+ header that specifies the common prefix ("<container>/<prefix>")
@@ -38,7 +36,6 @@ module Fog
             :path     => path
           )
         end
-
       end
 
       class Mock
@@ -61,7 +58,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/put_object.rb b/lib/fog/rackspace/requests/storage/put_object.rb
index 8c1c189..04147d2 100644
--- a/lib/fog/rackspace/requests/storage/put_object.rb
+++ b/lib/fog/rackspace/requests/storage/put_object.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Create a new object
         #
         # When passed a block, it will make a chunked request, calling
@@ -74,7 +72,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/put_object_manifest.rb b/lib/fog/rackspace/requests/storage/put_object_manifest.rb
index 6ed5448..47fe599 100644
--- a/lib/fog/rackspace/requests/storage/put_object_manifest.rb
+++ b/lib/fog/rackspace/requests/storage/put_object_manifest.rb
@@ -1,7 +1,6 @@
 module Fog
   module Storage
     class Rackspace
-
       module Common
         # Create a new dynamic large object manifest
         #
@@ -18,7 +17,6 @@ module Fog
       class Mock
         include Common
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb b/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb
index 12cb5b1..8045ba4 100644
--- a/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb
+++ b/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb
@@ -1,9 +1,7 @@
 module Fog
   module Storage
     class Rackspace
-
       class Real
-
         # Create a new static large object manifest.
         #
         # A static large object is similar to a dynamic large object. Whereas a GET for a dynamic large object manifest
@@ -52,7 +50,6 @@ module Fog
             :query    => { 'multipart-manifest' => 'put' }
           )
         end
-
       end
 
       class Mock
@@ -100,9 +97,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
-
-
diff --git a/lib/fog/rackspace/service.rb b/lib/fog/rackspace/service.rb
index f555a81..995100b 100644
--- a/lib/fog/rackspace/service.rb
+++ b/lib/fog/rackspace/service.rb
@@ -1,7 +1,6 @@
 module Fog
   module Rackspace
     class Service
-
       def service_name
         raise Fog::Errors::NotImplemented.new("Please implement the #service_name method")
       end
@@ -138,7 +137,6 @@ module Fog
 
         selected
       end
-
     end
   end
 end
diff --git a/lib/fog/rackspace/storage.rb b/lib/fog/rackspace/storage.rb
index 433c33a..8fd9e9a 100644
--- a/lib/fog/rackspace/storage.rb
+++ b/lib/fog/rackspace/storage.rb
@@ -52,10 +52,16 @@ module Fog
           @rackspace_auth_token = options[:rackspace_auth_token]
           @rackspace_storage_url = options[:rackspace_storage_url]
           @rackspace_cdn_url = options[:rackspace_cdn_url]
-          @rackspace_region = options[:rackspace_region] || :dfw
+          @rackspace_region = options[:rackspace_region]
           @rackspace_temp_url_key = options[:rackspace_temp_url_key]
           @rackspace_must_reauthenticate = false
           @connection_options = options[:connection_options] || {}
+
+          unless @rackspace_region || (@rackspace_storage_url && @rackspace_cdn_url)
+            Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires settng the :rackspace_region option.")
+          end
+
+          @rackspace_region ||= :dfw
         end
 
         def cdn
@@ -145,7 +151,7 @@ module Fog
           # @return [Integer] The number of bytes occupied by each contained
           #   object.
           def bytes_used
-            @objects.values.map { |o| o.bytes_used }.inject(0) { |a, b| a + b }
+            @objects.values.map { |o| o.bytes_used }.reduce(0) { |a, b| a + b }
           end
 
           # Render the HTTP headers that would be associated with this
@@ -454,7 +460,6 @@ module Fog
           @auth_token = credentials['X-Auth-Token']
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4.rb b/lib/fog/rage4.rb
index 36f648f..717fe04 100644
--- a/lib/fog/rage4.rb
+++ b/lib/fog/rage4.rb
@@ -1,2 +1 @@
 require 'fog/rage4/dns'
-
diff --git a/lib/fog/rage4/core.rb b/lib/fog/rage4/core.rb
index cc6b41d..d587217 100644
--- a/lib/fog/rage4/core.rb
+++ b/lib/fog/rage4/core.rb
@@ -3,10 +3,8 @@ require 'fog/json'
 
 module Fog
   module Rage4
-
     extend Fog::Provider
 
     service(:dns, 'DNS')
-
   end
 end
diff --git a/lib/fog/rage4/dns.rb b/lib/fog/rage4/dns.rb
index 7f0e8fc..86352b8 100644
--- a/lib/fog/rage4/dns.rb
+++ b/lib/fog/rage4/dns.rb
@@ -3,7 +3,6 @@ require 'fog/rage4/core'
 module Fog
   module DNS
     class Rage4 < Fog::Service
-
       requires :rage4_email, :rage4_api_key
       recognizes :rage4_url, :host, :path, :port, :scheme, :persistent
 
@@ -33,7 +32,6 @@ module Fog
       request :set_record_failover
 
       class Real
-
         def initialize(options={})
           @rage4_email = options[:rage4_email]
           @rage4_password  = options[:rage4_api_key]
diff --git a/lib/fog/rage4/models/dns/record.rb b/lib/fog/rage4/models/dns/record.rb
index a463246..522c3ab 100644
--- a/lib/fog/rage4/models/dns/record.rb
+++ b/lib/fog/rage4/models/dns/record.rb
@@ -3,10 +3,7 @@ require 'fog/core/model'
 module Fog
   module DNS
     class Rage4
-
       class Record < Fog::Model
-
-
         identity :id
 
         attribute :name
@@ -25,7 +22,6 @@ module Fog
         attribute :is_active
         attribute :udp_limit
 
-
         def initialize(attributes={})
           super
         end
@@ -71,9 +67,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/models/dns/records.rb b/lib/fog/rage4/models/dns/records.rb
index a35c716..d3fad1d 100644
--- a/lib/fog/rage4/models/dns/records.rb
+++ b/lib/fog/rage4/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/rage4/models/dns/record'
 module Fog
   module DNS
     class Rage4
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::Rage4::Record
@@ -34,9 +32,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/models/dns/zone.rb b/lib/fog/rage4/models/dns/zone.rb
index 4bec490..c38cb22 100644
--- a/lib/fog/rage4/models/dns/zone.rb
+++ b/lib/fog/rage4/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/rage4/models/dns/records'
 module Fog
   module DNS
     class Rage4
-
       class Zone < Fog::Model
-
         identity :id
 
         attribute :domain,     :aliases => 'name'
@@ -38,9 +36,7 @@ module Fog
           merge_attributes(data)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/models/dns/zones.rb b/lib/fog/rage4/models/dns/zones.rb
index d7b255f..f7c4754 100644
--- a/lib/fog/rage4/models/dns/zones.rb
+++ b/lib/fog/rage4/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/rage4/models/dns/zone'
 module Fog
   module DNS
     class Rage4
-
       class Zones < Fog::Collection
-
         model Fog::DNS::Rage4::Zone
 
         def all
@@ -26,9 +24,7 @@ module Fog
         rescue Excon::Errors::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/create_domain.rb b/lib/fog/rage4/requests/dns/create_domain.rb
index 0123928..f4a3e37 100644
--- a/lib/fog/rage4/requests/dns/create_domain.rb
+++ b/lib/fog/rage4/requests/dns/create_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Create a domain.
         # ==== Parameters
         # * name<~String> - domain name
@@ -24,10 +23,7 @@ module Fog
                   :path     => "/rapi/createregulardomain/?name=#{name}&email=#{email}"
           )
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/create_domain_vanity.rb b/lib/fog/rage4/requests/dns/create_domain_vanity.rb
index 8c0cda1..21e802d 100644
--- a/lib/fog/rage4/requests/dns/create_domain_vanity.rb
+++ b/lib/fog/rage4/requests/dns/create_domain_vanity.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Create a domain with a vanity name server.
         # ==== Parameters
         # * name<~String> - domain name
@@ -25,10 +24,7 @@ module Fog
                     "&nsname=#{nsname}&nsprefix=#{nsprefix}"
           )
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/create_record.rb b/lib/fog/rage4/requests/dns/create_record.rb
index 710b81e..0ea95d7 100644
--- a/lib/fog/rage4/requests/dns/create_record.rb
+++ b/lib/fog/rage4/requests/dns/create_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Create a record
         # ==== Parameters
         # * domain id <~Integer> The id of the domain you wish to create a record for
@@ -26,13 +25,9 @@ module Fog
         #      * 'id'<~Integer>
         #      * 'error'<~String>
 
-
 # https://secure.rage4.com/rapi/createrecord/
 
-
         def create_record(domain_id, name, content, type, options = {})
-
-
           path = "/rapi/createrecord/#{domain_id}"
           path << "?name=#{name}&content=#{content}&type=#{type}"
 
@@ -58,10 +53,7 @@ module Fog
                   :path     => path
           )
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb b/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb
index 25dfc5d..dea459d 100644
--- a/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb
+++ b/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Create a reverse domain for an ipv4 address .
         # ==== Parameters
         # * name<~String> - expects an ipv5 address
@@ -23,10 +22,7 @@ module Fog
                     "&subnet=#{subnet}"
           )
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/delete_domain.rb b/lib/fog/rage4/requests/dns/delete_domain.rb
index a58fec3..98467f0 100644
--- a/lib/fog/rage4/requests/dns/delete_domain.rb
+++ b/lib/fog/rage4/requests/dns/delete_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Delete a specific domain
         # ==== Parameters
         # * id<~Integer> - numeric ID
@@ -18,11 +17,8 @@ module Fog
                   :expects  => 200,
                   :method   => 'GET',
                   :path     => "/rapi/deletedomain/#{id}" )
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/delete_record.rb b/lib/fog/rage4/requests/dns/delete_record.rb
index 087750e..4a43a55 100644
--- a/lib/fog/rage4/requests/dns/delete_record.rb
+++ b/lib/fog/rage4/requests/dns/delete_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Delete a specific record
         # ==== Parameters
         # * id<~Integer> - numeric record ID
@@ -18,11 +17,8 @@ module Fog
                   :expects  => 200,
                   :method   => 'GET',
                   :path     => "/rapi/deleterecord/#{id}" )
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/get_domain.rb b/lib/fog/rage4/requests/dns/get_domain.rb
index f9cdbd1..1c8f689 100644
--- a/lib/fog/rage4/requests/dns/get_domain.rb
+++ b/lib/fog/rage4/requests/dns/get_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Get the details for a specific domain in your account.
         # ==== Parameters
         # * id<~Integer> - numeric ID
@@ -20,11 +19,8 @@ module Fog
                   :expects  => 200,
                   :method   => 'GET',
                   :path     => "/rapi/getdomain/#{id}" )
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/get_domain_by_name.rb b/lib/fog/rage4/requests/dns/get_domain_by_name.rb
index 57c59a7..f4129c3 100644
--- a/lib/fog/rage4/requests/dns/get_domain_by_name.rb
+++ b/lib/fog/rage4/requests/dns/get_domain_by_name.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Get the details for a specific domain in your account.
         # ==== Parameters
         # * name<~String> - name of domain
@@ -20,11 +19,8 @@ module Fog
                   :expects  => 200,
                   :method   => 'GET',
                   :path     => "/rapi/getdomainbyname/?name=#{name}")
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/list_domains.rb b/lib/fog/rage4/requests/dns/list_domains.rb
index ac57b2b..3f81878 100644
--- a/lib/fog/rage4/requests/dns/list_domains.rb
+++ b/lib/fog/rage4/requests/dns/list_domains.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Get the lsit of all domains for your account.
         # ==== Parameters
         #
@@ -22,20 +21,16 @@ module Fog
                   :path     => '/rapi/getdomains'
                   )
         end
-
       end
 
       class Mock
-
         def list_domains
           response = Excon::Response.new
           response.status = 200
           response.body = self.data[:domains]
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/list_geo_regions.rb b/lib/fog/rage4/requests/dns/list_geo_regions.rb
index f61a043..8357bde 100644
--- a/lib/fog/rage4/requests/dns/list_geo_regions.rb
+++ b/lib/fog/rage4/requests/dns/list_geo_regions.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # List all the geo regions available
         # ==== Parameters
         #
@@ -20,7 +19,6 @@ module Fog
                   :path     => '/rapi/listgeoregions'
                   )
         end
-
       end
     end
   end
diff --git a/lib/fog/rage4/requests/dns/list_record_types.rb b/lib/fog/rage4/requests/dns/list_record_types.rb
index d129b07..aadba76 100644
--- a/lib/fog/rage4/requests/dns/list_record_types.rb
+++ b/lib/fog/rage4/requests/dns/list_record_types.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # List all the record types available
         # ==== Parameters
         #
@@ -19,7 +18,6 @@ module Fog
                   :path     => '/rapi/listrecordtypes'
                   )
         end
-
       end
     end
   end
diff --git a/lib/fog/rage4/requests/dns/list_records.rb b/lib/fog/rage4/requests/dns/list_records.rb
index 9bd0f4a..b65f7aa 100644
--- a/lib/fog/rage4/requests/dns/list_records.rb
+++ b/lib/fog/rage4/requests/dns/list_records.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Get the list of records for the specific domain.
         #
         # ==== Parameters
@@ -23,9 +22,7 @@ module Fog
                    :method   => "GET",
                    :path     => "/rapi/getrecords/#{id}" )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/set_record_failover.rb b/lib/fog/rage4/requests/dns/set_record_failover.rb
index dc45962..50a56a3 100644
--- a/lib/fog/rage4/requests/dns/set_record_failover.rb
+++ b/lib/fog/rage4/requests/dns/set_record_failover.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Set a failover to on or off
         # ==== Parameters
         # * id<~Integer> - numeric ID
@@ -19,11 +18,8 @@ module Fog
                   :method   => 'GET',
                   :path     => "/rapi/setrecordfailover/#{id}&active=#{active}&failover=#{failover}"
             )
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/show_current_usage.rb b/lib/fog/rage4/requests/dns/show_current_usage.rb
index 26bd724..345fe40 100644
--- a/lib/fog/rage4/requests/dns/show_current_usage.rb
+++ b/lib/fog/rage4/requests/dns/show_current_usage.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Shows current usage for a single domain
         # ==== Parameters
         # * id<~Integer> - domain name numeric ID
@@ -15,11 +14,8 @@ module Fog
                   :expects  => 200,
                   :method   => 'GET',
                   :path     => "/rapi/showcurrentusage/#{id}" )
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/show_global_usage.rb b/lib/fog/rage4/requests/dns/show_global_usage.rb
index 834835e..47ebe31 100644
--- a/lib/fog/rage4/requests/dns/show_global_usage.rb
+++ b/lib/fog/rage4/requests/dns/show_global_usage.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Shows global usage for all domains
         # ==== Parameters
         #
@@ -15,11 +14,8 @@ module Fog
                   :expects  => 200,
                   :method   => 'GET',
                   :path     => "/rapi/showcurrentglobalusage/" )
-
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/update_domain.rb b/lib/fog/rage4/requests/dns/update_domain.rb
index 81e31c7..32453d6 100644
--- a/lib/fog/rage4/requests/dns/update_domain.rb
+++ b/lib/fog/rage4/requests/dns/update_domain.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Update an existing domain
         # ==== Parameters
         # * id<~Integer> - domain integer value
@@ -34,10 +33,7 @@ module Fog
                   :path     =>  path
           )
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/rage4/requests/dns/update_record.rb b/lib/fog/rage4/requests/dns/update_record.rb
index 33db82b..9fb3839 100644
--- a/lib/fog/rage4/requests/dns/update_record.rb
+++ b/lib/fog/rage4/requests/dns/update_record.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Rage4
       class Real
-
         # Updates an existing record
         # ==== Parameters
         # * record_id <~Integer> The id of the record you wish to update
@@ -26,12 +25,9 @@ module Fog
         #      * 'id'<~Integer>
         #      * 'error'<~String>
 
-
 # https://secure.rage4.com/rapi/createrecord/
 
-
         def update_record(record_id, name, content, type, options = {})
-
           path = "/rapi/updaterecord/#{record_id}"
           path << "?name=#{name}&content=#{content}&type=#{type}"
 
@@ -57,10 +53,7 @@ module Fog
                   :path     => path
           )
         end
-
       end
-
-
     end
   end
 end
diff --git a/lib/fog/riakcs/core.rb b/lib/fog/riakcs/core.rb
index 51413a2..de79d0d 100644
--- a/lib/fog/riakcs/core.rb
+++ b/lib/fog/riakcs/core.rb
@@ -3,7 +3,6 @@ require 'fog/json'
 
 module Fog
   module RiakCS
-
     module MultipartUtils
       require 'net/http'
 
@@ -118,6 +117,5 @@ module Fog
 
     service(:provisioning, 'Provisioning')
     service(:usage,        'Usage')
-
   end
 end
diff --git a/lib/fog/riakcs/provisioning.rb b/lib/fog/riakcs/provisioning.rb
index 064a951..1304efb 100644
--- a/lib/fog/riakcs/provisioning.rb
+++ b/lib/fog/riakcs/provisioning.rb
@@ -3,7 +3,6 @@ require 'fog/riakcs/core'
 module Fog
   module RiakCS
     class Provisioning < Fog::Service
-
       class UserAlreadyExists  < Fog::RiakCS::Provisioning::Error; end
       class ServiceUnavailable < Fog::RiakCS::Provisioning::Error; end
 
@@ -92,7 +91,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/riakcs/requests/provisioning/create_user.rb b/lib/fog/riakcs/requests/provisioning/create_user.rb
index 9693314..ebea199 100644
--- a/lib/fog/riakcs/requests/provisioning/create_user.rb
+++ b/lib/fog/riakcs/requests/provisioning/create_user.rb
@@ -39,7 +39,7 @@ module Fog
         end
 
         def user_exists?(email)
-          data.detect do |key, value|
+          data.find do |key, value|
             value[:email] == email
           end
         end
diff --git a/lib/fog/riakcs/usage.rb b/lib/fog/riakcs/usage.rb
index 1f549f7..241a147 100644
--- a/lib/fog/riakcs/usage.rb
+++ b/lib/fog/riakcs/usage.rb
@@ -4,7 +4,6 @@ require 'time'
 module Fog
   module RiakCS
     class Usage < Fog::Service
-
       requires :riakcs_access_key_id, :riakcs_secret_access_key
       recognizes :host, :path, :port, :scheme, :persistent
 
@@ -58,7 +57,6 @@ module Fog
           )
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/sakuracloud.rb b/lib/fog/sakuracloud.rb
deleted file mode 100644
index 788c635..0000000
--- a/lib/fog/sakuracloud.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-require 'fog/core'
-require 'fog/sakuracloud/compute'
-require 'fog/sakuracloud/volume'
-
-module Fog
-  module SakuraCloud
-    extend Fog::Provider
-
-    SAKURACLOUD_API_VERSION = '1.1' unless defined? SAKURACLOUD_API_VERSION
-    SAKURACLOUD_API_ZONE = "is1b" unless defined? SAKURACLOUD_API_ZONE
-    SAKURACLOUD_API_ENDPOINT = "/cloud/zone/#{SAKURACLOUD_API_ZONE}/api/cloud/#{SAKURACLOUD_API_VERSION}/"
-
-    service(:compute, 'Compute')
-    service(:volume, 'Volume')
-  end
-end
diff --git a/lib/fog/sakuracloud/compute.rb b/lib/fog/sakuracloud/compute.rb
deleted file mode 100644
index aba01c0..0000000
--- a/lib/fog/sakuracloud/compute.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-require 'fog/sakuracloud'
-require 'fog/compute'
-
-module Fog
-  module Compute
-    class SakuraCloud < Fog::Service
-
-      requires     :sakuracloud_api_token
-      requires     :sakuracloud_api_token_secret
-
-      recognizes   :sakuracloud_api_url
-
-      model_path 'fog/sakuracloud/models/compute'
-      model      :server
-      collection :servers
-      model      :plan
-      collection :plans
-      model      :ssh_key
-      collection :ssh_keys
-      model      :zone
-      collection :zones
-
-      request_path 'fog/sakuracloud/requests/compute'
-      request      :list_servers
-      request      :create_server
-      request      :delete_server
-      request      :boot_server
-      request      :stop_server
-      request      :list_plans
-      request      :list_ssh_keys
-      request      :list_zones
-
-      class Real
-        def initialize(options = {})
-          @auth_encord = Base64.strict_encode64([
-            options[:sakuracloud_api_token],
-            options[:sakuracloud_api_token_secret]
-          ].join(':'))
-          Fog.credentials[:sakuracloud_api_token]        = options[:sakuracloud_api_token]
-          Fog.credentials[:sakuracloud_api_token_secret] = options[:sakuracloud_api_token_secret]
-
-          @sakuracloud_api_url = options[:sakuracloud_api_url] || 'https://secure.sakura.ad.jp'
-
-          @connection = Fog::Core::Connection.new(@sakuracloud_api_url)
-        end
-
-        def request(params)
-          response = parse @connection.request(params)
-          response
-        end
-
-        private
-        def parse(response)
-          return response if response.body.empty?
-          response.body = Fog::JSON.decode(response.body)
-          response
-        end
-      end
-
-      class Mock
-        def initialize(options = {})
-        end
-      end
-
-    end #SakuraCloud
-  end #Compute
-end
diff --git a/lib/fog/sakuracloud/docs/getting_started.md b/lib/fog/sakuracloud/docs/getting_started.md
deleted file mode 100644
index 1262d63..0000000
--- a/lib/fog/sakuracloud/docs/getting_started.md
+++ /dev/null
@@ -1,450 +0,0 @@
-# Getting started for SakuraCloud
-
-## Links
-
-- Product Information: http://cloud.sakura.ad.jp/
-- API Reference(1.1): http://developer.sakura.ad.jp/cloud/api/1.1/
-
-## Requeirement
-
-- API TOKEN
-- API TOKEN SECRET
-
-You can retreave them from dashboard.
-
-
-## Resources
-
-|Service |Class |Description |
-|----|----|----|
-|Volume(disk) |Fog::Volume::SakuraCloud |Block device for server. |
-|Compute |Fog::Compute::SakuraCloud |Server. |
-
-## Simple start
-
-Inital boot from template with ssh key.
-
-```
-require 'fog'
-compute = Fog::Compute::SakuraCloud.new(
-  :sakuracloud_api_token => 'YOUR_API_TOKEN',
-  :sakuracloud_api_token_secret => 'YOUR_API_TOKEN_SECRET'
-)
-
-
-server = compute.servers.create({
-  :sakuracloud_api_token => 'YOUR_API_TOKEN',
-  :sakuracloud_api_token_secret => 'YOUR_API_TOKEN_SECRET',
-  :sshkey => '11260003****',          # Your SSH Key id
-  :serverplan => '2001',              # Server Type
-  :volume => {
-    :diskplan => 4,                   # Type SSD
-    :sourcearchive => '112500463685'  # Ubuntu12.04
-  },
-  :boot => true
-})
-```
-
-You can login or integrate with configuration management tools to server at once.
-
-
-## Services
-
-Usage for SakuraCloud Services.
-
-### Volume(disk) Service
-
-Initailize Volume service.
-
-```
-require 'fog'
-volume = Fog::Volume::SakuraCloud.new(
-  :sakuracloud_api_token => 'YOUR_API_TOKEN',
-  :sakuracloud_api_token_secret => 'YOUR_API_TOKEN_SECRET'
-)
-```
-
-or initailize with `Fog.credentials`
-
-
-```
-Fog.credentials[:sakuracloud_api_token] = 'YOUR_API_TOKEN'
-Fog.credentials[:sakuracloud_api_token_secret] = 'YOUR_API_TOKEN_SECRET'
-
-volume = Fog::Volume[:sakuracloud]
-```
-
-
-#### Listing disk plans
-
-use `volume.plans`.
-
-```
-> volume.plans
-
-=> [  <Fog::Volume::SakuraCloud::Plan
-    id=4,
-    name="SSDプラン"
-  >,
-   <Fog::Volume::SakuraCloud::Plan
-    id=2,
-    name="標準プラン"
-  >]
-```
-
-
-
-#### Listing volume templates(archives)
-
-use `volume.archives`.
-
-```
-require 'fog'
-volume = Fog::Volume::SakuraCloud.new(
-  :sakuracloud_api_token => 'YOUR_API_TOKEN',
-  :sakuracloud_api_token_secret => 'YOUR_API_TOKEN_SECRET'
-)
-
-
-> volume.archives
-
-=> [  <Fog::Volume::SakuraCloud::Archive
-    id="112500514887",
-    name="CentOS 5.10 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500571575",
-    name="CentOS 6.5 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500556904",
-    name="Scientific Linux 6.4 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500587018",
-    name="Scientific Linux 6.5 RC1 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500556903",
-    name="FreeBSD 8.3 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500556906",
-    name="FreeBSD 9.1 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500556907",
-    name="Ubuntu Server 13.04 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500463685",
-    name="Ubuntu Server 12.04.3 LTS 64bit (基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500490219",
-    name="Ubuntu Server 13.10 64bit(基本セット)"
-  >,
-   <Fog::Volume::SakuraCloud::Archive
-    id="112500556909",
-    name="Debian GNU/Linux 6.0.7 64bit (基本セット)"
-  >,
--- snip --
-```
-
-#### Create volume from templates(archives)
-
-use `volume.disks.create` with `:name`, `:plan`(Plan id) and `:source_archive`(id, optional)
-
-##### Example: Create SSD installed 'Ubuntu 12.04'.
-
-```
-disk = volume.disks.create :name => 'foobar',
-                           :plan  => 4,  # Type SSD
-                           :source_archive => 112500463685 # Ubuntu12.04
-```
-
-It creates disk.
-
-```
-=>   <Fog::Volume::SakuraCloud::Disk
-    id="112600053876",
-    name="foobar",
-    Connection="virtio",
-    Availability="migrating",
-    Plan={"id"=>4, "StorageClass"=>"iscsi1204", "name"=>"SSDプラン"},
-    SizeMB=20480,
-    SourceDisk=nil,
-    SourceArchive={"id"=>"112500463685", "name"=>"Ubuntu Server 12.04.3 LTS 64bit (基本セット)", "Availability"=>"available", "SizeMB"=>20480, "Plan"=>{"id"=>2, "StorageClass"=>"iscsi1204", "name"=>"標準プラン"}, "Storage"=>{"id"=>"3100297001", "Class"=>"iscsi1204", "name"=>"sac-is1b-arc-st01", "Zone"=>{"id"=>31002, "name"=>"is1b", "Region"=>{"id"=>310, "name"=>"石狩"}}, "DiskPlan"=>{"id"=>2, "StorageClass"=>"iscsi1204", "name"=>"標準プラン"}}, "BundleInfo"=>nil}
-  >
-```
-
-#### Listing available disks
-
-use `volume.disks`
-
-```
-> volume.disks
-
-=> [  <Fog::Volume::SakuraCloud::Disk
-    id="112600053837",
-    name="ed86efca-d7f1-4367-97df-30e16c4f331e",
-    Connection="virtio",
-    Availability="available",
-    Plan={"id"=>4, "StorageClass"=>"iscsi1204", "name"=>"SSDプラン"},
-    SizeMB=20480,
-    SourceDisk=nil,
-    SourceArchive={"id"=>"112500463685", "name"=>"Ubuntu Server 12.04.3 LTS 64bit (基本セット)", "Availability"=>"available", "SizeMB"=>20480, "Plan"=>{"id"=>2, "StorageClass"=>"iscsi1204", "Na
-  >,
-   <Fog::Volume::SakuraCloud::Disk
-    id="112600053840",
-    name="2a3f571a-2562-49e1-a4ea-86f7cf34c571",
-    Connection="virtio",
-    Availability="available",
-    Plan={"id"=>4, "StorageClass"=>"iscsi1204", "name"=>"SSDプラン"},
-    SizeMB=20480,
-    SourceDisk=nil,
-    SourceArchive={"id"=>"112500463685", "name"=>"Ubuntu Server 12.04.3 LTS 64bit (基本セット)", "Availability"=>"available", "SizeMB"=>20480, "Plan"=>{"id"=>2, "StorageClass"=>"iscsi1204", "Na
-  >,
--- snip --
-
-```
-
-Get Disk id or any attributes.
-
-```
-> volume.disks.first.id
-=> "112600053837"
-
-> volume.disks.first.SizeMB
-=> 20480
-```
-
-or
-
-```
-> disk = volume.disks.first
-> disk.id
-=> "112600053837"
-```
-
-You can reload disk attributes.
-
-```
-> disk.reload
-=>   <Fog::Volume::SakuraCloud::Disk
-    id="112600053837",
-    name="ed86efca-d7f1-4367-97df-30e16c4f331e",
-    Connection="virtio",
-    Availability="available",
-    Plan={"id"=>4, "StorageClass"=>"iscsi1204", "name"=>"SSDプラン"},
-    SizeMB=20480,
-    SourceDisk=nil,
-    SourceArchive={"id"=>"112500463685", "name"=>"Ubuntu Server 12.04.3 LTS 64bit (基本セット)", "Availability"=>"available", "SizeMB"=>20480, "Plan"=>{"id"=>2, "StorageClass"=>"iscsi1204", "name"=>"標準プラン"}, "Storage"=>{"id"=>"3100297001", "Class"=>"iscsi1204", "name"=>"sac-is1b-arc-st01", "Zone"=>{"id"=>31002, "name"=>"is1b", "Region"=>{"id"=>310, "name"=>"石狩"}}, "DiskPlan"=>{"id"=>2, "StorageClass"=>"iscsi1204", "name"=>"標準プラン"}}, "BundleInfo"=>nil}
-  >
-```
-
-#### Delete disk
-
-use `volume.disks.delete('Disk_id')`
-
-```
-> volume.disks.delete('112600053837')
-
-=> true
-```
-
-or execute delete method for disk.
-
-```
-> volume.disks.first.delete
-
-=> true
-```
-
-##### Example: Delete all disks
-
-```
-> volume.disks.each {|d| d.delete}
-```
-
-
-### SSH Key Service (Part of the Compute Service)
-
-Initailize Compute service.
-
-```
-require 'fog'
-compute = Fog::Compute::SakuraCloud.new(
-  :sakuracloud_api_token => 'YOUR_API_TOKEN',
-  :sakuracloud_api_token_secret => 'YOUR_API_TOKEN_SECRET'
-)
-```
-
-#### Listing SSH Keys
-
-use `compute.ssh_keys`
-
-```
-> compute.ssh_keys
-
-=> [  <Fog::Compute::SakuraCloud::SshKey
-    id="11260003****",
-    name="sawanobori",
-    PublicKey="ssh-rsa ***********************"
-  >]
-```
-
-
-#### Add SSH Key to disk.
-
-Work with Volume service.
-
-use `configure` method with SSH Key id.
-
-##### Example
-
-```
-> volume.disks.first.configure(11260003****)
-
-=> true
-```
-
-
-### Compute Service
-
-Initailize Compute service.
-
-```
-require 'fog'
-compute = Fog::Compute::SakuraCloud.new(
-  :sakuracloud_api_token => 'YOUR_API_TOKEN',
-  :sakuracloud_api_token_secret => 'YOUR_API_TOKEN_SECRET'
-)
-```
-
-or initailize with `Fog.credentials`
-
-
-```
-Fog.credentials[:sakuracloud_api_token] = 'YOUR_API_TOKEN'
-Fog.credentials[:sakuracloud_api_token_secret] = 'YOUR_API_TOKEN_SECRET'
-
-volume = Fog::Compute[:sakuracloud]
-```
-
-
-#### Listing server plans
-
-use `compute.plans`.
-
-```
-> compute.plans
-
-=> [  <Fog::Compute::SakuraCloud::Plan
-    id=1001,
-    name="プラン/1Core-1GB",
-    ServiceClass="cloud/plan/1core-1gb",
-    CPU=1,
-    MemoryMB=1024
-  >,
-   <Fog::Compute::SakuraCloud::Plan
-    id=2001,
-    name="プラン/1Core-2GB",
-    ServiceClass="cloud/plan/1core-2gb",
-    CPU=1,
-    MemoryMB=2048
-  >,
--- snip --
-```
-
-
-#### Listing zones
-
-use `compute.zones`.
-
-```
-> compute.zones
-
-=> [  <Fog::Compute::SakuraCloud::Zone
-    id=31001,
-    name="is1a",
-    Description="石狩第1ゾーン"
-  >,
-   <Fog::Compute::SakuraCloud::Zone
-    id=31002,
-    name="is1b",
-    Description="石狩第2ゾーン"
-  >]
-```
-
-#### Create server
-
-use `volume.servers.create` with `:name`, `:ServerPlan`(Plan id)
-
-##### Example: Create server with public switch connection.
-
-```
-server = compute.servers.create :name => 'foobar',
-                                :ServerPlan  => 2001
-```
-
-It creates server.
-
-```
-=>   <Fog::Compute::SakuraCloud::Server
-    id="112600055437",
-    name="foobar",
-    ServerPlan={"id"=>2001, "name"=>"プラン/1Core-2GB", "CPU"=>1, "MemoryMB"=>2048, "ServiceClass"=>"cloud/plan/1core-2gb", "Availability"=>"available"},
-    Instance={"Server"=>{"id"=>"112600055437"}, "Status"=>"down", "BeforeStatus"=>nil, "StatusChangedAt"=>nil, "MigrationProgress"=>nil, "MigrationSchedule"=>nil, "IsMigrating"=>nil, "MigrationAllowed"=>nil, "ModifiedAt"=>"2014-01-30T23:54:47+09:00", "Host"=>nil, "CDROM"=>nil, "CDROMStorage"=>nil},
-    Disks=[],
-    Interfaces=[{"id"=>"112600055438", "MACAddress"=>"9C:A3:BA:30:13:28", "IPAddress"=>"133.242.236.247", "UserIPAddress"=>nil, "Hostname"=>nil, "Switch"=>{"id"=>"112500556860", "name"=>"スイッチ", "Scope"=>"shared", "Subnet"=>{"id"=>nil, "NetworkAddress"=>"133.242.236.0", "NetworkMaskLen"=>24, "DefaultRoute"=>"133.242.236.1", "Internet"=>{"BandWidthMbps"=>100}}, "UserSubnet"=>nil}, "PacketFilter"=>nil}]
-  >
-```
-
-#### Listing available servers
-
-use `compute.servers`
-
-```
-> compute.servers
-
-=> [  <Fog::Compute::SakuraCloud::Server
-    id="112600055437",
-    name="foobar",
-    ServerPlan={"id"=>2001, "name"=>"プラン/1Core-2GB", "CPU"=>1, "MemoryMB"=>2048, "ServiceClass"=>"cloud/plan/1core-2gb", "Availability"=>"available"},
-    Instance={"Server"=>{"id"=>"112600055437"}, "Status"=>"down", "BeforeStatus"=>nil, "StatusChangedAt"=>nil, "MigrationProgress"=>nil, "MigrationSchedule"=>nil, "IsMigrating"=>nil, "MigrationAllowed"=>nil, "ModifiedAt"=>"2014-01-30T23:54:47+09:00", "Host"=>nil, "CDROM"=>nil, "CDROMStorage"=>nil},
-    Disks=[],
-    Interfaces=[{"id"=>"112600055438", "MACAddress"=>"9C:A3:BA:30:13:28", "IPAddress"=>"133.242.236.247", "UserIPAddress"=>nil, "Hostname"=>nil, "Switch"=>{"id"=>"112500556860", "name"=>"スイッチ", "Scope"=>"shared", "Subnet"=>{"id"=>nil, "NetworkAddress"=>"133.242.236.0", "NetworkMaskLen"=>24, "DefaultRoute"=>"133.242.236.1", "Internet"=>{"BandWidthMbps"=>100}}, "UserSubnet"=>nil}, "PacketFilter"=>nil}]
-  >]
-
-```
-
-
-#### Boot or stop servers
-
-execute boot/stop method for server.
-
-
-##### Example: boot server
-
-```
-> compute.servers.first.boot
-
-=> true
-```
-
-##### Example: stop server
-
-```
-> compute.servers.first.stop
-
-=> true
-```
-
-force stop
-
-```
-> compute.servers.first.stop(true)
-
-=> true
-```
\ No newline at end of file
diff --git a/lib/fog/sakuracloud/models/compute/plan.rb b/lib/fog/sakuracloud/models/compute/plan.rb
deleted file mode 100644
index 5b416d5..0000000
--- a/lib/fog/sakuracloud/models/compute/plan.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Plan < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-        attribute :server_class, :aliases => 'ServiceClass'
-        attribute :cpu, :aliases => 'CPU'
-        attribute :memory_mb, :aliases => 'MemoryMB'
-
-
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/plans.rb b/lib/fog/sakuracloud/models/compute/plans.rb
deleted file mode 100644
index fafafb5..0000000
--- a/lib/fog/sakuracloud/models/compute/plans.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/compute/plan'
-
-module Fog
-  module Compute
-    class SakuraCloud
-
-      class Plans < Fog::Collection
-        model Fog::Compute::SakuraCloud::Plan
-
-        def all
-          load service.list_plans.body['ServerPlans']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/server.rb b/lib/fog/sakuracloud/models/compute/server.rb
deleted file mode 100644
index 2a4f14a..0000000
--- a/lib/fog/sakuracloud/models/compute/server.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Server < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-        attribute :server_plan, :aliases => 'ServerPlan'
-        attribute :instance, :aliases => 'Instance'
-        attribute :disks, :aliases => 'Disks'
-        attribute :interfaces, :aliases => 'Interfaces'
-
-        def save
-          requires :name, :server_plan
-          data = service.create_server(@attributes[:name], @attributes[:server_plan]).body["Server"]
-          merge_attributes(data)
-          true
-        end
-
-        def boot
-          requires :id
-          service.boot_server(@attributes[:id])
-        end
-
-        def stop(force = false)
-          requires :id
-          service.stop_server(@attributes[:id], force)
-        end
-
-        def delete(disks = [])
-          requires :id
-          service.delete_server(@attributes[:id], disks)
-          true
-        end
-        alias_method :destroy, :delete
-
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/servers.rb b/lib/fog/sakuracloud/models/compute/servers.rb
deleted file mode 100644
index 66830c2..0000000
--- a/lib/fog/sakuracloud/models/compute/servers.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/compute/server'
-
-module Fog
-  module Compute
-    class SakuraCloud
-
-      class Servers < Fog::Collection
-        model Fog::Compute::SakuraCloud::Server
-
-        def all
-          load service.list_servers.body['Servers']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-        def create(options = {})
-          user = options[:user] || 'root'
-          Fog::Logger.warning("Create Server")
-          data = service.create_server(Fog::UUID.uuid, options[:serverplan]).body["Server"]
-          server = service.servers.new
-          server.merge_attributes(data)
-
-          if options[:volume]
-            disk = create_and_attach_volume(server, options)
-            server.reload
-          end
-          server.boot if options[:boot]
-          server
-        end
-
-        private
-        def create_and_attach_volume(server, options)
-            Fog::Logger.warning("Create Volume")
-            sakuracloud_api_token        = options[:sakuracloud_api_token] || Fog.credentials[:sakuracloud_api_token]
-            sakuracloud_api_token_secret = options[:sakuracloud_api_token_secret] || Fog.credentials[:sakuracloud_api_token_secret]
-            volume = Fog::Volume::SakuraCloud.new(:sakuracloud_api_token => sakuracloud_api_token, :sakuracloud_api_token_secret => sakuracloud_api_token_secret)
-            disk = volume.disks.create :name => Fog::UUID.uuid,
-                                :plan  => options[:volume][:diskplan].to_i,
-                                :source_archive => options[:volume][:sourcearchive].to_s
-            Fog::Logger.warning("Waiting disk until available")
-            disk.wait_for { availability == 'available' }
-            volume.attach_disk(disk.id, server.id)
-            disk_attached?(server, disk.id)
-            Fog::Logger.warning("Modifing disk")
-            volume.configure_disk(disk.id, options[:sshkey])
-            disk
-        end
-
-        def disk_attached?(server, disk_id)
-          until server.disks.find {|s| disk_id.to_s}
-            print '.'
-            sleep 2
-            server.reload
-          end
-        end
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/ssh_key.rb b/lib/fog/sakuracloud/models/compute/ssh_key.rb
deleted file mode 100644
index 8441c1c..0000000
--- a/lib/fog/sakuracloud/models/compute/ssh_key.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class SshKey < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-        attribute :public_key, :aliases => 'PublicKey'
-
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/ssh_keys.rb b/lib/fog/sakuracloud/models/compute/ssh_keys.rb
deleted file mode 100644
index 7c985b8..0000000
--- a/lib/fog/sakuracloud/models/compute/ssh_keys.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/compute/ssh_key'
-
-module Fog
-  module Compute
-    class SakuraCloud
-
-      class SshKeys < Fog::Collection
-        model Fog::Compute::SakuraCloud::SshKey
-
-        def all
-          load service.list_ssh_keys.body['SSHKeys']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/zone.rb b/lib/fog/sakuracloud/models/compute/zone.rb
deleted file mode 100644
index 9ebdc1a..0000000
--- a/lib/fog/sakuracloud/models/compute/zone.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Zone < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-        attribute :description, :aliases => 'Description'
-
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/compute/zones.rb b/lib/fog/sakuracloud/models/compute/zones.rb
deleted file mode 100644
index a79b2d5..0000000
--- a/lib/fog/sakuracloud/models/compute/zones.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/compute/zone'
-
-module Fog
-  module Compute
-    class SakuraCloud
-
-      class Zones < Fog::Collection
-        model Fog::Compute::SakuraCloud::Zone
-
-        def all
-          load service.list_zones.body['Zones']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/volume/archive.rb b/lib/fog/sakuracloud/models/volume/archive.rb
deleted file mode 100644
index 51e1758..0000000
--- a/lib/fog/sakuracloud/models/volume/archive.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Archive < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-        attribute :size_mb, :aliases => 'SizeMB'
-        attribute :plan, :aliases => 'Plan'
-
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/volume/archives.rb b/lib/fog/sakuracloud/models/volume/archives.rb
deleted file mode 100644
index 49dc1d3..0000000
--- a/lib/fog/sakuracloud/models/volume/archives.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/volume/archive'
-
-module Fog
-  module Volume
-    class SakuraCloud
-
-      class Archives < Fog::Collection
-        model Fog::Volume::SakuraCloud::Archive
-
-        def all
-          load service.list_archives.body['Archives']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/volume/disk.rb b/lib/fog/sakuracloud/models/volume/disk.rb
deleted file mode 100644
index 0226b2d..0000000
--- a/lib/fog/sakuracloud/models/volume/disk.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Disk < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-        attribute :connection, :aliases => 'Connection'
-        attribute :availability, :aliases => 'Availability'
-        attribute :plan, :aliases => 'Plan'
-        attribute :size_mb, :aliases => 'SizeMB'
-        attribute :source_disk, :aliases => 'SourceDisk'
-        attribute :source_archive, :aliases => 'SourceArchive'
-
-        def delete
-          service.delete_disk(identity)
-          true
-        end
-        alias_method :destroy, :delete
-
-        def save
-          requires :name, :plan, :source_archive
-          data = service.create_disk(@attributes[:name], @attributes[:plan], @attributes[:source_archive]).body["Disk"]
-          merge_attributes(data)
-          true
-        end
-
-        def configure(sshkey_id)
-          requires :id
-          service.configure_disk(@attributes[:id], sshkey_id )
-          true
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/volume/disks.rb b/lib/fog/sakuracloud/models/volume/disks.rb
deleted file mode 100644
index 7189fa6..0000000
--- a/lib/fog/sakuracloud/models/volume/disks.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/volume/disk'
-
-module Fog
-  module Volume
-    class SakuraCloud
-
-      class Disks < Fog::Collection
-        model Fog::Volume::SakuraCloud::Disk
-
-        def all
-          load service.list_disks.body['Disks']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-        def delete(id)
-          service.delete_disk(id)
-          true
-        end
-
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/volume/plan.rb b/lib/fog/sakuracloud/models/volume/plan.rb
deleted file mode 100644
index 549af52..0000000
--- a/lib/fog/sakuracloud/models/volume/plan.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-require 'fog/core/model'
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Plan < Fog::Model
-
-        identity :id, :aliases => 'ID'
-        attribute :name, :aliases => 'Name'
-
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/models/volume/plans.rb b/lib/fog/sakuracloud/models/volume/plans.rb
deleted file mode 100644
index 30e9589..0000000
--- a/lib/fog/sakuracloud/models/volume/plans.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'fog/core/collection'
-require 'fog/sakuracloud/models/volume/plan'
-
-module Fog
-  module Volume
-    class SakuraCloud
-
-      class Plans < Fog::Collection
-        model Fog::Volume::SakuraCloud::Plan
-
-        def all
-          load service.list_plans.body['DiskPlans']
-        end
-
-        def get(id)
-          all.find { |f| f.id == id }
-        rescue Fog::Errors::NotFound
-          nil
-        end
-
-      end
-
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/compute/boot_server.rb b/lib/fog/sakuracloud/requests/compute/boot_server.rb
deleted file mode 100644
index f3cc07f..0000000
--- a/lib/fog/sakuracloud/requests/compute/boot_server.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-
-        def boot_server( id )
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [200],
-            :method => 'PUT',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}/power"
-          )
-          true
-        end
-      end # Real
-
-      class Mock
-        def boot_server( id )
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/compute/create_server.rb b/lib/fog/sakuracloud/requests/compute/create_server.rb
deleted file mode 100644
index d4343e9..0000000
--- a/lib/fog/sakuracloud/requests/compute/create_server.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-
-        def create_server( name, serverplan )
-          body = {
-            "Server" => {
-              "Name" => name,
-              "ServerPlan" => {
-                "ID" => serverplan.to_i
-              },
-              "ConnectedSwitches"=>[{"Scope"=>"shared", "BandWidthMbps"=>100}]
-            }
-          }
-
-
-
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [201],
-            :method => 'POST',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server",
-            :body => Fog::JSON.encode(body)
-          )
-        end
-      end # Real
-
-      class Mock
-        def create_server( name, serverplan )
-          response = Excon::Response.new
-          response.status = 201
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/compute/delete_server.rb b/lib/fog/sakuracloud/requests/compute/delete_server.rb
deleted file mode 100644
index c08eee8..0000000
--- a/lib/fog/sakuracloud/requests/compute/delete_server.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-
-        def delete_server( id, force = false, disks = [] )
-          body = { "Force" => force, 'WithDisk' => disks }
-
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [200],
-            :method => 'DELETE',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}",
-            :body => Fog::JSON.encode(body)
-          )
-        end
-      end # Real
-
-      class Mock
-        def delete_server( id, force = false, disks = [] )
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/compute/list_plans.rb b/lib/fog/sakuracloud/requests/compute/list_plans.rb
deleted file mode 100644
index 42d2c79..0000000
--- a/lib/fog/sakuracloud/requests/compute/list_plans.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-        def list_plans(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/server"
-          )
-        end
-      end
-
-      class Mock
-        def list_plans(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "ServerPlans" =>
-            [
-            {"Index"=>0,
-              "ID"=>1001,
-              "Name"=>"プラン/1Core-1GB",
-              "CPU"=>1,
-              "MemoryMB"=>1024,
-              "ServiceClass"=>"cloud/plan/1core-1gb",
-              "Availability"=>"available"},
-            {"Index"=>1,
-              "ID"=>2001,
-              "Name"=>"プラン/1Core-2GB",
-              "CPU"=>1,
-              "MemoryMB"=>2048,
-              "ServiceClass"=>"cloud/plan/1core-2gb",
-              "Availability"=>"available"}
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/compute/list_servers.rb b/lib/fog/sakuracloud/requests/compute/list_servers.rb
deleted file mode 100644
index d20d269..0000000
--- a/lib/fog/sakuracloud/requests/compute/list_servers.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-        def list_servers(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server"
-          )
-        end
-      end
-
-      class Mock
-        def list_servers(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "Servers" =>
-            [
-            {"Index" => 0,
-              "ID"=>112600055376,
-              "Name"=>"foober1",
-              "ServerPlan"=> {},
-              "Instance"=> {},
-              "Disks"=> []},
-            {"Index" => 1,
-              "ID"=>112600055377,
-              "Name"=>"foober2",
-              "ServerPlan"=> {},
-              "Instance"=> {},
-              "Disks"=> []}
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb b/lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb
deleted file mode 100644
index 4e2d917..0000000
--- a/lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-        def list_ssh_keys(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/sshkey"
-          )
-        end
-      end
-
-      class Mock
-        def list_ssh_keys(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "SSHKeys"=>
-            [
-            {"Index"=>0,
-              "ID"=>"888888888888",
-              "Name"=>"foobar1",
-              "PublicKey"=>"ssh-rsa dummy"},
-            {"Index"=>1,
-              "ID"=>"999999999999",
-              "Name"=>"foobar2",
-              "PublicKey"=>"ssh-rsa dummy"}
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/compute/list_zones.rb b/lib/fog/sakuracloud/requests/compute/list_zones.rb
deleted file mode 100644
index d06de45..0000000
--- a/lib/fog/sakuracloud/requests/compute/list_zones.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-        def list_zones(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/zone"
-          )
-        end
-      end
-
-      class Mock
-        def list_zones(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "Zones" =>
-            [
-            {"Index"=>0,
-               "ID"=>31001,
-               "Name"=>"is1a",
-               "Description"=>"石狩第1ゾーン"},
-            {"Index"=>1,
-               "ID"=>31002,
-               "Name"=>"is1b",
-               "Description"=>"石狩第2ゾーン"}
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/compute/stop_server.rb b/lib/fog/sakuracloud/requests/compute/stop_server.rb
deleted file mode 100644
index 3593daa..0000000
--- a/lib/fog/sakuracloud/requests/compute/stop_server.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Compute
-    class SakuraCloud
-      class Real
-
-        def stop_server( id, force = false )
-          if force
-            body = { "Force" => true }
-          else
-            body = {}
-          end
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [200,202],
-            :method => 'DELETE',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}/power",
-            :body => Fog::JSON.encode(body)
-          )
-          true
-        end
-      end # Real
-
-      class Mock
-        def stop_server( id, force = false )
-          response = Excon::Response.new
-          response.status = 202
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/volume/attach_disk.rb b/lib/fog/sakuracloud/requests/volume/attach_disk.rb
deleted file mode 100644
index fbca4b4..0000000
--- a/lib/fog/sakuracloud/requests/volume/attach_disk.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-
-        def attach_disk( disk_id, server_id )
-
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [200],
-            :method => 'PUT',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/to/server/#{server_id.to_s}"
-          )
-        end
-      end # Real
-
-      class Mock
-        def attach_disk( disk_id, server_id )
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/volume/configure_disk.rb b/lib/fog/sakuracloud/requests/volume/configure_disk.rb
deleted file mode 100644
index 300ea23..0000000
--- a/lib/fog/sakuracloud/requests/volume/configure_disk.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-
-        def configure_disk( disk_id, sshkey_id )
-          body = {
-            "SSHKey" => {"ID" => sshkey_id.to_s }
-          }
-
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [200],
-            :method => 'PUT',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config",
-            :body => Fog::JSON.encode(body)
-          )
-        end
-      end # Real
-
-      class Mock
-        def configure_disk( disk_id, sshkey_id )
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/volume/create_disk.rb b/lib/fog/sakuracloud/requests/volume/create_disk.rb
deleted file mode 100644
index ab255cb..0000000
--- a/lib/fog/sakuracloud/requests/volume/create_disk.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-
-        def create_disk( name, plan, sourcearchive )
-          body = {
-           "Disk" => {
-             "Name" => name,
-             "SourceArchive" => {
-               "ID" => sourcearchive.to_s
-              },
-              "Plan" => {
-                "ID" => plan.to_i
-              }
-            }
-          }
-
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [202],
-            :method => 'POST',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk",
-            :body => Fog::JSON.encode(body)
-          )
-        end
-      end # Real
-
-      class Mock
-        def create_disk( name, plan, sourcearchive )
-          response = Excon::Response.new
-          response.status = 202
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/volume/delete_disk.rb b/lib/fog/sakuracloud/requests/volume/delete_disk.rb
deleted file mode 100644
index 78f74de..0000000
--- a/lib/fog/sakuracloud/requests/volume/delete_disk.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-
-        def delete_disk( id )
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :expects  => [200],
-            :method => 'DELETE',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{id}"
-          )
-        end
-      end # Real
-
-      class Mock
-        def delete_disk( id )
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          }
-          response
-        end
-      end
-    end # SakuraCloud
-  end # Volume
-end # Fog
diff --git a/lib/fog/sakuracloud/requests/volume/list_archives.rb b/lib/fog/sakuracloud/requests/volume/list_archives.rb
deleted file mode 100644
index 0a3602c..0000000
--- a/lib/fog/sakuracloud/requests/volume/list_archives.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-        def list_archives(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/archive"
-          )
-        end
-      end
-
-      class Mock
-        def list_archives(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "Archives" =>
-            [
-            {"Index"=>0,
-              "ID"=>112500514887,
-              "Name"=>"CentOS 5.10 64bit (基本セット)",
-              "Availability"=>"available",
-              "SizeMB"=>20480,
-              "Plan"=>{"ID"=>2, "StorageClass"=>"iscsi1204", "Name"=>"標準プラン"}
-            },
-            {"Index"=>1,
-              "ID"=>112500571575,
-              "Name"=>"CentOS 6.5 64bit (基本セット)",
-              "Availability"=>"available",
-              "SizeMB"=>102400,
-              "Plan"=>{"ID"=>2, "StorageClass"=>"iscsi1204", "Name"=>"標準プラン"}
-            }
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/volume/list_disks.rb b/lib/fog/sakuracloud/requests/volume/list_disks.rb
deleted file mode 100644
index 42f468e..0000000
--- a/lib/fog/sakuracloud/requests/volume/list_disks.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-        def list_disks(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk"
-          )
-        end
-      end
-
-      class Mock
-        def list_disks(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "Disks" =>
-            [
-            {"Index" => 0,
-              "ID" =>112600053890,
-              "Name" =>"foober1",
-              "Connection" => "virtio",
-              "Availability"=>"available",
-              "SizeMB"=>20480,
-              "Plan"=> {},
-              "SourceDisk" => nil,
-              "SourceArchive" => {}},
-            {"Index" => 1,
-              "ID" =>112600053891,
-              "Name" =>"foober2",
-              "Connection"  => "virtio",
-              "Availability"=>"available",
-              "SizeMB"=>20480,
-              "Plan"=> {},
-              "SourceDisk" => nil,
-              "SourceArchive" => {}}
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/requests/volume/list_plans.rb b/lib/fog/sakuracloud/requests/volume/list_plans.rb
deleted file mode 100644
index d927907..0000000
--- a/lib/fog/sakuracloud/requests/volume/list_plans.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# coding: utf-8
-
-module Fog
-  module Volume
-    class SakuraCloud
-      class Real
-        def list_plans(options = {})
-          request(
-            :headers => {
-              'Authorization' => "Basic #{@auth_encord}"
-            },
-            :method => 'GET',
-            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/disk"
-          )
-        end
-      end
-
-      class Mock
-        def list_plans(options = {})
-          response = Excon::Response.new
-          response.status = 200
-          response.body = {
-          "DiskPlans" =>
-            [
-            {"Index"=>0,
-              "ID"=>4,
-              "Name"=>"SSDプラン",
-              "Availability"=>"available"},
-            {"Index"=>1,
-              "ID"=>2,
-              "Name"=>"標準プラン",
-              "Availability"=>"available"}
-            ]
-          }
-          response
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/sakuracloud/volume.rb b/lib/fog/sakuracloud/volume.rb
deleted file mode 100644
index 924f556..0000000
--- a/lib/fog/sakuracloud/volume.rb
+++ /dev/null
@@ -1,92 +0,0 @@
-require 'fog/sakuracloud'
-require 'fog/volume'
-
-module Fog
-  module Volume
-    class SakuraCloud < Fog::Service
-
-      requires     :sakuracloud_api_token
-      requires     :sakuracloud_api_token_secret
-
-      recognizes   :sakuracloud_api_url
-
-      model_path 'fog/sakuracloud/models/volume'
-      model      :archive
-      collection :archives
-      model      :plan
-      collection :plans
-      model      :disk
-      collection :disks
-
-      request_path 'fog/sakuracloud/requests/volume'
-      request      :list_disks
-      request      :list_plans
-      request      :create_disk
-      request      :configure_disk
-      request      :attach_disk
-      request      :delete_disk
-      request      :list_archives
-
-      class Real
-        def initialize(options = {})
-          @auth_encord = Base64.strict_encode64([
-            options[:sakuracloud_api_token],
-            options[:sakuracloud_api_token_secret]
-          ].join(':'))
-          Fog.credentials[:sakuracloud_api_token]        = options[:sakuracloud_api_token]
-          Fog.credentials[:sakuracloud_api_token_secret] = options[:sakuracloud_api_token_secret]
-
-          @sakuracloud_api_url = options[:sakuracloud_api_url] || 'https://secure.sakura.ad.jp'
-
-          @connection = Fog::Core::Connection.new(@sakuracloud_api_url)
-        end
-
-        def request(params)
-          response = parse @connection.request(params)
-          response
-        end
-
-        private
-        def parse(response)
-          return response if response.body.empty?
-          response.body = Fog::JSON.decode(response.body)
-          response
-        end
-      end
-
-      class Mock
-
-        def self.data
-          @data ||= Hash.new do |hash, key|
-            hash[key] = {
-              :disks => [],
-              :plans => [],
-              :archives => []
-            }
-          end
-        end
-
-        def self.reset
-          @data = nil
-        end
-
-        def initialize(options={})
-          @sakuracloud_api_token        = options[:sakuracloud_api_token]
-          @sakuracloud_api_token_secret = options[:sakuracloud_api_token_secret]
-        end
-
-        def data
-          self.class.data[@sakuracloud_api_token]
-          self.class.data[@sakuracloud_api_token_secret]
-        end
-
-        def reset_data
-          self.class.data.delete(@sakuracloud_api_token)
-          self.class.data.delete(@sakuracloud_api_token_secret)
-        end
-
-      end
-
-    end #SakuraCloud
-  end #Volume
-end
diff --git a/lib/fog/schema/data_validator.rb b/lib/fog/schema/data_validator.rb
deleted file mode 100644
index 68a7d7a..0000000
--- a/lib/fog/schema/data_validator.rb
+++ /dev/null
@@ -1,154 +0,0 @@
-module Fog
-  module Schema
-    # This validates a data object against a Ruby based schema to see
-    # if they match.
-    #
-    # * An object matches the schema if +==+ or +===+ returns +true+
-    # * Hashes match if all the key's values match the classes given
-    #   in the schema as well. This can be configured in the options
-    # * Arrays match when every element in the data matches the case
-    #   given in the schema.
-    #
-    # The schema and validation are very simple and probably not
-    # suitable for some cases.
-    #
-    # The following classes can be used to check for special behaviour
-    #
-    # * Fog::Boolean - value may be +true+ or +false+
-    # * Fog::Nullable::Boolean - value may be +true+, +false+ or +nil+
-    # * Fog::Nullable::Integer - value may be an Integer or +nil+
-    # * Fog::Nullable::String
-    # * Fog::Nullable::Time
-    # * Fog::Nullable::Float
-    # * Fog::Nullable::Hash
-    # * Fog::Nullable::Array
-    #
-    # All the "nullable" objects will pass if the value is of the class
-    # or if it is +nil+. This allows you to match APIs that may include
-    # keys when the value is not available in some cases but will
-    # always be a String. Such as an password that is only displayed
-    # on the reset action.
-    #
-    # The keys for "nullable" resources should always be present but
-    # original matcher had a bug that allowed these to also appear to
-    # work as optional keys/values.
-    #
-    # If you need the original behaviour, data with a missing key is
-    # still valid, then you may pass the +:allow_optional_rules+
-    # option to the #validate method.
-    #
-    # That is not recommended because you are describing a schema
-    # with optional keys in a format that does not support it.
-    #
-    # Setting +:allow_extra_keys+ as +true+ allows the data to
-    # contain keys not declared by the schema and still pass. This
-    # is useful if new attributes appear in the API in a backwards
-    # compatible manner and can be ignored.
-    #
-    # This is the behaviour you would have seen with +strict+ being
-    # +false+ in the original test helper.
-    #
-    # @example Schema example
-    #     {
-    #       "id" => String,
-    #       "ram" => Integer,
-    #       "disks" => [
-    #         "size" => Float
-    #       ],
-    #       "dns_name" => Fog::Nullable::String,
-    #       "active" => Fog::Boolean,
-    #       "created" => DateTime
-    #     }
-    #
-    class DataValidator
-
-      def initialize
-        @message = nil
-      end
-
-      # Checks if the data structure matches the schema passed in and
-      # returns +true+ if it fits.
-      #
-      # @param [Object] data Hash or Array to check
-      # @param [Object] schema Schema pattern to check against
-      # @param [Boolean] options
-      # @option options [Boolean] :allow_extra_keys
-      #     If +true+ does not fail if extra keys are in the data
-      #     that are not in the schema.
-      # @option options [Boolean] :allow_optional_rules
-      #     If +true+ does not fail if extra keys are in the schema
-      #     that do not match the data. Not recommended!
-      #
-      # @return [Boolean] Did the data fit the schema?
-      def validate(data, schema, options = {})
-        valid = validate_value(schema, data, options)
-
-        unless valid
-          @message = "#{data.inspect} does not match #{schema.inspect}"
-        end
-        valid
-      end
-
-      # This returns the last message set by the validator
-      #
-      # @return [String]
-      def message
-        @message
-      end
-
-    private
-
-      # This contains a slightly modified version of the Hashidator gem
-      # but unfortunately the gem does not cope with Array schemas.
-      #
-      # @see https://github.com/vangberg/hashidator/blob/master/lib/hashidator.rb
-      #
-      def validate_value(validator, value, options)
-        Fog::Logger.write :debug, "[yellow][DEBUG] #{value.inspect} against #{validator.inspect}[/]\n"
-
-        case validator
-        when Array
-          return false if value.is_a?(Hash)
-          value.respond_to?(:all?) && value.all? {|x| validate_value(validator[0], x, options)}
-        when Symbol
-          value.respond_to? validator
-        when Hash
-          return false if value.is_a?(Array)
-
-          # When being strict values not specified in the schema are fails
-          unless options[:allow_extra_keys]
-            if value.respond_to?(:empty?)
-              # Validator is empty but values are not
-              return false if !value.empty? && validator.empty?
-            end
-          end
-
-          unless options[:allow_optional_rules]
-            if value.respond_to?(:empty?)
-              # Validator has rules left but no more values
-              return false if value.empty? && !validator.empty?
-            end
-          end
-
-          validator.all? do |key, sub_validator|
-            Fog::Logger.write :debug, "[blue][DEBUG] #{key.inspect} against #{sub_validator.inspect}[/]\n"
-            validate_value(sub_validator, value[key], options)
-          end
-        else
-          result = validator == value
-          result = validator === value unless result
-          # Repeat unless we have a Boolean already
-          unless (result.is_a?(TrueClass) || result.is_a?(FalseClass))
-            result = validate_value(result, value, options)
-          end
-          if result
-            Fog::Logger.write :debug, "[green][DEBUG] Validation passed: #{value.inspect} against #{validator.inspect}[/]\n"
-          else
-            Fog::Logger.write :debug, "[red][DEBUG] Validation failed: #{value.inspect} against #{validator.inspect}[/]\n"
-          end
-          result
-        end
-      end
-    end
-  end
-end
diff --git a/lib/fog/serverlove/compute.rb b/lib/fog/serverlove/compute.rb
index 1cd3d54..4654075 100644
--- a/lib/fog/serverlove/compute.rb
+++ b/lib/fog/serverlove/compute.rb
@@ -3,7 +3,6 @@ require 'fog/serverlove/core'
 module Fog
   module Compute
     class Serverlove < Fog::Service
-
       API_HOST = "api.z1-man.serverlove.com"
 
       requires :serverlove_uuid, :serverlove_api_key
@@ -40,7 +39,6 @@ module Fog
       collection  :servers
 
       class Mock
-
         def initialize(options)
           @serverlove_uuid = options[:serverlove_uuid]
           @serverlove_api_key = options[:serverlove_api_key]
@@ -49,11 +47,9 @@ module Fog
         def request(options)
           raise "Not implemented"
         end
-
       end
 
       class Real
-
         def initialize(options)
           @api_uuid = options[:serverlove_uuid] || Fog.credentials[:serverlove_uuid]
           @api_key = options[:serverlove_api_key] || Fog.credentials[:serverlove_api_key]
@@ -82,7 +78,7 @@ module Fog
         end
 
         def encode_pairs(params)
-          params.keys.collect do |key|
+          params.keys.map do |key|
             "#{key} #{params[key]}"
           end.join("\n")
         end
@@ -94,9 +90,7 @@ module Fog
             raise 'omg'
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/serverlove/core.rb b/lib/fog/serverlove/core.rb
index ecf261b..6f05186 100644
--- a/lib/fog/serverlove/core.rb
+++ b/lib/fog/serverlove/core.rb
@@ -6,6 +6,5 @@ module Fog
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/serverlove/models/compute/image.rb b/lib/fog/serverlove/models/compute/image.rb
index 335719c..0ad1b24 100644
--- a/lib/fog/serverlove/models/compute/image.rb
+++ b/lib/fog/serverlove/models/compute/image.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class Serverlove
-
       class Image < Fog::Model
-
         identity :id, :aliases => 'drive'
 
         attribute :name
@@ -50,7 +48,6 @@ module Fog
           allowed = [:name, :size]
           attributes.select {|k,v| allowed.include? k}
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/models/compute/images.rb b/lib/fog/serverlove/models/compute/images.rb
index a9a2a83..181e80f 100644
--- a/lib/fog/serverlove/models/compute/images.rb
+++ b/lib/fog/serverlove/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/serverlove/models/compute/image'
 module Fog
   module Compute
     class Serverlove
-
       class Images < Fog::Collection
-
         model Fog::Compute::Serverlove::Image
 
         def all
@@ -18,9 +16,7 @@ module Fog
           data = service.get_image(image_id).body
           new(data)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/serverlove/models/compute/server.rb b/lib/fog/serverlove/models/compute/server.rb
index 99c5b6c..ad18db8 100644
--- a/lib/fog/serverlove/models/compute/server.rb
+++ b/lib/fog/serverlove/models/compute/server.rb
@@ -4,9 +4,7 @@ require 'fog/serverlove/util/compute/password_generator'
 module Fog
   module Compute
     class Serverlove
-
       class Server < Fog::Model
-
         identity :id, :aliases => 'server'
 
         attribute :name
diff --git a/lib/fog/serverlove/models/compute/servers.rb b/lib/fog/serverlove/models/compute/servers.rb
index 55107f1..3481d33 100644
--- a/lib/fog/serverlove/models/compute/servers.rb
+++ b/lib/fog/serverlove/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/serverlove/models/compute/server'
 module Fog
   module Compute
     class Serverlove
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Serverlove::Server
 
         def all
@@ -18,9 +16,7 @@ module Fog
           data = service.get_server(server_id).body
           new(data)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/serverlove/requests/compute/create_image.rb b/lib/fog/serverlove/requests/compute/create_image.rb
index 5211858..f6addb1 100644
--- a/lib/fog/serverlove/requests/compute/create_image.rb
+++ b/lib/fog/serverlove/requests/compute/create_image.rb
@@ -2,16 +2,13 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def create_image(options)
           return nil if options.empty? || options.nil?
           request(:method => "post", :path => "/drives/create", :expects => 200, :options => options)
         end
-
       end
 
       class Mock
-
         def create_image(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -25,7 +22,6 @@ module Fog
           response.body = data
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/create_server.rb b/lib/fog/serverlove/requests/compute/create_server.rb
index 0213853..cb870af 100644
--- a/lib/fog/serverlove/requests/compute/create_server.rb
+++ b/lib/fog/serverlove/requests/compute/create_server.rb
@@ -2,16 +2,13 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def create_server(options)
           return nil if options.empty? || options.nil?
           request(:method => "post", :path => "/servers/create/stopped", :expects => 200, :options => options)
         end
-
       end
 
       class Mock
-
         def create_server(options = {})
           response = Excon::Response.new
           response.status = 200
@@ -27,7 +24,6 @@ module Fog
           response.body = data
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/destroy_image.rb b/lib/fog/serverlove/requests/compute/destroy_image.rb
index d0cc0c2..43ad4b6 100644
--- a/lib/fog/serverlove/requests/compute/destroy_image.rb
+++ b/lib/fog/serverlove/requests/compute/destroy_image.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def destroy_image(drive_id)
           request(:method => "post", :path => "/drives/#{drive_id}/destroy", :expects => 204)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/destroy_server.rb b/lib/fog/serverlove/requests/compute/destroy_server.rb
index aa1ba71..69588b5 100644
--- a/lib/fog/serverlove/requests/compute/destroy_server.rb
+++ b/lib/fog/serverlove/requests/compute/destroy_server.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def destroy_server(server_id)
           request(:method => "post", :path => "/servers/#{server_id}/destroy", :expects => 204)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/get_image.rb b/lib/fog/serverlove/requests/compute/get_image.rb
index 7aa0063..2b3e8a6 100644
--- a/lib/fog/serverlove/requests/compute/get_image.rb
+++ b/lib/fog/serverlove/requests/compute/get_image.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def get_image(image_id)
           request(:method => "get", :path => "/drives/#{image_id}/info", :expects => 200)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/get_images.rb b/lib/fog/serverlove/requests/compute/get_images.rb
index 771296f..e718e67 100644
--- a/lib/fog/serverlove/requests/compute/get_images.rb
+++ b/lib/fog/serverlove/requests/compute/get_images.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def get_images
           request(:method => "get", :path => "/drives/info", :expects => 200)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/get_server.rb b/lib/fog/serverlove/requests/compute/get_server.rb
index 5f42e2b..9f4716c 100644
--- a/lib/fog/serverlove/requests/compute/get_server.rb
+++ b/lib/fog/serverlove/requests/compute/get_server.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def get_server(server_id)
           request(:method => "get", :path => "/servers/#{server_id}/info", :expects => 200)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/get_servers.rb b/lib/fog/serverlove/requests/compute/get_servers.rb
index 6fe172a..f7f7204 100644
--- a/lib/fog/serverlove/requests/compute/get_servers.rb
+++ b/lib/fog/serverlove/requests/compute/get_servers.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def get_servers
           request(:method => "get", :path => "/servers/info", :expects => 200)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/load_standard_image.rb b/lib/fog/serverlove/requests/compute/load_standard_image.rb
index 8133781..a4c64c1 100644
--- a/lib/fog/serverlove/requests/compute/load_standard_image.rb
+++ b/lib/fog/serverlove/requests/compute/load_standard_image.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def load_standard_image(destination_image, source_image)
           request(:method => "post", :path => "/drives/#{destination_image}/image/#{source_image}/gunzip", :expects => 204)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/reset_server.rb b/lib/fog/serverlove/requests/compute/reset_server.rb
index aef2fd4..f680a65 100644
--- a/lib/fog/serverlove/requests/compute/reset_server.rb
+++ b/lib/fog/serverlove/requests/compute/reset_server.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def reset_server(server_id)
           request(:method => "post", :path => "/servers/#{server_id}/reset", :expects => 204)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/shutdown_server.rb b/lib/fog/serverlove/requests/compute/shutdown_server.rb
index be91bab..ed9d85b 100644
--- a/lib/fog/serverlove/requests/compute/shutdown_server.rb
+++ b/lib/fog/serverlove/requests/compute/shutdown_server.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def shutdown_server(server_id)
           request(:method => "post", :path => "/servers/#{server_id}/shutdown", :expects => 204)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/start_server.rb b/lib/fog/serverlove/requests/compute/start_server.rb
index e008406..d3c5e23 100644
--- a/lib/fog/serverlove/requests/compute/start_server.rb
+++ b/lib/fog/serverlove/requests/compute/start_server.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def start_server(server_id)
           request(:method => "post", :path => "/servers/#{server_id}/start", :expects => 200)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/stop_server.rb b/lib/fog/serverlove/requests/compute/stop_server.rb
index da181a1..e7a8613 100644
--- a/lib/fog/serverlove/requests/compute/stop_server.rb
+++ b/lib/fog/serverlove/requests/compute/stop_server.rb
@@ -2,11 +2,9 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def stop_server(server_id)
           request(:method => "post", :path => "/servers/#{server_id}/stop", :expects => 204)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/update_image.rb b/lib/fog/serverlove/requests/compute/update_image.rb
index be344c3..8d68239 100644
--- a/lib/fog/serverlove/requests/compute/update_image.rb
+++ b/lib/fog/serverlove/requests/compute/update_image.rb
@@ -2,13 +2,11 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def update_image(identifier, options)
           return nil if identifier.nil? || identifier == ""
           return nil if options.empty? || options.nil?
           request(:method => "post", :path => "/drives/#{identifier}/set", :expects => 200, :options => options)
         end
-
       end
     end
   end
diff --git a/lib/fog/serverlove/requests/compute/update_server.rb b/lib/fog/serverlove/requests/compute/update_server.rb
index eef5d3f..96b8a93 100644
--- a/lib/fog/serverlove/requests/compute/update_server.rb
+++ b/lib/fog/serverlove/requests/compute/update_server.rb
@@ -2,13 +2,11 @@ module Fog
   module Compute
     class Serverlove
       class Real
-
         def update_server(identifier, options)
           return nil if identifier.nil? || identifier == ""
           return nil if options.empty? || options.nil?
           request(:method => "post", :path => "/servers/#{identifier}/set", :expects => 200, :options => options)
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/account.rb b/lib/fog/storm_on_demand/account.rb
index 6c728ba..309aab9 100644
--- a/lib/fog/storm_on_demand/account.rb
+++ b/lib/fog/storm_on_demand/account.rb
@@ -3,9 +3,7 @@ require 'fog/storm_on_demand/shared'
 
 module Fog
   module Account
-
     class StormOnDemand < Fog::Service
-
       requires :storm_on_demand_username, :storm_on_demand_password
       recognizes :storm_on_demand_auth_url
 
@@ -18,7 +16,6 @@ module Fog
       request :expire_token
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -44,13 +41,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/billing.rb b/lib/fog/storm_on_demand/billing.rb
index cb772ad..c26cfc4 100644
--- a/lib/fog/storm_on_demand/billing.rb
+++ b/lib/fog/storm_on_demand/billing.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/shared'
 module Fog
   module Billing
     class StormOnDemand < Fog::Service
-
       requires :storm_on_demand_username, :storm_on_demand_password
       recognizes :storm_on_demand_auth_url
 
@@ -21,7 +20,6 @@ module Fog
       request :make_payment
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -47,13 +45,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/compute.rb b/lib/fog/storm_on_demand/compute.rb
index 74f0ff6..8fee8cf 100644
--- a/lib/fog/storm_on_demand/compute.rb
+++ b/lib/fog/storm_on_demand/compute.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/shared'
 module Fog
   module Compute
     class StormOnDemand < Fog::Service
-
       requires :storm_on_demand_username, :storm_on_demand_password
       recognizes :storm_on_demand_auth_url
 
@@ -62,7 +61,6 @@ module Fog
       request :resolve_notification
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {
@@ -97,13 +95,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/core.rb b/lib/fog/storm_on_demand/core.rb
index f3ad8ae..86bfa03 100644
--- a/lib/fog/storm_on_demand/core.rb
+++ b/lib/fog/storm_on_demand/core.rb
@@ -3,7 +3,6 @@ require 'fog/json'
 
 module Fog
   module StormOnDemand
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
@@ -15,7 +14,5 @@ module Fog
     service(:support, 'Support')
     service(:account, 'Account')
     service(:vpn, 'VPN')
-
   end
 end
-
diff --git a/lib/fog/storm_on_demand/dns.rb b/lib/fog/storm_on_demand/dns.rb
index 38beb46..661e23e 100644
--- a/lib/fog/storm_on_demand/dns.rb
+++ b/lib/fog/storm_on_demand/dns.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/shared'
 module Fog
   module DNS
     class StormOnDemand < Fog::Service
-
       API_URL = 'https://api.stormondemand.com'
       API_VERSION = 'v1'
 
@@ -45,7 +44,6 @@ module Fog
       request :update_zone
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -71,13 +69,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/account/token.rb b/lib/fog/storm_on_demand/models/account/token.rb
index 6768c93..bd87a0b 100644
--- a/lib/fog/storm_on_demand/models/account/token.rb
+++ b/lib/fog/storm_on_demand/models/account/token.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Account
     class StormOnDemand
-
       class Token < Fog::Model
         attribute :token
         attribute :expires
@@ -15,9 +14,7 @@ module Fog
         def expire
           service.expire_token.body['expired'].to_i == 1 ? true : false
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/account/tokens.rb b/lib/fog/storm_on_demand/models/account/tokens.rb
index dd52966..70751fd 100644
--- a/lib/fog/storm_on_demand/models/account/tokens.rb
+++ b/lib/fog/storm_on_demand/models/account/tokens.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/account/token'
 module Fog
   module Account
     class StormOnDemand
-
       class Tokens < Fog::Collection
         model Fog::Account::StormOnDemand::Token
 
@@ -12,9 +11,7 @@ module Fog
           t = service.create_token(options).body
           new(t)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/billing/invoice.rb b/lib/fog/storm_on_demand/models/billing/invoice.rb
index 6d39cc5..32b4df1 100644
--- a/lib/fog/storm_on_demand/models/billing/invoice.rb
+++ b/lib/fog/storm_on_demand/models/billing/invoice.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Billing
     class StormOnDemand
-
       class Invoice < Fog::Model
         identity :id
         attribute :accnt
@@ -20,9 +19,7 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/billing/invoices.rb b/lib/fog/storm_on_demand/models/billing/invoices.rb
index f62b766..9782741 100644
--- a/lib/fog/storm_on_demand/models/billing/invoices.rb
+++ b/lib/fog/storm_on_demand/models/billing/invoices.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/billing/invoice'
 module Fog
   module Billing
     class StormOnDemand
-
       class Invoices < Fog::Collection
         model Fog::Billing::StormOnDemand::Invoice
 
@@ -22,9 +21,7 @@ module Fog
           invoice = service.next_invoice.body
           new(invoice)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/billing/payment.rb b/lib/fog/storm_on_demand/models/billing/payment.rb
index d7c3074..eceefd1 100644
--- a/lib/fog/storm_on_demand/models/billing/payment.rb
+++ b/lib/fog/storm_on_demand/models/billing/payment.rb
@@ -3,15 +3,11 @@ require 'fog/core/model'
 module Fog
   module Billing
     class StormOnDemand
-
       class Payment < Fog::Model
-
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/billing/payments.rb b/lib/fog/storm_on_demand/models/billing/payments.rb
index 230c69d..8ab6ad6 100644
--- a/lib/fog/storm_on_demand/models/billing/payments.rb
+++ b/lib/fog/storm_on_demand/models/billing/payments.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/billing/payment'
 module Fog
   module Billing
     class StormOnDemand
-
       class Payments < Fog::Collection
         model Fog::Billing::StormOnDemand::Payment
 
@@ -13,7 +12,6 @@ module Fog
                                :card_code => card_code).body['amount']
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/config.rb b/lib/fog/storm_on_demand/models/compute/config.rb
index cf0d34d..6d88c66 100644
--- a/lib/fog/storm_on_demand/models/compute/config.rb
+++ b/lib/fog/storm_on_demand/models/compute/config.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class StormOnDemand
-
       class Config < Fog::Model
         identity :id
 
@@ -32,7 +31,6 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/compute/configs.rb b/lib/fog/storm_on_demand/models/compute/configs.rb
index eb0768e..35e5681 100644
--- a/lib/fog/storm_on_demand/models/compute/configs.rb
+++ b/lib/fog/storm_on_demand/models/compute/configs.rb
@@ -4,9 +4,7 @@ require 'fog/storm_on_demand/models/compute/config'
 module Fog
   module Compute
     class StormOnDemand
-
       class Configs < Fog::Collection
-
         model Fog::Compute::StormOnDemand::Config
 
         def all(options={})
@@ -18,9 +16,7 @@ module Fog
           data = service.get_config_details(:id => config_id).body
           new(data)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/image.rb b/lib/fog/storm_on_demand/models/compute/image.rb
index 9cfe6bf..565af49 100644
--- a/lib/fog/storm_on_demand/models/compute/image.rb
+++ b/lib/fog/storm_on_demand/models/compute/image.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class StormOnDemand
-
       class Image < Fog::Model
         identity :id
         attribute :accnt
@@ -16,7 +15,6 @@ module Fog
         attribute :template_description
         attribute :time_taken
 
-
         def destroy
           requires :identity
           service.delete_image(:id => identity)
@@ -33,9 +31,7 @@ module Fog
           service.restore_image({:id => identity}.merge!(options))
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/images.rb b/lib/fog/storm_on_demand/models/compute/images.rb
index b1dba37..8a8295c 100644
--- a/lib/fog/storm_on_demand/models/compute/images.rb
+++ b/lib/fog/storm_on_demand/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/storm_on_demand/models/compute/image'
 module Fog
   module Compute
     class StormOnDemand
-
       class Images < Fog::Collection
-
         model Fog::Compute::StormOnDemand::Image
 
         def create(options={})
@@ -23,9 +21,7 @@ module Fog
           data = service.list_images(options).body['items']
           load(data)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/notification.rb b/lib/fog/storm_on_demand/models/compute/notification.rb
index eae1b0b..417283a 100644
--- a/lib/fog/storm_on_demand/models/compute/notification.rb
+++ b/lib/fog/storm_on_demand/models/compute/notification.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class StormOnDemand
-
       class Notification < Fog::Model
         identity :id
         attribute :category
@@ -26,9 +25,7 @@ module Fog
           requires :identity
           service.resolve_notification(:id => identity).body
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/notifications.rb b/lib/fog/storm_on_demand/models/compute/notifications.rb
index 76a9697..cced0a8 100644
--- a/lib/fog/storm_on_demand/models/compute/notifications.rb
+++ b/lib/fog/storm_on_demand/models/compute/notifications.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/compute/notification'
 module Fog
   module Compute
     class StormOnDemand
-
       class Notifications < Fog::Collection
         model Fog::Compute::StormOnDemand::Notification
 
@@ -22,9 +21,7 @@ module Fog
           data = service.get_notification(options).body
           new(data)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/product.rb b/lib/fog/storm_on_demand/models/compute/product.rb
index 9535eb9..8ea08f4 100644
--- a/lib/fog/storm_on_demand/models/compute/product.rb
+++ b/lib/fog/storm_on_demand/models/compute/product.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class StormOnDemand
-
       class Product < Fog::Model
         identity :code
         attribute :alias
@@ -32,9 +31,7 @@ module Fog
           requires :identity
           service.get_product_starting_price(:code => identity).body['items']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/products.rb b/lib/fog/storm_on_demand/models/compute/products.rb
index 59bcfca..460e99c 100644
--- a/lib/fog/storm_on_demand/models/compute/products.rb
+++ b/lib/fog/storm_on_demand/models/compute/products.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/compute/product'
 module Fog
   module Compute
     class StormOnDemand
-
       class Products < Fog::Collection
         model Fog::Compute::StormOnDemand::Product
 
@@ -20,9 +19,7 @@ module Fog
         def all(options={})
           service.list_products(options).body['items']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/server.rb b/lib/fog/storm_on_demand/models/compute/server.rb
index 2722123..348eb0b 100644
--- a/lib/fog/storm_on_demand/models/compute/server.rb
+++ b/lib/fog/storm_on_demand/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class StormOnDemand
-
       class Server < Fog::Compute::Server
         identity :uniq_id
 
@@ -86,9 +85,7 @@ module Fog
           requires :identity
           service.update_server({:uniq_id => identity}.merge!(options)).body
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/servers.rb b/lib/fog/storm_on_demand/models/compute/servers.rb
index 2cca032..f68567f 100644
--- a/lib/fog/storm_on_demand/models/compute/servers.rb
+++ b/lib/fog/storm_on_demand/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/storm_on_demand/models/compute/server'
 module Fog
   module Compute
     class StormOnDemand
-
       class Servers < Fog::Collection
-
         model Fog::Compute::StormOnDemand::Server
 
         def all(options={})
@@ -23,9 +21,7 @@ module Fog
           server = service.create_server(options).body
           new(server)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/template.rb b/lib/fog/storm_on_demand/models/compute/template.rb
index 98a58cb..74dc09d 100644
--- a/lib/fog/storm_on_demand/models/compute/template.rb
+++ b/lib/fog/storm_on_demand/models/compute/template.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class StormOnDemand
-
       class Template < Fog::Model
         identity :id
         attribute :name
@@ -22,7 +21,6 @@ module Fog
         requires :identity
         service.restore_template({:id => identity}.merge!(options))
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/compute/templates.rb b/lib/fog/storm_on_demand/models/compute/templates.rb
index 5b28623..1228fc9 100644
--- a/lib/fog/storm_on_demand/models/compute/templates.rb
+++ b/lib/fog/storm_on_demand/models/compute/templates.rb
@@ -4,9 +4,7 @@ require 'fog/storm_on_demand/models/compute/template'
 module Fog
   module Compute
     class StormOnDemand
-
       class Templates < Fog::Collection
-
         model Fog::Compute::StormOnDemand::Template
 
         def all(options={})
@@ -18,9 +16,7 @@ module Fog
           tpl = service.get_template_details(:id => template_id).body
           new(tpl)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/dns/domain.rb b/lib/fog/storm_on_demand/models/dns/domain.rb
index ef0374b..f219dfe 100644
--- a/lib/fog/storm_on_demand/models/dns/domain.rb
+++ b/lib/fog/storm_on_demand/models/dns/domain.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class StormOnDemand
-
       class Domain < Fog::Model
         identity  :domain
         attribute :admin_handle
@@ -26,9 +25,7 @@ module Fog
           service.renew_domain(:domain => identity, :years => years)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/dns/domains.rb b/lib/fog/storm_on_demand/models/dns/domains.rb
index 5d8500f..45d09ea 100644
--- a/lib/fog/storm_on_demand/models/dns/domains.rb
+++ b/lib/fog/storm_on_demand/models/dns/domains.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/dns/domain'
 module Fog
   module DNS
     class StormOnDemand
-
       class Domains < Fog::Collection
         model Fog::DNS::StormOnDemand::Domain
 
@@ -12,9 +11,7 @@ module Fog
           domains = service.list_domains(options).body['items']
           load(domains)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/dns/record.rb b/lib/fog/storm_on_demand/models/dns/record.rb
index ee034d3..c2e2a4a 100644
--- a/lib/fog/storm_on_demand/models/dns/record.rb
+++ b/lib/fog/storm_on_demand/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class StormOnDemand
-
       class Record < Fog::Model
         identity :id
         attribute :adminEmail
@@ -56,9 +55,7 @@ module Fog
           requires :identity
           service.update_record_region({:record_id => identity}.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/dns/records.rb b/lib/fog/storm_on_demand/models/dns/records.rb
index 297f02d..8b06908 100644
--- a/lib/fog/storm_on_demand/models/dns/records.rb
+++ b/lib/fog/storm_on_demand/models/dns/records.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/dns/record'
 module Fog
   module DNS
     class StormOnDemand
-
       class Records < Fog::Collection
         model Fog::DNS::StormOnDemand::Record
 
@@ -22,9 +21,7 @@ module Fog
           recs = service.list_records(options).body['items']
           load(recs)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/dns/reverse.rb b/lib/fog/storm_on_demand/models/dns/reverse.rb
index 5df7ddd..30dd38d 100644
--- a/lib/fog/storm_on_demand/models/dns/reverse.rb
+++ b/lib/fog/storm_on_demand/models/dns/reverse.rb
@@ -4,11 +4,9 @@ module Fog
   module DNS
     class StormOnDemand
       class Reverse < Fog::Model
-
         def initialize(attributes={})
           super
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/dns/reverses.rb b/lib/fog/storm_on_demand/models/dns/reverses.rb
index 2305831..991845a 100644
--- a/lib/fog/storm_on_demand/models/dns/reverses.rb
+++ b/lib/fog/storm_on_demand/models/dns/reverses.rb
@@ -1,10 +1,9 @@
-require 'fog/core/colletion'
+require 'fog/core/collection'
 require 'fog/storm_on_demand/models/dns/reverse'
 
 module Fog
   module DNS
     class StormOnDemand
-
       class Reverses < Fog::Collection
         model Fog::DNS::StormOnDemand::Reverse
 
@@ -15,9 +14,7 @@ module Fog
         def update(options)
           service.update_reverse(options).body
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/dns/zone.rb b/lib/fog/storm_on_demand/models/dns/zone.rb
index 5e3992d..5cb7258 100644
--- a/lib/fog/storm_on_demand/models/dns/zone.rb
+++ b/lib/fog/storm_on_demand/models/dns/zone.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class StormOnDemand
-
       class Zone < Fog::Model
         identity :id
         attribute :active
@@ -33,7 +32,6 @@ module Fog
           requires :identity
           service.update_zone({:id => identity}.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/dns/zones.rb b/lib/fog/storm_on_demand/models/dns/zones.rb
index 88aa8a5..8647587 100644
--- a/lib/fog/storm_on_demand/models/dns/zones.rb
+++ b/lib/fog/storm_on_demand/models/dns/zones.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/dns/zone'
 module Fog
   module DNS
     class StormOnDemand
-
       class Zones < Fog::Collection
         model Fog::DNS::StormOnDemand::Zone
 
@@ -22,9 +21,7 @@ module Fog
           zones = service.list_zones(options).body['items']
           load(zones)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/monitoring/bandwidth.rb b/lib/fog/storm_on_demand/models/monitoring/bandwidth.rb
index 23a6461..50d716c 100644
--- a/lib/fog/storm_on_demand/models/monitoring/bandwidth.rb
+++ b/lib/fog/storm_on_demand/models/monitoring/bandwidth.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Monitoring
     class StormOnDemand
-
       class Bandwidth < Fog::Model
         attribute :actual
         attribute :averages
@@ -15,9 +14,7 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/monitoring/bandwidths.rb b/lib/fog/storm_on_demand/models/monitoring/bandwidths.rb
index 04a9fcd..509abc7 100644
--- a/lib/fog/storm_on_demand/models/monitoring/bandwidths.rb
+++ b/lib/fog/storm_on_demand/models/monitoring/bandwidths.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/monitoring/bandwidth'
 module Fog
   module Monitoring
     class StormOnDemand
-
       class Bandwidths < Fog::Collection
         model Fog::Monitoring::StormOnDemand::Bandwidth
 
@@ -16,7 +15,6 @@ module Fog
           bw = service.get_bandwidth_stats(:uniq_id => uniq_id).body
           new(bw)
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/monitoring/load.rb b/lib/fog/storm_on_demand/models/monitoring/load.rb
index 47b2cda..30f359d 100644
--- a/lib/fog/storm_on_demand/models/monitoring/load.rb
+++ b/lib/fog/storm_on_demand/models/monitoring/load.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Monitoring
     class StormOnDemand
-
       class Load < Fog::Model
         attribute :disk
         attribute :domain
@@ -15,9 +14,7 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/monitoring/loads.rb b/lib/fog/storm_on_demand/models/monitoring/loads.rb
index 56919d1..c896f4a 100644
--- a/lib/fog/storm_on_demand/models/monitoring/loads.rb
+++ b/lib/fog/storm_on_demand/models/monitoring/loads.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/monitoring/load'
 module Fog
   module Monitoring
     class StormOnDemand
-
       class Loads < Fog::Collection
         model Fog::Monitoring::StormOnDemand::Load
 
@@ -16,9 +15,7 @@ module Fog
           load = service.get_load_stats(:uniq_id => uniq_id).body
           new(load)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/monitoring/monitor_service.rb b/lib/fog/storm_on_demand/models/monitoring/monitor_service.rb
index a0b8c15..2b6cff5 100644
--- a/lib/fog/storm_on_demand/models/monitoring/monitor_service.rb
+++ b/lib/fog/storm_on_demand/models/monitoring/monitor_service.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Monitoring
     class StormOnDemand
-
       class MonitorService < Fog::Model
         attribute :can_monitor
         attribute :enabled
@@ -14,9 +13,7 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/monitoring/monitor_services.rb b/lib/fog/storm_on_demand/models/monitoring/monitor_services.rb
index add4aac..9bc09da 100644
--- a/lib/fog/storm_on_demand/models/monitoring/monitor_services.rb
+++ b/lib/fog/storm_on_demand/models/monitoring/monitor_services.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/monitoring/monitor_service'
 module Fog
   module Monitoring
     class StormOnDemand
-
       class MonitorServices < Fog::Collection
         model Fog::Monitoring::StormOnDemand::MonitorService
 
@@ -25,7 +24,6 @@ module Fog
           status = service.update_service(options).body
           new(status)
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/balancer.rb b/lib/fog/storm_on_demand/models/network/balancer.rb
index c61637b..d4ab6de 100644
--- a/lib/fog/storm_on_demand/models/network/balancer.rb
+++ b/lib/fog/storm_on_demand/models/network/balancer.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Network
     class StormOnDemand
-
       class Balancer < Fog::Model
-
         identity :uniq_id
 
         attribute :capabilities
@@ -52,9 +50,7 @@ module Fog
           requires :identity
           service.update_balancer({:uniq_id => identity}.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/network/balancers.rb b/lib/fog/storm_on_demand/models/network/balancers.rb
index 3c863ca..6fdf154 100644
--- a/lib/fog/storm_on_demand/models/network/balancers.rb
+++ b/lib/fog/storm_on_demand/models/network/balancers.rb
@@ -4,9 +4,7 @@ require 'fog/storm_on_demand/models/network/balancer'
 module Fog
   module Network
     class StormOnDemand
-
       class Balancers < Fog::Collection
-
         model Fog::Network::StormOnDemand::Balancer
 
         def all(options={})
@@ -36,9 +34,7 @@ module Fog
         def strategies
           service.get_balancer_strategies.body['strategies']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/network/firewall.rb b/lib/fog/storm_on_demand/models/network/firewall.rb
index 3b52f85..9487f58 100644
--- a/lib/fog/storm_on_demand/models/network/firewall.rb
+++ b/lib/fog/storm_on_demand/models/network/firewall.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Network
     class StormOnDemand
-
       class Firewall < Fog::Model
         attribute :allow
         attribute :rules
@@ -13,7 +12,6 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/firewalls.rb b/lib/fog/storm_on_demand/models/network/firewalls.rb
index a32c0cd..21a4b4b 100644
--- a/lib/fog/storm_on_demand/models/network/firewalls.rb
+++ b/lib/fog/storm_on_demand/models/network/firewalls.rb
@@ -25,7 +25,6 @@ module Fog
           service.update_firewall(options)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/network_ip.rb b/lib/fog/storm_on_demand/models/network/network_ip.rb
index 445b16f..cfb7662 100644
--- a/lib/fog/storm_on_demand/models/network/network_ip.rb
+++ b/lib/fog/storm_on_demand/models/network/network_ip.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Network
     class StormOnDemand
-
       class NetworkIP < Fog::Model
         identity :id
 
@@ -16,7 +15,6 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/network_ips.rb b/lib/fog/storm_on_demand/models/network/network_ips.rb
index a608f0e..cc0fa6a 100644
--- a/lib/fog/storm_on_demand/models/network/network_ips.rb
+++ b/lib/fog/storm_on_demand/models/network/network_ips.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/network/network_ip'
 module Fog
   module Network
     class StormOnDemand
-
       class NetworkIPs < Fog::Collection
         model Fog::Network::StormOnDemand::NetworkIP
 
@@ -41,7 +40,6 @@ module Fog
           service.request_new_ips(options)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/pool.rb b/lib/fog/storm_on_demand/models/network/pool.rb
index a78f8ea..092b2c0 100644
--- a/lib/fog/storm_on_demand/models/network/pool.rb
+++ b/lib/fog/storm_on_demand/models/network/pool.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Network
     class StormOnDemand
-
       class Pool < Fog::Model
         identity :uniq_id
         attribute :accnt
@@ -25,7 +24,6 @@ module Fog
           requires :identity
           service.update_pool({:uniq_id => identity}.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/pools.rb b/lib/fog/storm_on_demand/models/network/pools.rb
index 3e4f4e9..f83d8e6 100644
--- a/lib/fog/storm_on_demand/models/network/pools.rb
+++ b/lib/fog/storm_on_demand/models/network/pools.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/network/pool'
 module Fog
   module Network
     class StormOnDemand
-
       class Pools < Fog::Collection
         model Fog::Network::StormOnDemand::Pool
 
@@ -21,7 +20,6 @@ module Fog
         def get_assignments(options={})
           service.get_assignments(options).body['items']
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/private_ip.rb b/lib/fog/storm_on_demand/models/network/private_ip.rb
index 9f803b6..c739153 100644
--- a/lib/fog/storm_on_demand/models/network/private_ip.rb
+++ b/lib/fog/storm_on_demand/models/network/private_ip.rb
@@ -3,16 +3,13 @@ require 'fog/core/model'
 module Fog
   module Network
     class StormOnDemand
-
       class PrivateIp < Fog::Model
         attribute :zones
 
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/network/private_ips.rb b/lib/fog/storm_on_demand/models/network/private_ips.rb
index 2b5b2ce..8bb3f9c 100644
--- a/lib/fog/storm_on_demand/models/network/private_ips.rb
+++ b/lib/fog/storm_on_demand/models/network/private_ips.rb
@@ -4,9 +4,7 @@ require 'fog/storm_on_demand/models/network/private_ip'
 module Fog
   module Network
     class StormOnDemand
-
       class PrivateIps < Fog::Collection
-
         model Fog::Network::StormOnDemand::PrivateIp
 
         def all
@@ -32,9 +30,7 @@ module Fog
           r = service.check_server_attached(:uniq_id => server_id).body
           r['is_attached'].to_i == 1 ? true : false
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/network/ruleset.rb b/lib/fog/storm_on_demand/models/network/ruleset.rb
index 7b94d6f..7d117d4 100644
--- a/lib/fog/storm_on_demand/models/network/ruleset.rb
+++ b/lib/fog/storm_on_demand/models/network/ruleset.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Network
     class StormOnDemand
-
       class Ruleset < Fog::Model
         attribute :accnt
         attribute :destination_ip
@@ -20,7 +19,6 @@ module Fog
           service.update_ruleset(:ruleset => ruleset, :rules => rules)
           true
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/rulesets.rb b/lib/fog/storm_on_demand/models/network/rulesets.rb
index 9b936b8..f4a280b 100644
--- a/lib/fog/storm_on_demand/models/network/rulesets.rb
+++ b/lib/fog/storm_on_demand/models/network/rulesets.rb
@@ -21,7 +21,6 @@ module Fog
           r = service.list_rulesets(options).body['item']
           load(r)
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/zone.rb b/lib/fog/storm_on_demand/models/network/zone.rb
index a98111b..78918d0 100644
--- a/lib/fog/storm_on_demand/models/network/zone.rb
+++ b/lib/fog/storm_on_demand/models/network/zone.rb
@@ -3,7 +3,6 @@ require "fog/core/model"
 module Fog
   module Network
     class StormOnDemand
-
       class Zone < Fog::Model
         identity :id
         attribute :is_default
@@ -20,7 +19,6 @@ module Fog
           requires :identity
           service.set_default_zone(:id => identity)
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/network/zones.rb b/lib/fog/storm_on_demand/models/network/zones.rb
index fabd454..08a9f89 100644
--- a/lib/fog/storm_on_demand/models/network/zones.rb
+++ b/lib/fog/storm_on_demand/models/network/zones.rb
@@ -4,7 +4,6 @@ require "fog/storm_on_demand/models/network/zone"
 module Fog
   module Network
     class StormOnDemand
-
       class Zones < Fog::Collection
         model Fog::Network::StormOnDemand::Zone
 
@@ -17,7 +16,6 @@ module Fog
           data = service.list_zones(options).body
           load(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/storage/cluster.rb b/lib/fog/storm_on_demand/models/storage/cluster.rb
index 6535023..def212d 100644
--- a/lib/fog/storm_on_demand/models/storage/cluster.rb
+++ b/lib/fog/storm_on_demand/models/storage/cluster.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Storage
     class StormOnDemand
-
       class Cluster < Fog::Model
         identity :id
         attribute :description
@@ -12,9 +11,7 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/storage/clusters.rb b/lib/fog/storm_on_demand/models/storage/clusters.rb
index 066a182..91b810c 100644
--- a/lib/fog/storm_on_demand/models/storage/clusters.rb
+++ b/lib/fog/storm_on_demand/models/storage/clusters.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/storage/cluster'
 module Fog
   module Storage
     class StormOnDemand
-
       class Clusters < Fog::Collection
         model Fog::Storage::StormOnDemand::Cluster
 
@@ -12,9 +11,7 @@ module Fog
           data = service.list_clusters(options).body['items']
           load(data)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/storage/volume.rb b/lib/fog/storm_on_demand/models/storage/volume.rb
index 0ab7971..52c9ebd 100644
--- a/lib/fog/storm_on_demand/models/storage/volume.rb
+++ b/lib/fog/storm_on_demand/models/storage/volume.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Storage
     class StormOnDemand
-
       class Volume < Fog::Model
         identity :uniq_id
         attribute :attachedTo
@@ -46,9 +45,7 @@ module Fog
           requires :identity
           service.update_volume({:uniq_id => identity}.merge!(options))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/storage/volumes.rb b/lib/fog/storm_on_demand/models/storage/volumes.rb
index 8eab04c..dce8e67 100644
--- a/lib/fog/storm_on_demand/models/storage/volumes.rb
+++ b/lib/fog/storm_on_demand/models/storage/volumes.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/storage/volume'
 module Fog
   module Storage
     class StormOnDemand
-
       class Volumes < Fog::Collection
         model Fog::Storage::StormOnDemand::Volume
 
@@ -22,9 +21,7 @@ module Fog
           vols = service.list_volumes(options).body['items']
           load(vols)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/support/alert.rb b/lib/fog/storm_on_demand/models/support/alert.rb
index 978a81b..f9a2543 100644
--- a/lib/fog/storm_on_demand/models/support/alert.rb
+++ b/lib/fog/storm_on_demand/models/support/alert.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Support
     class StormOnDemand
-
       class Alert < Fog::Model
         attribute :message
         attribute :subject
@@ -11,9 +10,7 @@ module Fog
         def initialize(attributes={})
           super
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/support/alerts.rb b/lib/fog/storm_on_demand/models/support/alerts.rb
index 768346a..34b0f1c 100644
--- a/lib/fog/storm_on_demand/models/support/alerts.rb
+++ b/lib/fog/storm_on_demand/models/support/alerts.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/support/alert'
 module Fog
   module Support
     class StormOnDemand
-
       class Alerts < Fog::Collection
         model Fog::Support::StormOnDemand::Alert
 
@@ -12,9 +11,7 @@ module Fog
           alert = service.get_active_alert.body['active_alert']
           new(alert)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/support/ticket.rb b/lib/fog/storm_on_demand/models/support/ticket.rb
index 2f36378..cb2afbb 100644
--- a/lib/fog/storm_on_demand/models/support/ticket.rb
+++ b/lib/fog/storm_on_demand/models/support/ticket.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Support
     class StormOnDemand
-
       class Ticket < Fog::Model
         identity :id
         attribute :accnt
@@ -65,10 +64,7 @@ module Fog
                                       :secid => secid}.merge!(options)).body
           res['reply'].to_i == 1 ? true : false
         end
-
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/support/tickets.rb b/lib/fog/storm_on_demand/models/support/tickets.rb
index 2df5ac9..6abd7ed 100644
--- a/lib/fog/storm_on_demand/models/support/tickets.rb
+++ b/lib/fog/storm_on_demand/models/support/tickets.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/models/support/ticket'
 module Fog
   module Support
     class StormOnDemand
-
       class Tickets < Fog::Collection
         model Fog::Support::StormOnDemand::Ticket
 
@@ -25,9 +24,7 @@ module Fog
         def types
           service.list_ticket_types.body['types']
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/storm_on_demand/models/vpn/vpn.rb b/lib/fog/storm_on_demand/models/vpn/vpn.rb
index 617fe75..6799fad 100644
--- a/lib/fog/storm_on_demand/models/vpn/vpn.rb
+++ b/lib/fog/storm_on_demand/models/vpn/vpn.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module VPN
     class StormOnDemand
-
       class Vpn < Fog::Model
         identity :uniq_id
         attribute :active
@@ -23,7 +22,6 @@ module Fog
           requires :identity
           service.update_vpn({:uniq_id => identity}.merge!(options))
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/models/vpn/vpns.rb b/lib/fog/storm_on_demand/models/vpn/vpns.rb
index 5ef45d2..3c47548 100644
--- a/lib/fog/storm_on_demand/models/vpn/vpns.rb
+++ b/lib/fog/storm_on_demand/models/vpn/vpns.rb
@@ -20,7 +20,6 @@ module Fog
         def all_users(options={})
           service.list_vpn_users(options).body['items']
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/monitoring.rb b/lib/fog/storm_on_demand/monitoring.rb
index 13de2da..83edf85 100644
--- a/lib/fog/storm_on_demand/monitoring.rb
+++ b/lib/fog/storm_on_demand/monitoring.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/shared'
 module Fog
   module Monitoring
     class StormOnDemand < Fog::Service
-
       requires :storm_on_demand_username, :storm_on_demand_password
       recognizes :storm_on_demand_auth_url
 
@@ -26,9 +25,7 @@ module Fog
       request :get_service_status
       request :update_service
 
-
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -54,13 +51,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/network.rb b/lib/fog/storm_on_demand/network.rb
index 547f116..93fb0af 100644
--- a/lib/fog/storm_on_demand/network.rb
+++ b/lib/fog/storm_on_demand/network.rb
@@ -4,7 +4,6 @@ require 'fog/storm_on_demand/shared'
 module Fog
   module Network
     class StormOnDemand < Fog::Service
-
       requires :storm_on_demand_username, :storm_on_demand_password
       recognizes :storm_on_demand_auth_url
 
@@ -73,7 +72,6 @@ module Fog
       request :set_default_zone
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -99,13 +97,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/account/create_token.rb b/lib/fog/storm_on_demand/requests/account/create_token.rb
index 8055f62..9730110 100644
--- a/lib/fog/storm_on_demand/requests/account/create_token.rb
+++ b/lib/fog/storm_on_demand/requests/account/create_token.rb
@@ -2,14 +2,12 @@ module Fog
   module Account
     class StormOnDemand
       class Real
-
         def create_token(options={})
           request(
             :path => '/Account/Auth/token',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/account/expire_token.rb b/lib/fog/storm_on_demand/requests/account/expire_token.rb
index 24a8fb4..9b893fd 100644
--- a/lib/fog/storm_on_demand/requests/account/expire_token.rb
+++ b/lib/fog/storm_on_demand/requests/account/expire_token.rb
@@ -2,14 +2,12 @@ module Fog
   module Account
     class StormOnDemand
       class Real
-
         def expire_token(options={})
           request(
             :path => '/Account/Auth/expireToken',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/billing/get_invoice.rb b/lib/fog/storm_on_demand/requests/billing/get_invoice.rb
index 952bcf1..e65f0b7 100644
--- a/lib/fog/storm_on_demand/requests/billing/get_invoice.rb
+++ b/lib/fog/storm_on_demand/requests/billing/get_invoice.rb
@@ -2,14 +2,12 @@ module Fog
   module Billing
     class StormOnDemand
       class Real
-
         def get_invoice(options={})
           request(
             :path => '/Billing/Invoice/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/billing/list_invoices.rb b/lib/fog/storm_on_demand/requests/billing/list_invoices.rb
index ae2b54f..3ab498d 100644
--- a/lib/fog/storm_on_demand/requests/billing/list_invoices.rb
+++ b/lib/fog/storm_on_demand/requests/billing/list_invoices.rb
@@ -2,14 +2,12 @@ module Fog
   module Billing
     class StormOnDemand
       class Real
-
         def list_invoices(options={})
           request(
             :path => '/Billing/Invoice/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/billing/make_payment.rb b/lib/fog/storm_on_demand/requests/billing/make_payment.rb
index 4cd59a3..c7d43e3 100644
--- a/lib/fog/storm_on_demand/requests/billing/make_payment.rb
+++ b/lib/fog/storm_on_demand/requests/billing/make_payment.rb
@@ -2,14 +2,12 @@ module Fog
   module Billing
     class StormOnDemand
       class Real
-
         def make_payment(options={})
           request(
             :path => '/Billing/Payment/make',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/billing/next_invoice.rb b/lib/fog/storm_on_demand/requests/billing/next_invoice.rb
index f126e03..96f348e 100644
--- a/lib/fog/storm_on_demand/requests/billing/next_invoice.rb
+++ b/lib/fog/storm_on_demand/requests/billing/next_invoice.rb
@@ -2,14 +2,12 @@ module Fog
   module Billing
     class StormOnDemand
       class Real
-
         def next_invoice(options={})
           request(
             :path => '/Billing/Invoice/next',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/clone_server.rb b/lib/fog/storm_on_demand/requests/compute/clone_server.rb
index 9f9ed9e..a2e7da6 100644
--- a/lib/fog/storm_on_demand/requests/compute/clone_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/clone_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def clone_server(options = {})
           request(
             :path     => "/Storm/Server/clone",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/create_image.rb b/lib/fog/storm_on_demand/requests/compute/create_image.rb
index 2fac34e..c05740c 100644
--- a/lib/fog/storm_on_demand/requests/compute/create_image.rb
+++ b/lib/fog/storm_on_demand/requests/compute/create_image.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def create_image(options={})
           request(
             :path => '/Storm/Image/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/create_server.rb b/lib/fog/storm_on_demand/requests/compute/create_server.rb
index aee53ec..921881e 100644
--- a/lib/fog/storm_on_demand/requests/compute/create_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/create_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def create_server(options = {})
           request(
             :path     => "/Storm/Server/create",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/current_notifications.rb b/lib/fog/storm_on_demand/requests/compute/current_notifications.rb
index f7a6a9d..c34cf0b 100644
--- a/lib/fog/storm_on_demand/requests/compute/current_notifications.rb
+++ b/lib/fog/storm_on_demand/requests/compute/current_notifications.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def current_notifications(options={})
           request(
             :path => '/Notifications/current',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/delete_image.rb b/lib/fog/storm_on_demand/requests/compute/delete_image.rb
index f1493ef..5265a53 100644
--- a/lib/fog/storm_on_demand/requests/compute/delete_image.rb
+++ b/lib/fog/storm_on_demand/requests/compute/delete_image.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def delete_image(options={})
           request(
             :path => '/Storm/Image/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/delete_server.rb b/lib/fog/storm_on_demand/requests/compute/delete_server.rb
index a224370..d13da54 100644
--- a/lib/fog/storm_on_demand/requests/compute/delete_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/delete_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def delete_server(options = {})
           request(
             :path     => "/Storm/Server/destroy",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_config_details.rb b/lib/fog/storm_on_demand/requests/compute/get_config_details.rb
index e430f1d..bf24205 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_config_details.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_config_details.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_config_details(options={})
           request(
             :path => '/Storm/Config/details',
             :body => Fog::JSON.encode({ :params => options })
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_image_details.rb b/lib/fog/storm_on_demand/requests/compute/get_image_details.rb
index 793c663..6a5f37e 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_image_details.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_image_details.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_image_details(options={})
           request(
             :path => '/Storm/Image/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_notification.rb b/lib/fog/storm_on_demand/requests/compute/get_notification.rb
index 2723ce7..7112a61 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_notification.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_notification.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_notification(options={})
           request(
             :path => '/Notifications/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_product.rb b/lib/fog/storm_on_demand/requests/compute/get_product.rb
index 72f97bb..836188c 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_product.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_product.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_product(options={})
           request(
             :path => '/Product/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_product_code.rb b/lib/fog/storm_on_demand/requests/compute/get_product_code.rb
index f07e6bd..954297b 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_product_code.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_product_code.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_product_code(options={})
           request(
             :path => '/Product/getProductCodeFromPath',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_product_price.rb b/lib/fog/storm_on_demand/requests/compute/get_product_price.rb
index 5fab797..5709a8a 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_product_price.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_product_price.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_product_price(options={})
           request(
             :path => '/Product/price',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_product_starting_price.rb b/lib/fog/storm_on_demand/requests/compute/get_product_starting_price.rb
index 2f6d3ef..cfdeacd 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_product_starting_price.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_product_starting_price.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_product_starting_price(options={})
           request(
             :path => '/Product/startingPrice',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_server.rb b/lib/fog/storm_on_demand/requests/compute/get_server.rb
index 20e5322..28236ec 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_server(options = {})
           request(
             :path     => "/Storm/Server/details",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/get_template_details.rb b/lib/fog/storm_on_demand/requests/compute/get_template_details.rb
index 6580a49..7fa1597 100644
--- a/lib/fog/storm_on_demand/requests/compute/get_template_details.rb
+++ b/lib/fog/storm_on_demand/requests/compute/get_template_details.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def get_template_details(options={})
           request(
             :path => '/Storm/Template/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/list_configs.rb b/lib/fog/storm_on_demand/requests/compute/list_configs.rb
index 3d6bfd1..9cf342a 100644
--- a/lib/fog/storm_on_demand/requests/compute/list_configs.rb
+++ b/lib/fog/storm_on_demand/requests/compute/list_configs.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def list_configs(options = {})
           request(
             :path     => "/storm/config/list",
             :body     => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/list_images.rb b/lib/fog/storm_on_demand/requests/compute/list_images.rb
index 1624347..c4dcff0 100644
--- a/lib/fog/storm_on_demand/requests/compute/list_images.rb
+++ b/lib/fog/storm_on_demand/requests/compute/list_images.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def list_images(options = {})
           request(
             :path     => "/Storm/Image/list",
             :body     => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/list_notifications.rb b/lib/fog/storm_on_demand/requests/compute/list_notifications.rb
index 1947052..8724c3b 100644
--- a/lib/fog/storm_on_demand/requests/compute/list_notifications.rb
+++ b/lib/fog/storm_on_demand/requests/compute/list_notifications.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def list_notifications(options={})
           request(
             :path => '/Notifications/all',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/list_products.rb b/lib/fog/storm_on_demand/requests/compute/list_products.rb
index 7e53e54..4a098a6 100644
--- a/lib/fog/storm_on_demand/requests/compute/list_products.rb
+++ b/lib/fog/storm_on_demand/requests/compute/list_products.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def list_products(options={})
           request(
             :path => '/Product/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/list_servers.rb b/lib/fog/storm_on_demand/requests/compute/list_servers.rb
index 5bd1172..ddd282e 100644
--- a/lib/fog/storm_on_demand/requests/compute/list_servers.rb
+++ b/lib/fog/storm_on_demand/requests/compute/list_servers.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def list_servers(options = {})
           request(
             :path     => "/Storm/Server/list",
             :body     => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/list_templates.rb b/lib/fog/storm_on_demand/requests/compute/list_templates.rb
index 0bd778c..6278ef0 100644
--- a/lib/fog/storm_on_demand/requests/compute/list_templates.rb
+++ b/lib/fog/storm_on_demand/requests/compute/list_templates.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def list_templates(options = {})
           request(
             :path     => "/Storm/Template/list",
             :body     => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/reboot_server.rb b/lib/fog/storm_on_demand/requests/compute/reboot_server.rb
index e74a61b..5eb71d8 100644
--- a/lib/fog/storm_on_demand/requests/compute/reboot_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/reboot_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def reboot_server(options = {})
           request(
             :path     => "/Storm/Server/reboot",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/resize_server.rb b/lib/fog/storm_on_demand/requests/compute/resize_server.rb
index fe834c4..1aa7e34 100644
--- a/lib/fog/storm_on_demand/requests/compute/resize_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/resize_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def resize_server(options = {})
           request(
             :path     => "/Storm/Server/resize",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/resolve_notification.rb b/lib/fog/storm_on_demand/requests/compute/resolve_notification.rb
index 881b522..1247920 100644
--- a/lib/fog/storm_on_demand/requests/compute/resolve_notification.rb
+++ b/lib/fog/storm_on_demand/requests/compute/resolve_notification.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def resolve_notification(options={})
           request(
             :path => '/Notifications/resolve',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/restore_image.rb b/lib/fog/storm_on_demand/requests/compute/restore_image.rb
index 24fe53a..b9f793d 100644
--- a/lib/fog/storm_on_demand/requests/compute/restore_image.rb
+++ b/lib/fog/storm_on_demand/requests/compute/restore_image.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def restore_image(options={})
           request(
             :path => '/Storm/Image/restore',
             :body => Fog::JSON.encode(params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/restore_template.rb b/lib/fog/storm_on_demand/requests/compute/restore_template.rb
index 38a2016..445cc9e 100644
--- a/lib/fog/storm_on_demand/requests/compute/restore_template.rb
+++ b/lib/fog/storm_on_demand/requests/compute/restore_template.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def restore_template(options={})
           request(
             :path => '/Storm/Template/restore',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/server_history.rb b/lib/fog/storm_on_demand/requests/compute/server_history.rb
index 79f8f39..5967abf 100644
--- a/lib/fog/storm_on_demand/requests/compute/server_history.rb
+++ b/lib/fog/storm_on_demand/requests/compute/server_history.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def server_history(options={})
           request(
             :path => '/Storm/Server/history',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/server_status.rb b/lib/fog/storm_on_demand/requests/compute/server_status.rb
index 2c8db69..6c732b7 100644
--- a/lib/fog/storm_on_demand/requests/compute/server_status.rb
+++ b/lib/fog/storm_on_demand/requests/compute/server_status.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def server_status(options={})
           request(
             :path => '/Storm/Server/status',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/shutdown_server.rb b/lib/fog/storm_on_demand/requests/compute/shutdown_server.rb
index ae2d675..9cab776 100644
--- a/lib/fog/storm_on_demand/requests/compute/shutdown_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/shutdown_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def shutdown_server(options={})
           request(
             :path => '/Storm/Server/shutdown',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/start_server.rb b/lib/fog/storm_on_demand/requests/compute/start_server.rb
index 2c61475..bd87021 100644
--- a/lib/fog/storm_on_demand/requests/compute/start_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/start_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def start_server(options={})
           request(
             :path => '/Storm/Server/start',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/update_image.rb b/lib/fog/storm_on_demand/requests/compute/update_image.rb
index b8c3aba..f837bfb 100644
--- a/lib/fog/storm_on_demand/requests/compute/update_image.rb
+++ b/lib/fog/storm_on_demand/requests/compute/update_image.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def update_image(options={})
           request(
             :path => '/Storm/Image/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/compute/update_server.rb b/lib/fog/storm_on_demand/requests/compute/update_server.rb
index cc9dc7d..74f2d9e 100644
--- a/lib/fog/storm_on_demand/requests/compute/update_server.rb
+++ b/lib/fog/storm_on_demand/requests/compute/update_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Compute
     class StormOnDemand
       class Real
-
         def update_server(options={})
           request(
             :path => '/Storm/Server/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/check_zone_delegation.rb b/lib/fog/storm_on_demand/requests/dns/check_zone_delegation.rb
index a300df2..f6c21f9 100644
--- a/lib/fog/storm_on_demand/requests/dns/check_zone_delegation.rb
+++ b/lib/fog/storm_on_demand/requests/dns/check_zone_delegation.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def check_zone_delegation(options={})
           request(
             :path => '/Network/DNS/Zone/delegation',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/create_record.rb b/lib/fog/storm_on_demand/requests/dns/create_record.rb
index fd36402..2d33fc3 100644
--- a/lib/fog/storm_on_demand/requests/dns/create_record.rb
+++ b/lib/fog/storm_on_demand/requests/dns/create_record.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def create_record(options={})
           request(
             :path => '/Network/DNS/Record/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/create_record_region.rb b/lib/fog/storm_on_demand/requests/dns/create_record_region.rb
index 1acac73..22b208c 100644
--- a/lib/fog/storm_on_demand/requests/dns/create_record_region.rb
+++ b/lib/fog/storm_on_demand/requests/dns/create_record_region.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def create_record_region(options={})
           request(
             :path => '/Network/DNS/Record/Region/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/create_zone.rb b/lib/fog/storm_on_demand/requests/dns/create_zone.rb
index a1dfc0a..115bd6e 100644
--- a/lib/fog/storm_on_demand/requests/dns/create_zone.rb
+++ b/lib/fog/storm_on_demand/requests/dns/create_zone.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def create_zone(options={})
           request(
             :path => '/Network/DNS/Zone/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/delete_record.rb b/lib/fog/storm_on_demand/requests/dns/delete_record.rb
index 0f1eb34..34c5c8b 100644
--- a/lib/fog/storm_on_demand/requests/dns/delete_record.rb
+++ b/lib/fog/storm_on_demand/requests/dns/delete_record.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def delete_record(options={})
           request(
             :path => '/Network/DNS/Record/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/delete_record_region.rb b/lib/fog/storm_on_demand/requests/dns/delete_record_region.rb
index 12e2ba9..51bb9f5 100644
--- a/lib/fog/storm_on_demand/requests/dns/delete_record_region.rb
+++ b/lib/fog/storm_on_demand/requests/dns/delete_record_region.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def delete_record_region(options={})
           request(
             :path => '/Network/DNS/Record/Region/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/delete_reverse.rb b/lib/fog/storm_on_demand/requests/dns/delete_reverse.rb
index 72e9702..30e0b0f 100644
--- a/lib/fog/storm_on_demand/requests/dns/delete_reverse.rb
+++ b/lib/fog/storm_on_demand/requests/dns/delete_reverse.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def delete_reverse(options={})
           request(
             :path => '/Network/DNS/Reverse/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/delete_zone.rb b/lib/fog/storm_on_demand/requests/dns/delete_zone.rb
index 0c5ee34..38bfd9f 100644
--- a/lib/fog/storm_on_demand/requests/dns/delete_zone.rb
+++ b/lib/fog/storm_on_demand/requests/dns/delete_zone.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def delete_zone(options={})
           request(
             :path => '/Network/DNS/Zone/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/get_record.rb b/lib/fog/storm_on_demand/requests/dns/get_record.rb
index 9a95dfd..9b408cc 100644
--- a/lib/fog/storm_on_demand/requests/dns/get_record.rb
+++ b/lib/fog/storm_on_demand/requests/dns/get_record.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def get_record(options={})
           request(
             :path => '/Network/DNS/Record/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/get_zone.rb b/lib/fog/storm_on_demand/requests/dns/get_zone.rb
index 01498c2..e81acae 100644
--- a/lib/fog/storm_on_demand/requests/dns/get_zone.rb
+++ b/lib/fog/storm_on_demand/requests/dns/get_zone.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def get_zone(options={})
           request(
             :path => '/Network/DNS/Zone/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/list_domains.rb b/lib/fog/storm_on_demand/requests/dns/list_domains.rb
index 5d13c5e..a01848d 100644
--- a/lib/fog/storm_on_demand/requests/dns/list_domains.rb
+++ b/lib/fog/storm_on_demand/requests/dns/list_domains.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def list_domains(options={})
           request(
             :path => '/Network/DNS/Domain/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/list_records.rb b/lib/fog/storm_on_demand/requests/dns/list_records.rb
index 10b9142..17e8a3b 100644
--- a/lib/fog/storm_on_demand/requests/dns/list_records.rb
+++ b/lib/fog/storm_on_demand/requests/dns/list_records.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def list_records(options={})
           request(
             :path => '/Network/DNS/Record/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/list_zones.rb b/lib/fog/storm_on_demand/requests/dns/list_zones.rb
index 79c6bb5..fa85032 100644
--- a/lib/fog/storm_on_demand/requests/dns/list_zones.rb
+++ b/lib/fog/storm_on_demand/requests/dns/list_zones.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def list_zones(options={})
           request(
             :path => '/Network/DNS/Zone/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/renew_domain.rb b/lib/fog/storm_on_demand/requests/dns/renew_domain.rb
index 2a5655b..463c108 100644
--- a/lib/fog/storm_on_demand/requests/dns/renew_domain.rb
+++ b/lib/fog/storm_on_demand/requests/dns/renew_domain.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def renew_domain(options={})
           request(
             :path => '/Network/DNS/Domain/renew',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/update_record.rb b/lib/fog/storm_on_demand/requests/dns/update_record.rb
index 05de854..faa00cc 100644
--- a/lib/fog/storm_on_demand/requests/dns/update_record.rb
+++ b/lib/fog/storm_on_demand/requests/dns/update_record.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def update_record(options={})
           request(
             :path => '/Network/DNS/Record/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/update_record_region.rb b/lib/fog/storm_on_demand/requests/dns/update_record_region.rb
index 9a4ee74..1e9a30b 100644
--- a/lib/fog/storm_on_demand/requests/dns/update_record_region.rb
+++ b/lib/fog/storm_on_demand/requests/dns/update_record_region.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def update_record_region(options={})
           request(
             :path => '/Network/DNS/Record/Region/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/update_reverse.rb b/lib/fog/storm_on_demand/requests/dns/update_reverse.rb
index 2e5dae3..d0d5d85 100644
--- a/lib/fog/storm_on_demand/requests/dns/update_reverse.rb
+++ b/lib/fog/storm_on_demand/requests/dns/update_reverse.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def update_reverse(options={})
           request(
             :path => '/Network/DNS/Reverse/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/dns/update_zone.rb b/lib/fog/storm_on_demand/requests/dns/update_zone.rb
index 338333c..89c3499 100644
--- a/lib/fog/storm_on_demand/requests/dns/update_zone.rb
+++ b/lib/fog/storm_on_demand/requests/dns/update_zone.rb
@@ -2,14 +2,12 @@ module Fog
   module DNS
     class StormOnDemand
       class Real
-
         def update_zone(options={})
           request(
             :path => '/Network/DNS/Zone/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_graph.rb b/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_graph.rb
index 0f4df54..f9c3c5a 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_graph.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_graph.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def get_bandwidth_graph(options={})
           request(
             :path => '/Monitoring/Bandwidth/graph',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_stats.rb b/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_stats.rb
index 49a1b8f..f455a7d 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_stats.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/get_bandwidth_stats.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def get_bandwidth_stats(options={})
           request(
             :path => '/Monitoring/Bandwidth/stats',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/get_load_graph.rb b/lib/fog/storm_on_demand/requests/monitoring/get_load_graph.rb
index 489b9a2..8dbd39e 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/get_load_graph.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/get_load_graph.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def get_load_graph(options={})
           request(
             :path => '/Monitoring/Load/graph',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/get_load_stats.rb b/lib/fog/storm_on_demand/requests/monitoring/get_load_stats.rb
index c59dfb4..00b1378 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/get_load_stats.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/get_load_stats.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def get_load_stats(options={})
           request(
             :path => '/Monitoring/Load/stats',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/get_service.rb b/lib/fog/storm_on_demand/requests/monitoring/get_service.rb
index d6d00b8..6166428 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/get_service.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/get_service.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def get_service(options={})
           request(
             :path => '/Monitoring/Services/get',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/get_service_status.rb b/lib/fog/storm_on_demand/requests/monitoring/get_service_status.rb
index f9c76e3..4000f8e 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/get_service_status.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/get_service_status.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def get_service_status(options={})
           request(
             :path => '/Monitoring/Services/status',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/monitoring_ips.rb b/lib/fog/storm_on_demand/requests/monitoring/monitoring_ips.rb
index 2484af6..4522bf0 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/monitoring_ips.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/monitoring_ips.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def monitoring_ips(options={})
           request(
             :path => '/Monitoring/Services/monitoringIps',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/monitoring/update_service.rb b/lib/fog/storm_on_demand/requests/monitoring/update_service.rb
index 4f0f132..e2b7d3d 100644
--- a/lib/fog/storm_on_demand/requests/monitoring/update_service.rb
+++ b/lib/fog/storm_on_demand/requests/monitoring/update_service.rb
@@ -2,14 +2,12 @@ module Fog
   module Monitoring
     class StormOnDemand
       class Real
-
         def update_service(options={})
           request(
             :path => '/Monitoring/Services/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/add_balancer_node.rb b/lib/fog/storm_on_demand/requests/network/add_balancer_node.rb
index ba687c5..2125464 100644
--- a/lib/fog/storm_on_demand/requests/network/add_balancer_node.rb
+++ b/lib/fog/storm_on_demand/requests/network/add_balancer_node.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def add_balancer_node(options = {})
           request(
             :path     => "/Network/LoadBalancer/addNode",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/add_balancer_service.rb b/lib/fog/storm_on_demand/requests/network/add_balancer_service.rb
index 594d9dc..9f090af 100644
--- a/lib/fog/storm_on_demand/requests/network/add_balancer_service.rb
+++ b/lib/fog/storm_on_demand/requests/network/add_balancer_service.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def add_balancer_service(options={})
           request(
             :path => '/Network/LoadBalancer/addService',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/add_ip_to_server.rb b/lib/fog/storm_on_demand/requests/network/add_ip_to_server.rb
index bdf958a..b9a6696 100644
--- a/lib/fog/storm_on_demand/requests/network/add_ip_to_server.rb
+++ b/lib/fog/storm_on_demand/requests/network/add_ip_to_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def add_ip_to_server(options={})
           request(
             :path => '/Network/IP/add',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/attach_server_to_private_ip.rb b/lib/fog/storm_on_demand/requests/network/attach_server_to_private_ip.rb
index 461ec48..3547fe1 100644
--- a/lib/fog/storm_on_demand/requests/network/attach_server_to_private_ip.rb
+++ b/lib/fog/storm_on_demand/requests/network/attach_server_to_private_ip.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def attach_server_to_private_ip(options={})
           request(
             :path => '/Network/Private/attach',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/check_balancer_available.rb b/lib/fog/storm_on_demand/requests/network/check_balancer_available.rb
index 7f54a3f..df158a8 100644
--- a/lib/fog/storm_on_demand/requests/network/check_balancer_available.rb
+++ b/lib/fog/storm_on_demand/requests/network/check_balancer_available.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def check_balancer_available(options={})
           request(
             :path => '/Network/LoadBalancer/available',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/check_server_attached.rb b/lib/fog/storm_on_demand/requests/network/check_server_attached.rb
index 8171a9b..f628de1 100644
--- a/lib/fog/storm_on_demand/requests/network/check_server_attached.rb
+++ b/lib/fog/storm_on_demand/requests/network/check_server_attached.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def check_server_attached(options={})
           request(
             :path => '/Network/Private/isAttached',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/create_balancer.rb b/lib/fog/storm_on_demand/requests/network/create_balancer.rb
index 340e1b8..77d1efe 100644
--- a/lib/fog/storm_on_demand/requests/network/create_balancer.rb
+++ b/lib/fog/storm_on_demand/requests/network/create_balancer.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def create_balancer(options={})
           request(
             :path => '/Network/LoadBalancer/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/create_pool.rb b/lib/fog/storm_on_demand/requests/network/create_pool.rb
index 35e87b0..ab82c45 100644
--- a/lib/fog/storm_on_demand/requests/network/create_pool.rb
+++ b/lib/fog/storm_on_demand/requests/network/create_pool.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def create_pool(options={})
           request(
             :path => '/Network/Pool/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/create_ruleset.rb b/lib/fog/storm_on_demand/requests/network/create_ruleset.rb
index ec02bde..1f4b3dd 100644
--- a/lib/fog/storm_on_demand/requests/network/create_ruleset.rb
+++ b/lib/fog/storm_on_demand/requests/network/create_ruleset.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def create_ruleset(options={})
           request(
             :path => '/Network/Firewall/Ruleset/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/delete_balancer.rb b/lib/fog/storm_on_demand/requests/network/delete_balancer.rb
index 9216a00..39a8b3c 100644
--- a/lib/fog/storm_on_demand/requests/network/delete_balancer.rb
+++ b/lib/fog/storm_on_demand/requests/network/delete_balancer.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def delete_balancer(options={})
           request(
             :path => '/Network/LoadBalancer/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/delete_pool.rb b/lib/fog/storm_on_demand/requests/network/delete_pool.rb
index dece37a..348e415 100644
--- a/lib/fog/storm_on_demand/requests/network/delete_pool.rb
+++ b/lib/fog/storm_on_demand/requests/network/delete_pool.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def delete_pool(options={})
           request(
             :path => '/Network/Pool/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/detach_server_from_private_ip.rb b/lib/fog/storm_on_demand/requests/network/detach_server_from_private_ip.rb
index fd07281..aa76cd4 100644
--- a/lib/fog/storm_on_demand/requests/network/detach_server_from_private_ip.rb
+++ b/lib/fog/storm_on_demand/requests/network/detach_server_from_private_ip.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def detach_server_from_private_ip(options={})
           request(
             :path => '/Network/Private/detach',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_assignments.rb b/lib/fog/storm_on_demand/requests/network/get_assignments.rb
index a9381a6..de01824 100644
--- a/lib/fog/storm_on_demand/requests/network/get_assignments.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_assignments.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_assignments(options={})
           request(
             :path => '/Network/Pool/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_balancer_details.rb b/lib/fog/storm_on_demand/requests/network/get_balancer_details.rb
index 6cee54a..649afe4 100644
--- a/lib/fog/storm_on_demand/requests/network/get_balancer_details.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_balancer_details.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_balancer_details(options={})
           request(
             :path => '/Network/LoadBalancer/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_balancer_possible_nodes.rb b/lib/fog/storm_on_demand/requests/network/get_balancer_possible_nodes.rb
index f42dd67..087bf19 100644
--- a/lib/fog/storm_on_demand/requests/network/get_balancer_possible_nodes.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_balancer_possible_nodes.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_balancer_possible_nodes(options={})
           request(
             :path => '/Network/LoadBalancer/possibleNodes',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_balancer_strategies.rb b/lib/fog/storm_on_demand/requests/network/get_balancer_strategies.rb
index ee03f03..3a8b068 100644
--- a/lib/fog/storm_on_demand/requests/network/get_balancer_strategies.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_balancer_strategies.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_balancer_strategies(options={})
           request(
             :path => '/Network/LoadBalancer/strategies',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_firewall.rb b/lib/fog/storm_on_demand/requests/network/get_firewall.rb
index 0f3a001..01bb50f 100644
--- a/lib/fog/storm_on_demand/requests/network/get_firewall.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_firewall.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_firewall(options={})
           request(
             :path => '/Network/Firewall/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_firewall_basic_options.rb b/lib/fog/storm_on_demand/requests/network/get_firewall_basic_options.rb
index e5376cb..dd10545 100644
--- a/lib/fog/storm_on_demand/requests/network/get_firewall_basic_options.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_firewall_basic_options.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_firewall_basic_options(options={})
           request(
             :path => '/Network/Firewall/getBasicOptions',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_firewall_rules.rb b/lib/fog/storm_on_demand/requests/network/get_firewall_rules.rb
index 6913b99..7d2db41 100644
--- a/lib/fog/storm_on_demand/requests/network/get_firewall_rules.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_firewall_rules.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_firewall_rules(options={})
           request(
             :path => '/Network/Firewall/rules',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_ip_details.rb b/lib/fog/storm_on_demand/requests/network/get_ip_details.rb
index baf0e5f..830d55d 100644
--- a/lib/fog/storm_on_demand/requests/network/get_ip_details.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_ip_details.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_ip_details(options={})
           request(
             :path => '/Network/IP/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_pool.rb b/lib/fog/storm_on_demand/requests/network/get_pool.rb
index 451e7e2..5fed757 100644
--- a/lib/fog/storm_on_demand/requests/network/get_pool.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_pool.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_pool(options={})
           request(
             :path => '/Network/Pool/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_private_ip.rb b/lib/fog/storm_on_demand/requests/network/get_private_ip.rb
index 3477373..b343ace 100644
--- a/lib/fog/storm_on_demand/requests/network/get_private_ip.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_private_ip.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_private_ip(options={})
           request(
             :path => '/Network/Private/getIP',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_ruleset.rb b/lib/fog/storm_on_demand/requests/network/get_ruleset.rb
index b77552d..848f621 100644
--- a/lib/fog/storm_on_demand/requests/network/get_ruleset.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_ruleset.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_ruleset(options={})
           request(
             :path => '/Network/Firewall/Ruleset/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/get_zone.rb b/lib/fog/storm_on_demand/requests/network/get_zone.rb
index c51dd22..4bfb1d6 100644
--- a/lib/fog/storm_on_demand/requests/network/get_zone.rb
+++ b/lib/fog/storm_on_demand/requests/network/get_zone.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def get_zone(options={})
           request(
             :path => '/Network/Zone/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_balancers.rb b/lib/fog/storm_on_demand/requests/network/list_balancers.rb
index 766490d..0a7fc5f 100644
--- a/lib/fog/storm_on_demand/requests/network/list_balancers.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_balancers.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_balancers(options = {})
           request(
             :path     => "/Network/LoadBalancer/list",
             :body     => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_ip_public_accounts.rb b/lib/fog/storm_on_demand/requests/network/list_ip_public_accounts.rb
index 45481b3..23df519 100644
--- a/lib/fog/storm_on_demand/requests/network/list_ip_public_accounts.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_ip_public_accounts.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_ip_public_accounts(options={})
           request(
             :path => '/Network/IP/listAccntPublic',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_network_ips.rb b/lib/fog/storm_on_demand/requests/network/list_network_ips.rb
index 7b77fdb..22d63e1 100644
--- a/lib/fog/storm_on_demand/requests/network/list_network_ips.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_network_ips.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_network_ips(options={})
           request(
             :path => '/Network/IP/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_network_public_ips.rb b/lib/fog/storm_on_demand/requests/network/list_network_public_ips.rb
index f9c25b0..0e82f23 100644
--- a/lib/fog/storm_on_demand/requests/network/list_network_public_ips.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_network_public_ips.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_network_public_ips(options={})
           request(
             :path => '/Network/IP/listPublic',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_private_ips.rb b/lib/fog/storm_on_demand/requests/network/list_private_ips.rb
index 3bcd5ed..cdabdbb 100644
--- a/lib/fog/storm_on_demand/requests/network/list_private_ips.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_private_ips.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_private_ips(options = {})
           request(
             :path     => "/Network/Private/get",
             :body     => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_rulesets.rb b/lib/fog/storm_on_demand/requests/network/list_rulesets.rb
index 4a8e3f3..0c9cab4 100644
--- a/lib/fog/storm_on_demand/requests/network/list_rulesets.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_rulesets.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_rulesets(options={})
           request(
             :path => '/Network/Firewall/Ruleset/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/list_zones.rb b/lib/fog/storm_on_demand/requests/network/list_zones.rb
index 0c2f011..5884e6c 100644
--- a/lib/fog/storm_on_demand/requests/network/list_zones.rb
+++ b/lib/fog/storm_on_demand/requests/network/list_zones.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def list_zones(options={})
           request(
             :path => '/Network/Zone/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/remove_balancer_node.rb b/lib/fog/storm_on_demand/requests/network/remove_balancer_node.rb
index 57efd31..e61f819 100644
--- a/lib/fog/storm_on_demand/requests/network/remove_balancer_node.rb
+++ b/lib/fog/storm_on_demand/requests/network/remove_balancer_node.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def remove_balancer_node(options = {})
           request(
             :path     => "/Network/LoadBalancer/removeNode",
             :body     => Fog::JSON.encode({:params => options})
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/remove_balancer_service.rb b/lib/fog/storm_on_demand/requests/network/remove_balancer_service.rb
index 73cf1b5..6837d6c 100644
--- a/lib/fog/storm_on_demand/requests/network/remove_balancer_service.rb
+++ b/lib/fog/storm_on_demand/requests/network/remove_balancer_service.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def remove_balancer_service(options={})
           request(
             :path => '/Network/LoadBalancer/removeService',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/remove_ip_from_server.rb b/lib/fog/storm_on_demand/requests/network/remove_ip_from_server.rb
index 3fbc952..f5450b8 100644
--- a/lib/fog/storm_on_demand/requests/network/remove_ip_from_server.rb
+++ b/lib/fog/storm_on_demand/requests/network/remove_ip_from_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def remove_ip_from_server(options={})
           request(
             :path => '/Network/IP/remove',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/request_new_ips.rb b/lib/fog/storm_on_demand/requests/network/request_new_ips.rb
index e8d95f6..87b7611 100644
--- a/lib/fog/storm_on_demand/requests/network/request_new_ips.rb
+++ b/lib/fog/storm_on_demand/requests/network/request_new_ips.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def request_new_ips(options={})
           request(
             :path => '/Network/IP/request',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/set_default_zone.rb b/lib/fog/storm_on_demand/requests/network/set_default_zone.rb
index b9e1c29..8b1af02 100644
--- a/lib/fog/storm_on_demand/requests/network/set_default_zone.rb
+++ b/lib/fog/storm_on_demand/requests/network/set_default_zone.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def set_default_zone(options={})
           request(
             :path => '/Network/Zone/setDefault',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/update_balancer.rb b/lib/fog/storm_on_demand/requests/network/update_balancer.rb
index 1016142..7cb39a4 100644
--- a/lib/fog/storm_on_demand/requests/network/update_balancer.rb
+++ b/lib/fog/storm_on_demand/requests/network/update_balancer.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def update_balancer(options={})
           request(
             :path => '/Network/LoadBalancer/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/update_firewall.rb b/lib/fog/storm_on_demand/requests/network/update_firewall.rb
index 891cb40..62ea3a7 100644
--- a/lib/fog/storm_on_demand/requests/network/update_firewall.rb
+++ b/lib/fog/storm_on_demand/requests/network/update_firewall.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def update_firewalls(options={})
           request(
             :path => '/Network/Firewall/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/update_pool.rb b/lib/fog/storm_on_demand/requests/network/update_pool.rb
index 3089c52..bea152d 100644
--- a/lib/fog/storm_on_demand/requests/network/update_pool.rb
+++ b/lib/fog/storm_on_demand/requests/network/update_pool.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def update_pool(options={})
           request(
             :path => '/Network/Pool/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/network/update_ruleset.rb b/lib/fog/storm_on_demand/requests/network/update_ruleset.rb
index a0c22fa..dc1a624 100644
--- a/lib/fog/storm_on_demand/requests/network/update_ruleset.rb
+++ b/lib/fog/storm_on_demand/requests/network/update_ruleset.rb
@@ -2,14 +2,12 @@ module Fog
   module Network
     class StormOnDemand
       class Real
-
         def update_ruleset(options={})
           request(
             :path => '/Network/Firewall/Ruleset/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/attach_volume_to_server.rb b/lib/fog/storm_on_demand/requests/storage/attach_volume_to_server.rb
index 8f4cbf8..d89fcae 100644
--- a/lib/fog/storm_on_demand/requests/storage/attach_volume_to_server.rb
+++ b/lib/fog/storm_on_demand/requests/storage/attach_volume_to_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def attach_volume_to_server(options={})
           request(
             :path => '/Storage/Block/Volume/attach',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/create_volume.rb b/lib/fog/storm_on_demand/requests/storage/create_volume.rb
index be9338d..16e730b 100644
--- a/lib/fog/storm_on_demand/requests/storage/create_volume.rb
+++ b/lib/fog/storm_on_demand/requests/storage/create_volume.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def create_volume(options={})
           request(
             :path => '/Storage/Block/Volume/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/delete_volume.rb b/lib/fog/storm_on_demand/requests/storage/delete_volume.rb
index a37c6e3..d86961d 100644
--- a/lib/fog/storm_on_demand/requests/storage/delete_volume.rb
+++ b/lib/fog/storm_on_demand/requests/storage/delete_volume.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def delete_volume(options={})
           request(
             :path => '/Storage/Block/Volume/delete',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/detach_volume_from_server.rb b/lib/fog/storm_on_demand/requests/storage/detach_volume_from_server.rb
index 6d6b9ad..41c0497 100644
--- a/lib/fog/storm_on_demand/requests/storage/detach_volume_from_server.rb
+++ b/lib/fog/storm_on_demand/requests/storage/detach_volume_from_server.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def detach_volume_from_server(options={})
           request(
             :path => '/Storage/Block/Volume/detach',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/get_volume.rb b/lib/fog/storm_on_demand/requests/storage/get_volume.rb
index e1c4f80..208cc54 100644
--- a/lib/fog/storm_on_demand/requests/storage/get_volume.rb
+++ b/lib/fog/storm_on_demand/requests/storage/get_volume.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def get_volume(options={})
           request(
             :path => '/Storage/Block/Volume/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/list_clusters.rb b/lib/fog/storm_on_demand/requests/storage/list_clusters.rb
index 385dddc..cdc0a18 100644
--- a/lib/fog/storm_on_demand/requests/storage/list_clusters.rb
+++ b/lib/fog/storm_on_demand/requests/storage/list_clusters.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def list_clusters(options={})
           request(
             :path => '/Storage/Block/Cluster/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/list_volumes.rb b/lib/fog/storm_on_demand/requests/storage/list_volumes.rb
index 427df66..a113dc2 100644
--- a/lib/fog/storm_on_demand/requests/storage/list_volumes.rb
+++ b/lib/fog/storm_on_demand/requests/storage/list_volumes.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def list_volumes(options={})
           request(
             :path => '/Storage/Block/Volume/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/resize_volume.rb b/lib/fog/storm_on_demand/requests/storage/resize_volume.rb
index 6d1152f..cad70fe 100644
--- a/lib/fog/storm_on_demand/requests/storage/resize_volume.rb
+++ b/lib/fog/storm_on_demand/requests/storage/resize_volume.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def resize_volume(options={})
           request(
             :path => '/Storage/Block/Volume/resize',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/storage/update_volume.rb b/lib/fog/storm_on_demand/requests/storage/update_volume.rb
index f37f2dc..7a66400 100644
--- a/lib/fog/storm_on_demand/requests/storage/update_volume.rb
+++ b/lib/fog/storm_on_demand/requests/storage/update_volume.rb
@@ -2,14 +2,12 @@ module Fog
   module Storage
     class StormOnDemand
       class Real
-
         def update_volume(options={})
           request(
             :path => '/Storage/Block/Volume/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/add_feedback.rb b/lib/fog/storm_on_demand/requests/support/add_feedback.rb
index ac956da..aeccb4d 100644
--- a/lib/fog/storm_on_demand/requests/support/add_feedback.rb
+++ b/lib/fog/storm_on_demand/requests/support/add_feedback.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def add_feedback(options={})
           request(
             :path => '/Support/Ticket/addFeedback',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/add_transaction_feedback.rb b/lib/fog/storm_on_demand/requests/support/add_transaction_feedback.rb
index 6403cc7..4aaecb5 100644
--- a/lib/fog/storm_on_demand/requests/support/add_transaction_feedback.rb
+++ b/lib/fog/storm_on_demand/requests/support/add_transaction_feedback.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def add_transaction_feedback(options={})
           request(
             :path => '/Support/Ticket/addTransactionFeedback',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/authenticate.rb b/lib/fog/storm_on_demand/requests/support/authenticate.rb
index 36182e2..fe95295 100644
--- a/lib/fog/storm_on_demand/requests/support/authenticate.rb
+++ b/lib/fog/storm_on_demand/requests/support/authenticate.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def authenticate(options={})
           request(
             :path => '/Support/Ticket/authenticate',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/close_ticket.rb b/lib/fog/storm_on_demand/requests/support/close_ticket.rb
index 93e6231..fbf7df5 100644
--- a/lib/fog/storm_on_demand/requests/support/close_ticket.rb
+++ b/lib/fog/storm_on_demand/requests/support/close_ticket.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def close_ticket(options={})
           request(
             :path => '/Support/Ticket/close',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/create_ticket.rb b/lib/fog/storm_on_demand/requests/support/create_ticket.rb
index 5ec0097..0d2b947 100644
--- a/lib/fog/storm_on_demand/requests/support/create_ticket.rb
+++ b/lib/fog/storm_on_demand/requests/support/create_ticket.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def create_ticket(options={})
           request(
             :path => '/Support/Ticket/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/get_active_alert.rb b/lib/fog/storm_on_demand/requests/support/get_active_alert.rb
index 337d0a9..14436b3 100644
--- a/lib/fog/storm_on_demand/requests/support/get_active_alert.rb
+++ b/lib/fog/storm_on_demand/requests/support/get_active_alert.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def get_active_alert(options={})
           request(
             :path => '/Support/Alert/getActive',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/get_ticket_details.rb b/lib/fog/storm_on_demand/requests/support/get_ticket_details.rb
index c1174bd..3b9030c 100644
--- a/lib/fog/storm_on_demand/requests/support/get_ticket_details.rb
+++ b/lib/fog/storm_on_demand/requests/support/get_ticket_details.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def get_ticket_details(options={})
           request(
             :path => '/Support/Ticket/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/list_ticket_types.rb b/lib/fog/storm_on_demand/requests/support/list_ticket_types.rb
index 7b7275d..db726be 100644
--- a/lib/fog/storm_on_demand/requests/support/list_ticket_types.rb
+++ b/lib/fog/storm_on_demand/requests/support/list_ticket_types.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def list_ticket_types(options={})
           request(
             :path => '/Support/Ticket/types',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/list_tickets.rb b/lib/fog/storm_on_demand/requests/support/list_tickets.rb
index 29f414e..6f3f963 100644
--- a/lib/fog/storm_on_demand/requests/support/list_tickets.rb
+++ b/lib/fog/storm_on_demand/requests/support/list_tickets.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def list_tickets(options={})
           request(
             :path => '/Support/Ticket/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/reopen_ticket.rb b/lib/fog/storm_on_demand/requests/support/reopen_ticket.rb
index 2af38d5..4c1531d 100644
--- a/lib/fog/storm_on_demand/requests/support/reopen_ticket.rb
+++ b/lib/fog/storm_on_demand/requests/support/reopen_ticket.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def reopen_ticket(options={})
           request(
             :path => '/Support/Ticket/reopen',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/support/reply_ticket.rb b/lib/fog/storm_on_demand/requests/support/reply_ticket.rb
index 546b64c..4adba59 100644
--- a/lib/fog/storm_on_demand/requests/support/reply_ticket.rb
+++ b/lib/fog/storm_on_demand/requests/support/reply_ticket.rb
@@ -2,14 +2,12 @@ module Fog
   module Support
     class StormOnDemand
       class Real
-
         def reply_ticket(options={})
           request(
             :path => '/Support/Ticket/reply',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/vpn/create_vpn.rb b/lib/fog/storm_on_demand/requests/vpn/create_vpn.rb
index 0409437..bc2d407 100644
--- a/lib/fog/storm_on_demand/requests/vpn/create_vpn.rb
+++ b/lib/fog/storm_on_demand/requests/vpn/create_vpn.rb
@@ -2,14 +2,12 @@ module Fog
   module VPN
     class StormOnDemand
       class Real
-
         def create_vpn(options={})
           request(
             :path => '/VPN/create',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/vpn/get_vpn.rb b/lib/fog/storm_on_demand/requests/vpn/get_vpn.rb
index 1a1f533..7f989a4 100644
--- a/lib/fog/storm_on_demand/requests/vpn/get_vpn.rb
+++ b/lib/fog/storm_on_demand/requests/vpn/get_vpn.rb
@@ -2,14 +2,12 @@ module Fog
   module VPN
     class StormOnDemand
       class Real
-
         def get_vpn(options={})
           request(
             :path => '/VPN/details',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/vpn/list_vpn_users.rb b/lib/fog/storm_on_demand/requests/vpn/list_vpn_users.rb
index 7d3705e..6e076c0 100644
--- a/lib/fog/storm_on_demand/requests/vpn/list_vpn_users.rb
+++ b/lib/fog/storm_on_demand/requests/vpn/list_vpn_users.rb
@@ -2,14 +2,12 @@ module Fog
   module VPN
     class StormOnDemand
       class Real
-
         def list_vpn_users(options={})
           request(
             :path => '/VPN/list',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/requests/vpn/update_vpn.rb b/lib/fog/storm_on_demand/requests/vpn/update_vpn.rb
index 555a8e2..c98ee8b 100644
--- a/lib/fog/storm_on_demand/requests/vpn/update_vpn.rb
+++ b/lib/fog/storm_on_demand/requests/vpn/update_vpn.rb
@@ -2,14 +2,12 @@ module Fog
   module VPN
     class StormOnDemand
       class Real
-
         def update_vpn(options={})
           request(
             :path => '/VPN/update',
             :body => Fog::JSON.encode(:params => options)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/shared.rb b/lib/fog/storm_on_demand/shared.rb
index c7ce0c8..3bf2f9d 100644
--- a/lib/fog/storm_on_demand/shared.rb
+++ b/lib/fog/storm_on_demand/shared.rb
@@ -1,7 +1,6 @@
 module Fog
   module StormOnDemand
     module RealShared
-
       API_URL = 'https://api.stormondemand.com'
       API_VERSION = 'v1'
 
@@ -44,7 +43,7 @@ module Fog
         unless response.body.empty?
           response.body = Fog::JSON.decode(response.body)
         end
-        if response.body.has_key?('error_class')
+        if response.body.key?('error_class')
           raise(Fog::Compute::StormOnDemand::Error, response.body.inspect)
         end
         response
diff --git a/lib/fog/storm_on_demand/storage.rb b/lib/fog/storm_on_demand/storage.rb
index 22dccf0..dfeac50 100644
--- a/lib/fog/storm_on_demand/storage.rb
+++ b/lib/fog/storm_on_demand/storage.rb
@@ -4,7 +4,6 @@ require "fog/storm_on_demand/shared"
 module Fog
   module Storage
     class StormOnDemand < Fog::Service
-
       API_URL = 'https://api.stormondemand.com'
       API_VERSION = 'v1'
 
@@ -29,7 +28,6 @@ module Fog
       request :update_volume
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -55,13 +53,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/support.rb b/lib/fog/storm_on_demand/support.rb
index 76f8924..665665a 100644
--- a/lib/fog/storm_on_demand/support.rb
+++ b/lib/fog/storm_on_demand/support.rb
@@ -3,9 +3,7 @@ require 'fog/storm_on_demand/shared'
 
 module Fog
   module Support
-
     class StormOnDemand < Fog::Service
-
       requires :storm_on_demand_username, :storm_on_demand_password
       recognizes :storm_on_demand_auth_url
 
@@ -28,7 +26,6 @@ module Fog
       request :list_ticket_types
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -54,13 +51,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/storm_on_demand/vpn.rb b/lib/fog/storm_on_demand/vpn.rb
index 6a2ed99..42bb248 100644
--- a/lib/fog/storm_on_demand/vpn.rb
+++ b/lib/fog/storm_on_demand/vpn.rb
@@ -18,7 +18,6 @@ module Fog
       request :update_vpn
 
       class Mock
-
         def self.data
           @data ||= Hash.new
         end
@@ -44,13 +43,10 @@ module Fog
         def reset_data
           self.class.data.delete(@storm_on_demand_username)
         end
-
       end
 
       class Real
-
         include Fog::StormOnDemand::RealShared
-
       end
     end
   end
diff --git a/lib/fog/terremark/models/shared/address.rb b/lib/fog/terremark/models/shared/address.rb
index 278b5d0..b75391a 100644
--- a/lib/fog/terremark/models/shared/address.rb
+++ b/lib/fog/terremark/models/shared/address.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class Address < Fog::Model
-
         identity :id
 
         attribute :ip, :aliases => 'name'
@@ -21,9 +19,7 @@ module Fog
         def href=(new_href)
           self.id = new_href.split('/').last.to_i
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/addresses.rb b/lib/fog/terremark/models/shared/addresses.rb
index 964dbb2..5d2bed7 100644
--- a/lib/fog/terremark/models/shared/addresses.rb
+++ b/lib/fog/terremark/models/shared/addresses.rb
@@ -1,7 +1,6 @@
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def addresses(options = {})
           Fog::Terremark::Shared::Addresses.new(options.merge(:service => self))
@@ -15,7 +14,6 @@ module Fog
       end
 
       class Addresses < Fog::Collection
-
         model Fog::Terremark::Shared::Address
 
         def all
@@ -41,9 +39,7 @@ module Fog
         def vdc_id=(new_vdc_id)
           @vdc_id = new_vdc_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/image.rb b/lib/fog/terremark/models/shared/image.rb
index 52595ac..6a39de8 100644
--- a/lib/fog/terremark/models/shared/image.rb
+++ b/lib/fog/terremark/models/shared/image.rb
@@ -3,13 +3,10 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class Image < Fog::Model
-
         identity :id
 
         attribute :name
-
       end
 
       private
diff --git a/lib/fog/terremark/models/shared/images.rb b/lib/fog/terremark/models/shared/images.rb
index 47c0fc5..e104b29 100644
--- a/lib/fog/terremark/models/shared/images.rb
+++ b/lib/fog/terremark/models/shared/images.rb
@@ -4,8 +4,6 @@ require 'fog/terremark/models/shared/image'
 module Fog
   module Terremark
     module Shared
-
-
       module Mock
         def images(options = {})
           Fog::Terremark::Shared::Images.new(options.merge(:service => self))
@@ -19,8 +17,6 @@ module Fog
       end
 
       class Images < Fog::Collection
-
-
         model Fog::Terremark::Shared::Image
 
         def all
@@ -30,7 +26,6 @@ module Fog
           load(data)
         end
 
-
         def vdc_id
           @vdc_id ||= service.default_vdc_id
         end
@@ -40,9 +35,7 @@ module Fog
         def vdc_id=(new_vdc_id)
           @vdc_id = new_vdc_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/internetservice.rb b/lib/fog/terremark/models/shared/internetservice.rb
index 3849ea0..33690ef 100644
--- a/lib/fog/terremark/models/shared/internetservice.rb
+++ b/lib/fog/terremark/models/shared/internetservice.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class InternetService < Fog::Model
-
         identity :Id
 
         attribute :Name
@@ -58,9 +56,10 @@ module Fog
         end
 
         def type=(new_type); @type = new_type; end
+
         def size=(new_size); @size = new_size; end
-        def Links=(new_links); @Links = new_links; end
 
+        def Links=(new_links); @Links = new_links; end
       end
     end
   end
diff --git a/lib/fog/terremark/models/shared/internetservices.rb b/lib/fog/terremark/models/shared/internetservices.rb
index 0edb4e4..33d50c3 100644
--- a/lib/fog/terremark/models/shared/internetservices.rb
+++ b/lib/fog/terremark/models/shared/internetservices.rb
@@ -4,7 +4,6 @@ require 'fog/terremark/models/shared/internetservice'
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def internetservices(options = {})
           Fog::Terremark::Shared::Servers.new(options.merge(:service => self))
@@ -18,7 +17,6 @@ module Fog
       end
 
       class InternetServices < Fog::Collection
-
         model Fog::Terremark::Shared::InternetService
 
         def all
@@ -35,7 +33,6 @@ module Fog
         def vdc_id
           @vdc_id ||= service.default_vdc_id
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/models/shared/network.rb b/lib/fog/terremark/models/shared/network.rb
index cdb5f4b..d9d499b 100644
--- a/lib/fog/terremark/models/shared/network.rb
+++ b/lib/fog/terremark/models/shared/network.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class Network < Fog::Model
-
         identity :id
 
         attribute :name
@@ -27,9 +25,7 @@ module Fog
         end
 
         def type=(new_type); end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/networks.rb b/lib/fog/terremark/models/shared/networks.rb
index 7e58712..8ca75fe 100644
--- a/lib/fog/terremark/models/shared/networks.rb
+++ b/lib/fog/terremark/models/shared/networks.rb
@@ -1,7 +1,6 @@
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def networks(options = {})
           Fog::Terremark::Shared::Networks.new(options.merge(:service => self))
@@ -15,7 +14,6 @@ module Fog
       end
 
       class Networks < Fog::Collection
-
         model Fog::Terremark::Shared::Network
 
         def all
@@ -44,9 +42,7 @@ module Fog
         def vdc_id=(new_vdc_id)
           @vdc_id = new_vdc_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/nodeservice.rb b/lib/fog/terremark/models/shared/nodeservice.rb
index 2e42d66..3684c6f 100644
--- a/lib/fog/terremark/models/shared/nodeservice.rb
+++ b/lib/fog/terremark/models/shared/nodeservice.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class NodeService < Fog::Model
-
         identity :Id
         attribute :Name
         attribute :Href
@@ -42,11 +40,11 @@ module Fog
         end
 
         def type=(new_type); @type = new_type; end
+
         def size=(new_size); @size = new_size; end
-        def Links=(new_links); @Links = new_links; end
 
+        def Links=(new_links); @Links = new_links; end
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/nodeservices.rb b/lib/fog/terremark/models/shared/nodeservices.rb
index 657e162..fc34578 100644
--- a/lib/fog/terremark/models/shared/nodeservices.rb
+++ b/lib/fog/terremark/models/shared/nodeservices.rb
@@ -4,7 +4,6 @@ require 'fog/terremark/models/shared/nodeservice'
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def nodeservices(options = {})
           Fog::Terremark::Shared::Servers.new(options.merge(:service => self))
@@ -18,14 +17,12 @@ module Fog
       end
 
       class NodeServices < Fog::Collection
-
         model Fog::Terremark::Shared::NodeService
 
         def all(internet_service_id)
           data = service.get_node_services(internet_service_id).body["NodeServices"]
           load(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/models/shared/server.rb b/lib/fog/terremark/models/shared/server.rb
index 6c113dc..39b01d1 100644
--- a/lib/fog/terremark/models/shared/server.rb
+++ b/lib/fog/terremark/models/shared/server.rb
@@ -10,13 +10,10 @@ module VAppStatus
   POWERED_ON = "4"
 end
 
-
 module Fog
   module Terremark
     module Shared
-
       class Server < Fog::Model
-
         identity :id
 
         attribute :name
@@ -33,6 +30,7 @@ module Fog
         def reload
          merge_attributes(service.get_vapp(id).body)
         end
+
         def destroy
           case self.status
             when VAppStatus::BEING_CREATED, VAppStatus::BEING_DEPLOYED
@@ -202,9 +200,10 @@ module Fog
         end
 
         def type=(new_type); @type = new_type; end
+
         def size=(new_size); @size = new_size; end
-        def Links=(new_links); @Links = new_links; end
 
+        def Links=(new_links); @Links = new_links; end
       end
     end
   end
diff --git a/lib/fog/terremark/models/shared/servers.rb b/lib/fog/terremark/models/shared/servers.rb
index 9c90dde..578ddfb 100644
--- a/lib/fog/terremark/models/shared/servers.rb
+++ b/lib/fog/terremark/models/shared/servers.rb
@@ -4,7 +4,6 @@ require 'fog/terremark/models/shared/server'
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def servers(options = {})
           Fog::Terremark::Shared::Servers.new(options.merge(:service => self))
@@ -18,7 +17,6 @@ module Fog
       end
 
       class Servers < Fog::Collection
-
         model Fog::Terremark::Shared::Server
 
         def all
@@ -46,9 +44,7 @@ module Fog
         def vdc_id=(new_vdc_id)
           @vdc_id = new_vdc_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/task.rb b/lib/fog/terremark/models/shared/task.rb
index 5a4eb87..82f6cbc 100644
--- a/lib/fog/terremark/models/shared/task.rb
+++ b/lib/fog/terremark/models/shared/task.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class Task < Fog::Model
-
         identity :id
 
         attribute :end_time,    :aliases => 'endTime'
@@ -42,9 +40,7 @@ module Fog
         end
 
         def type=(new_type); end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/tasks.rb b/lib/fog/terremark/models/shared/tasks.rb
index b2f1ed7..50a98bf 100644
--- a/lib/fog/terremark/models/shared/tasks.rb
+++ b/lib/fog/terremark/models/shared/tasks.rb
@@ -4,7 +4,6 @@ require 'fog/terremark/models/shared/server'
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def tasks
           Fog::Terremark::Shared::Tasks.new(:service => self)
@@ -18,7 +17,6 @@ module Fog
       end
 
       class Tasks < Fog::Collection
-
         model Fog::Terremark::Shared::Task
 
         def all
@@ -39,7 +37,7 @@ module Fog
         def task_list_id
           @task_list_id ||=
             if service.default_organization_id && organization = service.get_organization(service.default_organization_id).body
-              organization['Links'].detect {|link| link['type'] == 'application/vnd.vmware.vcloud.tasksList+xml'}['href'].split('/').last.to_i
+              organization['Links'].find {|link| link['type'] == 'application/vnd.vmware.vcloud.tasksList+xml'}['href'].split('/').last.to_i
             else
               nil
             end
@@ -50,9 +48,7 @@ module Fog
         def task_list_id=(new_task_list_id)
           @task_list_id = new_task_list_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/vdc.rb b/lib/fog/terremark/models/shared/vdc.rb
index 6bb1f54..fcb9498 100644
--- a/lib/fog/terremark/models/shared/vdc.rb
+++ b/lib/fog/terremark/models/shared/vdc.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Terremark
     module Shared
-
       class Vdc < Fog::Model
-
         identity :id
 
         attribute :name
@@ -36,9 +34,7 @@ module Fog
         def type=(new_type); end
 
         def rel=(new_rel); end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/models/shared/vdcs.rb b/lib/fog/terremark/models/shared/vdcs.rb
index ac68080..d2498d6 100644
--- a/lib/fog/terremark/models/shared/vdcs.rb
+++ b/lib/fog/terremark/models/shared/vdcs.rb
@@ -1,7 +1,6 @@
 module Fog
   module Terremark
     module Shared
-
       module Mock
         def vdcs(options = {})
           Fog::Terremark::Shared::Vdcs.new(options.merge(:service => self))
@@ -15,7 +14,6 @@ module Fog
       end
 
       class Vdcs < Fog::Collection
-
         model Fog::Terremark::Shared::Vdc
 
         def all
@@ -44,9 +42,7 @@ module Fog
         def organization_id=(new_organization_id)
           @organization_id = new_organization_id
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/parser.rb b/lib/fog/terremark/parser.rb
index 651520e..b03196b 100644
--- a/lib/fog/terremark/parser.rb
+++ b/lib/fog/terremark/parser.rb
@@ -1,6 +1,5 @@
 
 class TerremarkParser < Fog::Parsers::Base
-
   def extract_attributes(attributes_xml)
     attributes = {}
     until attributes_xml.empty?
@@ -17,4 +16,3 @@ class TerremarkParser < Fog::Parsers::Base
     attributes
   end
 end
-
diff --git a/lib/fog/terremark/parsers/shared/get_catalog.rb b/lib/fog/terremark/parsers/shared/get_catalog.rb
index 35d9d76..33f99c5 100644
--- a/lib/fog/terremark/parsers/shared/get_catalog.rb
+++ b/lib/fog/terremark/parsers/shared/get_catalog.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetCatalog < TerremarkParser
-
           def reset
             @response = { 'CatalogItems' => [] }
           end
@@ -28,9 +26,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_catalog_item.rb b/lib/fog/terremark/parsers/shared/get_catalog_item.rb
index 5989756..258813c 100644
--- a/lib/fog/terremark/parsers/shared/get_catalog_item.rb
+++ b/lib/fog/terremark/parsers/shared/get_catalog_item.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetCatalogItem < TerremarkParser
-
           def reset
             @response = { 'Entity' => {}, 'Properties' => {} }
           end
@@ -27,9 +25,7 @@ module Fog
               @response['Properties'][@property_key] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_internet_services.rb b/lib/fog/terremark/parsers/shared/get_internet_services.rb
index ce9df2a..8865238 100644
--- a/lib/fog/terremark/parsers/shared/get_internet_services.rb
+++ b/lib/fog/terremark/parsers/shared/get_internet_services.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetInternetServices < TerremarkParser
-
           def reset
             @in_public_ip_address = false
             @internet_service = {}
@@ -53,7 +51,6 @@ module Fog
             end
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_keys_list.rb b/lib/fog/terremark/parsers/shared/get_keys_list.rb
index 0211bd2..096d949 100644
--- a/lib/fog/terremark/parsers/shared/get_keys_list.rb
+++ b/lib/fog/terremark/parsers/shared/get_keys_list.rb
@@ -3,7 +3,6 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetKeysList < TerremarkParser
           def reset
             @response = { 'Keys' => [] }
@@ -33,9 +32,7 @@ module Fog
               @key = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_network_ips.rb b/lib/fog/terremark/parsers/shared/get_network_ips.rb
index 4aafa1d..f9ebfcc 100644
--- a/lib/fog/terremark/parsers/shared/get_network_ips.rb
+++ b/lib/fog/terremark/parsers/shared/get_network_ips.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetNetworkIps< TerremarkParser
-
           def reset
             @ip_address = {}
             @response = { 'IpAddresses' => [] }
@@ -19,11 +17,8 @@ module Fog
               @ip_address = {}
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/terremark/parsers/shared/get_node_services.rb b/lib/fog/terremark/parsers/shared/get_node_services.rb
index e84934e..38119b7 100644
--- a/lib/fog/terremark/parsers/shared/get_node_services.rb
+++ b/lib/fog/terremark/parsers/shared/get_node_services.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetNodeServices < TerremarkParser
-
           def reset
             @node_service = {}
             @response = { 'NodeServices' => [] }
@@ -27,9 +25,7 @@ module Fog
               @node_service = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_organization.rb b/lib/fog/terremark/parsers/shared/get_organization.rb
index c0f9bb5..068d97f 100644
--- a/lib/fog/terremark/parsers/shared/get_organization.rb
+++ b/lib/fog/terremark/parsers/shared/get_organization.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetOrganization < TerremarkParser
           # include Fog::Terremark::Shared::Parser
 
@@ -44,9 +43,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_organizations.rb b/lib/fog/terremark/parsers/shared/get_organizations.rb
index 6b5c064..bd3ae67 100644
--- a/lib/fog/terremark/parsers/shared/get_organizations.rb
+++ b/lib/fog/terremark/parsers/shared/get_organizations.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetOrganizations < TerremarkParser
           # include Fog::Terremark::Shared::Parser
 
@@ -25,7 +24,6 @@ module Fog
               @response['OrgList'] << organization
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/terremark/parsers/shared/get_public_ips.rb b/lib/fog/terremark/parsers/shared/get_public_ips.rb
index b2518dc..a5c75b6 100644
--- a/lib/fog/terremark/parsers/shared/get_public_ips.rb
+++ b/lib/fog/terremark/parsers/shared/get_public_ips.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetPublicIps< TerremarkParser
-
           def reset
             @ip_address = {}
             @response = { 'PublicIpAddresses' => [] }
@@ -21,9 +19,7 @@ module Fog
               @ip_address = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_tasks_list.rb b/lib/fog/terremark/parsers/shared/get_tasks_list.rb
index bae3675..f387ca6 100644
--- a/lib/fog/terremark/parsers/shared/get_tasks_list.rb
+++ b/lib/fog/terremark/parsers/shared/get_tasks_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetTasksList < TerremarkParser
-
           def reset
             @response = { 'Tasks' => [] }
             @task = {}
@@ -30,9 +28,7 @@ module Fog
               @task = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_vapp_template.rb b/lib/fog/terremark/parsers/shared/get_vapp_template.rb
index 1ee5567..2b172ed 100644
--- a/lib/fog/terremark/parsers/shared/get_vapp_template.rb
+++ b/lib/fog/terremark/parsers/shared/get_vapp_template.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetVappTemplate < TerremarkParser
-
           def reset
             @response = { 'Links' => [] }
           end
@@ -26,9 +24,7 @@ module Fog
               @response['Description'] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/get_vdc.rb b/lib/fog/terremark/parsers/shared/get_vdc.rb
index 30ce55a..4c8ff1d 100644
--- a/lib/fog/terremark/parsers/shared/get_vdc.rb
+++ b/lib/fog/terremark/parsers/shared/get_vdc.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class GetVdc < TerremarkParser
-
           def reset
             @in_storage_capacity = false
             @in_cpu = false
@@ -82,9 +80,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb b/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb
index 4fd0eb6..3fe5e5f 100644
--- a/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb
+++ b/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class InstantiateVappTemplate < TerremarkParser
-
           def reset
             @property_key
             @response = { 'Links' => [] }
@@ -21,9 +19,7 @@ module Fog
               @response.merge!(vapp_template.reject {|key, value| !['href', 'name', 'size', 'status', 'type'].include?(key)})
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/internet_service.rb b/lib/fog/terremark/parsers/shared/internet_service.rb
index ad4e24a..d65ffcc 100644
--- a/lib/fog/terremark/parsers/shared/internet_service.rb
+++ b/lib/fog/terremark/parsers/shared/internet_service.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class InternetService < TerremarkParser
-
           def reset
             @in_public_ip_address = false
             @response = { 'PublicIpAddress' => {} }
@@ -53,9 +51,7 @@ module Fog
               @in_public_ip_address = false
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/network.rb b/lib/fog/terremark/parsers/shared/network.rb
index b5c01b9..8cf07d9 100644
--- a/lib/fog/terremark/parsers/shared/network.rb
+++ b/lib/fog/terremark/parsers/shared/network.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class Network < TerremarkParser
-
           def reset
             @response = {
               "links" => []
@@ -16,10 +14,10 @@ module Fog
             case name
             when "Network"
               @response = extract_attributes(attributes)
-              if @response.has_key?("name")
+              if @response.key?("name")
                 @response["subnet"] = @response["name"]
               end
-              if @response.has_key?("href")
+              if @response.key?("href")
                 @response["id"] = @response["href"].split("/").last
               end
             when "Link"
@@ -34,9 +32,7 @@ module Fog
               @response[name.downcase] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/node_service.rb b/lib/fog/terremark/parsers/shared/node_service.rb
index 4532ffa..35ded9f 100644
--- a/lib/fog/terremark/parsers/shared/node_service.rb
+++ b/lib/fog/terremark/parsers/shared/node_service.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class NodeService < TerremarkParser
-
           def reset
             @response = {}
           end
@@ -23,9 +21,7 @@ module Fog
               @response[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/public_ip.rb b/lib/fog/terremark/parsers/shared/public_ip.rb
index 1747168..b564349 100644
--- a/lib/fog/terremark/parsers/shared/public_ip.rb
+++ b/lib/fog/terremark/parsers/shared/public_ip.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class PublicIp < TerremarkParser
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response['id'] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/task.rb b/lib/fog/terremark/parsers/shared/task.rb
index fa0d2d9..3fa39ea 100644
--- a/lib/fog/terremark/parsers/shared/task.rb
+++ b/lib/fog/terremark/parsers/shared/task.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class Task < TerremarkParser
-
           def reset
             @response = {}
           end
@@ -20,9 +18,7 @@ module Fog
               @response.merge!(task.reject {|key,value| !['endTime', 'href', 'startTime', 'status', 'type'].include?(key)})
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/parsers/shared/vapp.rb b/lib/fog/terremark/parsers/shared/vapp.rb
index 7e41ac6..fc19595 100644
--- a/lib/fog/terremark/parsers/shared/vapp.rb
+++ b/lib/fog/terremark/parsers/shared/vapp.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Terremark
       module Shared
-
         class Vapp < TerremarkParser
-
           def reset
             @response = { 'Links' => [], 'VirtualHardware' => {}, 'OperatingSystem' => {} }
             @in_operating_system = false
@@ -56,11 +54,8 @@ module Fog
               end
             end
           end
-
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/terremark/requests/shared/add_internet_service.rb b/lib/fog/terremark/requests/shared/add_internet_service.rb
index 7f2c39f..73eb4e6 100644
--- a/lib/fog/terremark/requests/shared/add_internet_service.rb
+++ b/lib/fog/terremark/requests/shared/add_internet_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Reserve requested resources and deploy vApp
         #
         # ==== Parameters
@@ -27,7 +26,7 @@ module Fog
         #       * 'name'<~String> - name of owner
         #       * 'type'<~String> - type of owner
         def add_internet_service(ip_id, name, protocol, port, options = {})
-          unless options.has_key?('Enabled')
+          unless options.key?('Enabled')
             options['Enabled'] = true
           end
           data = <<-DATA
@@ -49,7 +48,6 @@ module Fog
             :override_path => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/add_node_service.rb b/lib/fog/terremark/requests/shared/add_node_service.rb
index 46b5d8a..5f63907 100644
--- a/lib/fog/terremark/requests/shared/add_node_service.rb
+++ b/lib/fog/terremark/requests/shared/add_node_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Reserve requested resources and deploy vApp
         #
         # ==== Parameters
@@ -27,7 +26,7 @@ module Fog
         #       * 'name'<~String> - name of owner
         #       * 'type'<~String> - type of owner
         def add_node_service(service_id, ip, name, port, options = {})
-          unless options.has_key?('Enabled')
+          unless options.key?('Enabled')
             options['Enabled'] = true
           end
 
@@ -46,7 +45,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/configure_vapp.rb b/lib/fog/terremark/requests/shared/configure_vapp.rb
index ec7c1a9..b90c44a 100644
--- a/lib/fog/terremark/requests/shared/configure_vapp.rb
+++ b/lib/fog/terremark/requests/shared/configure_vapp.rb
@@ -4,7 +4,6 @@ module Fog
       module Real
         include Common
         def configure_vapp(vapp_id, vapp_name, options = {})
-
         items = ""
         vapp_uri = [@host, @path, "vApp", vapp_id.to_s].join("/")
 
@@ -54,7 +53,6 @@ DATA
             :path => "vapp/#{vapp_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/create_internet_service.rb b/lib/fog/terremark/requests/shared/create_internet_service.rb
index 576cc39..107ab3d 100644
--- a/lib/fog/terremark/requests/shared/create_internet_service.rb
+++ b/lib/fog/terremark/requests/shared/create_internet_service.rb
@@ -28,7 +28,7 @@ module Fog
         #       * 'name'<~String> - name of owner
         #       * 'type'<~String> - type of owner
         def create_internet_service(vdc_id, name, protocol, port, options = {})
-          unless options.has_key?('Enabled')
+          unless options.key?('Enabled')
             options['Enabled'] = true
           end
           #Sample: "https://services.vcloudexpress.terremark.com/api/extensions/v1.6/vdc/3142/internetServices"
@@ -53,7 +53,6 @@ module Fog
           )
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/delete_internet_service.rb b/lib/fog/terremark/requests/shared/delete_internet_service.rb
index 00fa587..a2a9100 100644
--- a/lib/fog/terremark/requests/shared/delete_internet_service.rb
+++ b/lib/fog/terremark/requests/shared/delete_internet_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Destroy an internet service
         #
         # ==== Parameters
@@ -16,7 +15,6 @@ module Fog
             :override_path => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/delete_node_service.rb b/lib/fog/terremark/requests/shared/delete_node_service.rb
index 4f34c7e..277b8cd 100644
--- a/lib/fog/terremark/requests/shared/delete_node_service.rb
+++ b/lib/fog/terremark/requests/shared/delete_node_service.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Destroy a node
         #
         # ==== Parameters
@@ -16,7 +15,6 @@ module Fog
             :override_path => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/delete_public_ip.rb b/lib/fog/terremark/requests/shared/delete_public_ip.rb
index cc77e3c..e88764e 100644
--- a/lib/fog/terremark/requests/shared/delete_public_ip.rb
+++ b/lib/fog/terremark/requests/shared/delete_public_ip.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Destroy a public ip
         #
         # ==== Parameters
@@ -16,7 +15,6 @@ module Fog
             :override_path => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/delete_vapp.rb b/lib/fog/terremark/requests/shared/delete_vapp.rb
index e7cf048..d25543d 100644
--- a/lib/fog/terremark/requests/shared/delete_vapp.rb
+++ b/lib/fog/terremark/requests/shared/delete_vapp.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Destroy a vapp
         #
         # ==== Parameters
@@ -15,7 +14,6 @@ module Fog
             :path     => "vApp/#{vapp_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/deploy_vapp.rb b/lib/fog/terremark/requests/shared/deploy_vapp.rb
index 0150193..c94cdd7 100644
--- a/lib/fog/terremark/requests/shared/deploy_vapp.rb
+++ b/lib/fog/terremark/requests/shared/deploy_vapp.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Reserve requested resources and deploy vApp
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
             :path     => "vApp/#{vapp_id}/action/deploy"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_catalog.rb b/lib/fog/terremark/requests/shared/get_catalog.rb
index 370d4d6..0296727 100644
--- a/lib/fog/terremark/requests/shared/get_catalog.rb
+++ b/lib/fog/terremark/requests/shared/get_catalog.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of a catalog
         #
         # ==== Parameters
@@ -25,7 +24,6 @@ module Fog
             :path     => "vdc/#{vdc_id}/catalog"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_catalog_item.rb b/lib/fog/terremark/requests/shared/get_catalog_item.rb
index 4ed3e28..192d966 100644
--- a/lib/fog/terremark/requests/shared/get_catalog_item.rb
+++ b/lib/fog/terremark/requests/shared/get_catalog_item.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of a catalog item
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
             :path     => "catalogItem/#{catalog_item_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_internet_services.rb b/lib/fog/terremark/requests/shared/get_internet_services.rb
index 2b3ee59..db1abc2 100644
--- a/lib/fog/terremark/requests/shared/get_internet_services.rb
+++ b/lib/fog/terremark/requests/shared/get_internet_services.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         require 'fog/terremark/parsers/shared/get_internet_services'
 
         # Get a list of all internet services for a vdc
@@ -29,7 +28,6 @@ module Fog
             :override_path => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_keys_list.rb b/lib/fog/terremark/requests/shared/get_keys_list.rb
index 89c48ad..9864710 100644
--- a/lib/fog/terremark/requests/shared/get_keys_list.rb
+++ b/lib/fog/terremark/requests/shared/get_keys_list.rb
@@ -28,9 +28,7 @@ module Fog
           )
           response
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/requests/shared/get_network.rb b/lib/fog/terremark/requests/shared/get_network.rb
index c19467c..1542ea9 100644
--- a/lib/fog/terremark/requests/shared/get_network.rb
+++ b/lib/fog/terremark/requests/shared/get_network.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details for a Network
         #
         # ==== Parameters
@@ -20,15 +19,13 @@ module Fog
             :path     => "network/#{network_id}"
           )
         end
-
       end
 
       module Mock
-
         def get_network(network_id)
           network_id = network_id.to_i
           response = Excon::Response.new
-          if network = self.data[:organizations].map { |org| org[:vdcs].map { |vdc| vdc[:networks] } }.flatten.detect { |network| network[:id] == network_id }
+          if network = self.data[:organizations].map { |org| org[:vdcs].map { |vdc| vdc[:networks] } }.flatten.find { |network| network[:id] == network_id }
 
             body = { "links" => [],
                      "type" => "application/vnd.vmware.vcloud.network+xml",
@@ -66,7 +63,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_network_ips.rb b/lib/fog/terremark/requests/shared/get_network_ips.rb
index fe649e4..da2083f 100644
--- a/lib/fog/terremark/requests/shared/get_network_ips.rb
+++ b/lib/fog/terremark/requests/shared/get_network_ips.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details for a Network
         #
         # ==== Parameters
@@ -24,9 +23,7 @@ module Fog
           end
           request(opts)
         end
-
       end
     end
   end
 end
-
diff --git a/lib/fog/terremark/requests/shared/get_node_services.rb b/lib/fog/terremark/requests/shared/get_node_services.rb
index ce2e161..efb9368 100644
--- a/lib/fog/terremark/requests/shared/get_node_services.rb
+++ b/lib/fog/terremark/requests/shared/get_node_services.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         require 'fog/terremark/parsers/shared/get_node_services'
 
         # Get a list of all internet services for a vdc
@@ -24,7 +23,6 @@ module Fog
             :override_path => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_organization.rb b/lib/fog/terremark/requests/shared/get_organization.rb
index 8d21805..5789fe1 100644
--- a/lib/fog/terremark/requests/shared/get_organization.rb
+++ b/lib/fog/terremark/requests/shared/get_organization.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of an organization
         #
         # ==== Parameters
@@ -27,16 +26,14 @@ module Fog
           )
           response
         end
-
       end
 
       module Mock
-
         def get_organization(organization_id)
           organization_id = organization_id.to_i
           response = Excon::Response.new
 
-          if org = self.data[:organizations].detect { |org| org[:info][:id] == organization_id }
+          if org = self.data[:organizations].find { |org| org[:info][:id] == organization_id }
 
             body = { "name" => org[:info][:name],
                      "href" => "#{@base_url}/org/#{org[:info][:id]}",
@@ -80,7 +77,6 @@ module Fog
           ]
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/requests/shared/get_organizations.rb b/lib/fog/terremark/requests/shared/get_organizations.rb
index 4fc2f9b..3dbfb8b 100644
--- a/lib/fog/terremark/requests/shared/get_organizations.rb
+++ b/lib/fog/terremark/requests/shared/get_organizations.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get list of organizations
         #
         # ==== Returns
@@ -24,11 +23,9 @@ module Fog
             :path     => 'login'
           })
         end
-
       end
 
       module Mock
-
         def get_organizations
           response = Excon::Response.new
           org_list = self.data[:organizations].map do |organization|
@@ -42,7 +39,6 @@ module Fog
           response.headers = Fog::Terremark::Shared::Mock.headers(response.body, "application/vnd.vmware.vcloud.orgList+xml")
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_public_ip.rb b/lib/fog/terremark/requests/shared/get_public_ip.rb
index aed5ec4..eceeb10 100644
--- a/lib/fog/terremark/requests/shared/get_public_ip.rb
+++ b/lib/fog/terremark/requests/shared/get_public_ip.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details for a public ip
         #
         # ==== Parameters
@@ -26,7 +25,6 @@ module Fog
           end
           request(opts)
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_public_ips.rb b/lib/fog/terremark/requests/shared/get_public_ips.rb
index 6815320..0c88e19 100644
--- a/lib/fog/terremark/requests/shared/get_public_ips.rb
+++ b/lib/fog/terremark/requests/shared/get_public_ips.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get list of public ips
         #
         # ==== Parameters
@@ -26,16 +25,14 @@ module Fog
           end
           request(opts)
         end
-
       end
 
       module Mock
-
         def get_public_ips(vdc_id)
           vdc_id = vdc_id.to_i
           response = Excon::Response.new
 
-          if vdc = self.data[:organizations].map { |org| org[:vdcs] }.flatten.detect { |vdc| vdc[:id] == vdc_id }
+          if vdc = self.data[:organizations].map { |org| org[:vdcs] }.flatten.find { |vdc| vdc[:id] == vdc_id }
             body = { "PublicIpAddresses" => [] }
             vdc[:public_ips].each do |ip|
               ip = { "name" => ip[:name],
@@ -65,7 +62,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_task.rb b/lib/fog/terremark/requests/shared/get_task.rb
index d3e2f9a..e0b5892 100644
--- a/lib/fog/terremark/requests/shared/get_task.rb
+++ b/lib/fog/terremark/requests/shared/get_task.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of a task
         #
         # ==== Parameters
@@ -32,7 +31,6 @@ module Fog
             :path     => "task/#{task_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_tasks_list.rb b/lib/fog/terremark/requests/shared/get_tasks_list.rb
index e96fd71..a162a1b 100644
--- a/lib/fog/terremark/requests/shared/get_tasks_list.rb
+++ b/lib/fog/terremark/requests/shared/get_tasks_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get list of tasks
         #
         # ==== Parameters
@@ -25,9 +24,7 @@ module Fog
             :path     => "tasksList/#{tasks_list_id}"
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/requests/shared/get_vapp.rb b/lib/fog/terremark/requests/shared/get_vapp.rb
index 7a7d477..681fa57 100644
--- a/lib/fog/terremark/requests/shared/get_vapp.rb
+++ b/lib/fog/terremark/requests/shared/get_vapp.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of a vapp
         #
         # ==== Parameters
@@ -35,7 +34,6 @@ module Fog
             :path     => "vapp/#{vapp_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_vapp_template.rb b/lib/fog/terremark/requests/shared/get_vapp_template.rb
index 734316f..c589628 100644
--- a/lib/fog/terremark/requests/shared/get_vapp_template.rb
+++ b/lib/fog/terremark/requests/shared/get_vapp_template.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of a vapp template
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
             :path     => "vAppTemplate/#{vapp_template_id}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/get_vdc.rb b/lib/fog/terremark/requests/shared/get_vdc.rb
index 46fcfa2..0de449a 100644
--- a/lib/fog/terremark/requests/shared/get_vdc.rb
+++ b/lib/fog/terremark/requests/shared/get_vdc.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Get details of a vdc
         #
         # ==== Parameters
@@ -28,16 +27,14 @@ module Fog
             :path     => "vdc/#{vdc_id}"
           )
         end
-
       end
 
       module Mock
-
         def get_vdc(vdc_id)
           vdc_id = vdc_id.to_i
           response = Excon::Response.new
 
-          if vdc = self.data[:organizations].map { |org| org[:vdcs] }.flatten.detect { |vdc| vdc[:id] == vdc_id }
+          if vdc = self.data[:organizations].map { |org| org[:vdcs] }.flatten.find { |vdc| vdc[:id] == vdc_id }
 
             body = { "name" => vdc[:name],
                      "href" => "#{@base_url}/vdc/#{vdc[:id]}",
@@ -118,7 +115,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb b/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb
index 8b41ac5..9c99fde 100644
--- a/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb
+++ b/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Instatiate a vapp template
         #
         # ==== Parameters
@@ -74,7 +73,6 @@ DATA
             :path => "vdc/#{options['vdc_id']}/action/instantiatevAppTemplate"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/power_off.rb b/lib/fog/terremark/requests/shared/power_off.rb
index d82e1af..1999d8b 100644
--- a/lib/fog/terremark/requests/shared/power_off.rb
+++ b/lib/fog/terremark/requests/shared/power_off.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Power off a vapp
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
             :path     => "vApp/#{vapp_id}/power/action/powerOff"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/power_on.rb b/lib/fog/terremark/requests/shared/power_on.rb
index 18d98a7..709ce47 100644
--- a/lib/fog/terremark/requests/shared/power_on.rb
+++ b/lib/fog/terremark/requests/shared/power_on.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Power on a vapp
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
             :path     => "vApp/#{vapp_id}/power/action/powerOn"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/power_reset.rb b/lib/fog/terremark/requests/shared/power_reset.rb
index e4e7476..a443227 100644
--- a/lib/fog/terremark/requests/shared/power_reset.rb
+++ b/lib/fog/terremark/requests/shared/power_reset.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Reset a vapp
         #
         # ==== Parameters
@@ -28,7 +27,6 @@ module Fog
             :path     => "vApp/#{vapp_id}/power/action/reset"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/requests/shared/power_shutdown.rb b/lib/fog/terremark/requests/shared/power_shutdown.rb
index ecfa978..0c94665 100644
--- a/lib/fog/terremark/requests/shared/power_shutdown.rb
+++ b/lib/fog/terremark/requests/shared/power_shutdown.rb
@@ -2,7 +2,6 @@ module Fog
   module Terremark
     module Shared
       module Real
-
         # Shutdown a vapp
         #
         # ==== Parameters
@@ -17,7 +16,6 @@ module Fog
             :path     => "vApp/#{vapp_id}/power/action/shutdown"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/terremark/shared.rb b/lib/fog/terremark/shared.rb
index b5e709c..f002ca9 100644
--- a/lib/fog/terremark/shared.rb
+++ b/lib/fog/terremark/shared.rb
@@ -1,10 +1,8 @@
 module Fog
   module Terremark
     module Shared
-
       # Commond methods shared by Real and Mock
       module Common
-
         def default_organization_id
           @default_organization_id ||= begin
             org_list = get_organizations.body['OrgList']
@@ -15,11 +13,9 @@ module Fog
             end
           end
         end
-
       end
 
       module Parser
-
         def parse(data)
           case data['type']
           when 'application/vnd.vmware.vcloud.vApp+xml'
@@ -28,7 +24,6 @@ module Fog
             data
           end
         end
-
       end
 
       module Real
@@ -91,7 +86,6 @@ module Fog
             :path     => path
           })
         end
-
       end
 
       module Mock
@@ -305,7 +299,6 @@ module Fog
         require 'fog/terremark/requests/shared/power_reset'
         require 'fog/terremark/requests/shared/power_shutdown'
       end
-
     end
   end
 end
diff --git a/lib/fog/terremark/vcloud.rb b/lib/fog/terremark/vcloud.rb
index 2486367..8351351 100644
--- a/lib/fog/terremark/vcloud.rb
+++ b/lib/fog/terremark/vcloud.rb
@@ -1,7 +1,6 @@
 module Fog
   module Terremark
    module Vcloud
-
      module Bin
      end
 
@@ -33,7 +32,6 @@ module Fog
      end
 
      class Real
-
        include Fog::Terremark::Shared::Real
        include Fog::Terremark::Shared::Parser
 
@@ -125,11 +123,7 @@ module Fog
        def reset_data
          self.class.data.delete(@terremark_username)
        end
-
      end
-
    end
   end
 end
-
-
diff --git a/lib/fog/vcloud/compute.rb b/lib/fog/vcloud/compute.rb
index 1ce57af..95b0d81 100644
--- a/lib/fog/vcloud/compute.rb
+++ b/lib/fog/vcloud/compute.rb
@@ -3,7 +3,6 @@ require 'fog/vcloud/core'
 module Fog
   module Vcloud
     class Collection < Fog::Collection
-
       def load(objects)
         objects = [ objects ] if objects.is_a?(Hash)
         super
@@ -27,7 +26,6 @@ module Fog
           raise Fog::Errors::Error.new(msg)
         end
       end
-
     end
   end
 end
@@ -35,7 +33,6 @@ end
 module Fog
   module Vcloud
     class Model < Fog::Model
-
       attr_accessor :loaded
       alias_method :loaded?, :loaded
 
@@ -64,7 +61,6 @@ module Fog
           end
         EOS
       end
-
     end
   end
 end
@@ -72,7 +68,6 @@ end
 module Fog
   module Vcloud
     class Compute < Fog::Service
-
       BASE_PATH   = '/api'
       DEFAULT_VERSION = '1.5'
       SUPPORTED_VERSIONS = [ '1.5', '1.0' ]
@@ -142,17 +137,13 @@ module Fog
       request :configure_vm_customization_script
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         class << self
-
           def basic_request(*args)
             self.class_eval <<-EOS, __FILE__,__LINE__
               def #{args[0]}(uri)
@@ -270,7 +261,6 @@ module Fog
           end
         end
 
-
         def basic_request_params(uri,*args)
           {
             :expects => args[0] || 200,
@@ -352,7 +342,6 @@ module Fog
 
           response
         end
-
       end
       def self.item_requests(*types)
         types.each{|t| item_request(t) }
diff --git a/lib/fog/vcloud/core.rb b/lib/fog/vcloud/core.rb
index 3527156..7722fd2 100644
--- a/lib/fog/vcloud/core.rb
+++ b/lib/fog/vcloud/core.rb
@@ -2,10 +2,8 @@ require 'fog/core'
 
 module Fog
   module Vcloud
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/vcloud/examples/README.md b/lib/fog/vcloud/examples/README.md
index a58c193..8644dbe 100644
--- a/lib/fog/vcloud/examples/README.md
+++ b/lib/fog/vcloud/examples/README.md
@@ -2,7 +2,7 @@
 _contributor @singhgarima_
 
 For more information about fog [README](/README.md), or visit their website
-[fog.io](www.fog.io).
+[fog.io](http://fog.io).
 
 ## Vcloud API
 
diff --git a/lib/fog/vcloud/models/compute/catalog.rb b/lib/fog/vcloud/models/compute/catalog.rb
index 69ba1e0..42f513d 100644
--- a/lib/fog/vcloud/models/compute/catalog.rb
+++ b/lib/fog/vcloud/models/compute/catalog.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class Catalog < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
@@ -15,7 +14,6 @@ module Fog
             new( :service => service,
                  :href => href )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/catalog_item.rb b/lib/fog/vcloud/models/compute/catalog_item.rb
index da0fb09..c63088f 100644
--- a/lib/fog/vcloud/models/compute/catalog_item.rb
+++ b/lib/fog/vcloud/models/compute/catalog_item.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class CatalogItem < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
diff --git a/lib/fog/vcloud/models/compute/catalog_items.rb b/lib/fog/vcloud/models/compute/catalog_items.rb
index 6b7b43a..3609f45 100644
--- a/lib/fog/vcloud/models/compute/catalog_items.rb
+++ b/lib/fog/vcloud/models/compute/catalog_items.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class CatalogItems < Fog::Vcloud::Collection
-
         undef_method :create
 
         model Fog::Vcloud::Compute::CatalogItem
@@ -29,7 +28,6 @@ module Fog
         def organization_uri
           @organization_uri ||= service.default_organization_uri
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/catalogs.rb b/lib/fog/vcloud/models/compute/catalogs.rb
index cd73b19..7877fdc 100644
--- a/lib/fog/vcloud/models/compute/catalogs.rb
+++ b/lib/fog/vcloud/models/compute/catalogs.rb
@@ -4,7 +4,6 @@ module Fog
   module Vcloud
     class Compute
       class Catalogs < Fog::Vcloud::Collection
-
         model Fog::Vcloud::Compute::Catalog
 
         attribute :organization_uri
@@ -23,15 +22,14 @@ module Fog
 
         def item_by_name(name)
           res = nil
-          items = all.collect { |catalog| catalog.catalog_items }
+          items = all.map { |catalog| catalog.catalog_items }
           items.each do |i|
-            i.collect do |ii|
+            i.map do |ii|
               res = ii if ii.name == name
             end
           end
           res
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/ip.rb b/lib/fog/vcloud/models/compute/ip.rb
index 39287b8..9492563 100644
--- a/lib/fog/vcloud/models/compute/ip.rb
+++ b/lib/fog/vcloud/models/compute/ip.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class Ip < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
@@ -35,7 +34,6 @@ module Fog
             :server => server
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/ips.rb b/lib/fog/vcloud/models/compute/ips.rb
index b09c942..8633652 100644
--- a/lib/fog/vcloud/models/compute/ips.rb
+++ b/lib/fog/vcloud/models/compute/ips.rb
@@ -4,7 +4,6 @@ module Fog
   module Vcloud
     class Compute
       class Ips < Fog::Vcloud::Collection
-
         model Fog::Vcloud::Compute::Ip
 
         undef_method :create
@@ -26,7 +25,6 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/network.rb b/lib/fog/vcloud/models/compute/network.rb
index fe8d817..6b76b33 100644
--- a/lib/fog/vcloud/models/compute/network.rb
+++ b/lib/fog/vcloud/models/compute/network.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class Network < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
diff --git a/lib/fog/vcloud/models/compute/networks.rb b/lib/fog/vcloud/models/compute/networks.rb
index fba7766..4ed5e98 100644
--- a/lib/fog/vcloud/models/compute/networks.rb
+++ b/lib/fog/vcloud/models/compute/networks.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/network'
 module Fog
   module Vcloud
     class Compute
-
       class Networks < Fog::Vcloud::Collection
-
         undef_method :create
 
         model Fog::Vcloud::Compute::Network
@@ -23,7 +21,7 @@ module Fog
             data = service.get_organization(self.href).links.select{|l| l[:type] == network_type_id }
           elsif self.href =~ /\/vApp\//
             check_href!("Vapp")
-            data = [(service.get_vapp(self.href).network_configs||{})[:NetworkConfig]].flatten.compact.collect{|n| n[:Configuration][:ParentNetwork] unless n[:Configuration].nil? }.compact
+            data = [(service.get_vapp(self.href).network_configs||{})[:NetworkConfig]].flatten.compact.map{|n| n[:Configuration][:ParentNetwork] unless n[:Configuration].nil? }.compact
           end
           load([*data]) unless data.nil?
         end
diff --git a/lib/fog/vcloud/models/compute/organization.rb b/lib/fog/vcloud/models/compute/organization.rb
index 699ddb0..e8cf2fd 100644
--- a/lib/fog/vcloud/models/compute/organization.rb
+++ b/lib/fog/vcloud/models/compute/organization.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class Organization < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
@@ -36,7 +35,6 @@ module Fog
             new( :service => service,
                  :href => href )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/organizations.rb b/lib/fog/vcloud/models/compute/organizations.rb
index 939bab9..381f30b 100644
--- a/lib/fog/vcloud/models/compute/organizations.rb
+++ b/lib/fog/vcloud/models/compute/organizations.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/organization'
 module Fog
   module Vcloud
     class Compute
-
       class Organizations < Collection
-
         model Fog::Vcloud::Compute::Organization
 
         undef_method :create
diff --git a/lib/fog/vcloud/models/compute/server.rb b/lib/fog/vcloud/models/compute/server.rb
index 029384b..0c9a07e 100644
--- a/lib/fog/vcloud/models/compute/server.rb
+++ b/lib/fog/vcloud/models/compute/server.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Server < Fog::Vcloud::Model
-
         include Fog::Vcloud::Compute::Helpers::Status
 
         identity :href, :aliases => :Href
@@ -59,7 +58,7 @@ module Fog
 
         def ip_addresses
           load_unless_loaded!
-          [self.network_connections].flatten.collect{|n| n[:IpAddress] }
+          [self.network_connections].flatten.map{|n| n[:IpAddress] }
         end
 
         def ready?
@@ -100,6 +99,7 @@ module Fog
           attributes[:name] = new_name
           @changed = true
         end
+
         def password
           guest_customization[:AdminPassword]
         end
@@ -109,6 +109,7 @@ module Fog
           @changed = true
           @update_password = password
         end
+
         def cpus
           if cpu_mess
             { :count => cpu_mess[:"rasd:VirtualQuantity"].to_i,
@@ -137,14 +138,17 @@ module Fog
           @update_memory_value = amount
           amount
         end
+
         def network
           network_connections[:NetworkConnection] if network_connections
         end
+
         def network=(network_info)
           @changed = true
           @update_network = network_info
           network_info
         end
+
         def disks
           disk_mess.map do |dm|
             { :number => dm[:"rasd:AddressOnParent"].to_i, :size => dm[:"rasd:HostResource"][:vcloud_capacity].to_i, :resource => dm[:"rasd:HostResource"], :disk_data => dm }
@@ -271,7 +275,7 @@ module Fog
           sleep 2 # API lies. need to give it some time to be happy.
           service.delete_vapp(href).body[:status] == "running"
         end
-        alias :delete :destroy
+        alias_method :delete, :destroy
 
         private
 
@@ -297,14 +301,14 @@ module Fog
         def memory_mess
           load_unless_loaded!
           if virtual_hardware
-            virtual_hardware.detect { |item| item[:"rasd:ResourceType"] == "4" }
+            virtual_hardware.find { |item| item[:"rasd:ResourceType"] == "4" }
           end
         end
 
         def cpu_mess
           load_unless_loaded!
           if virtual_hardware
-            virtual_hardware.detect { |item| item[:"rasd:ResourceType"] == "3" }
+            virtual_hardware.find { |item| item[:"rasd:ResourceType"] == "3" }
           end
         end
 
diff --git a/lib/fog/vcloud/models/compute/servers.rb b/lib/fog/vcloud/models/compute/servers.rb
index b98570a..ffdb1d1 100644
--- a/lib/fog/vcloud/models/compute/servers.rb
+++ b/lib/fog/vcloud/models/compute/servers.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/server'
 module Fog
   module Vcloud
     class Compute
-
       class Servers < Fog::Vcloud::Collection
-
         undef_method :create
 
         model Fog::Vcloud::Compute::Server
@@ -45,7 +43,6 @@ module Fog
             :collection => Fog::Vcloud::Compute::Vapps.new(:service => service)
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/tags.rb b/lib/fog/vcloud/models/compute/tags.rb
index 7b209de..52968fc 100644
--- a/lib/fog/vcloud/models/compute/tags.rb
+++ b/lib/fog/vcloud/models/compute/tags.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/tag'
 module Fog
   module Vcloud
     class Compute
-
       class Tags < Fog::Vcloud::Collection
-
         undef_method :create
 
         model Fog::Vcloud::Compute::Tag
diff --git a/lib/fog/vcloud/models/compute/task.rb b/lib/fog/vcloud/models/compute/task.rb
index 2f8c1f6..9ee9a38 100644
--- a/lib/fog/vcloud/models/compute/task.rb
+++ b/lib/fog/vcloud/models/compute/task.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class Task < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
@@ -14,7 +13,6 @@ module Fog
         attribute :start_time, :aliases => :startTime, :type => :time
         attribute :end_time, :aliases => :endTime, :type => :time
         attribute :error, :aliases => :Error
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/tasks.rb b/lib/fog/vcloud/models/compute/tasks.rb
index 61ba10c..fc9b13a 100644
--- a/lib/fog/vcloud/models/compute/tasks.rb
+++ b/lib/fog/vcloud/models/compute/tasks.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/task'
 module Fog
   module Vcloud
     class Compute
-
       class Tasks < Fog::Vcloud::Collection
-
         model Fog::Vcloud::Compute::Task
 
         attribute :href, :aliases => :Href
@@ -23,7 +21,6 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/vapp.rb b/lib/fog/vcloud/models/compute/vapp.rb
index 30d40cc..3bb2ee3 100644
--- a/lib/fog/vcloud/models/compute/vapp.rb
+++ b/lib/fog/vcloud/models/compute/vapp.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Vapp < Fog::Vcloud::Model
-
         include Fog::Vcloud::Compute::Helpers::Status
 
         identity :href, :aliases => :Href
diff --git a/lib/fog/vcloud/models/compute/vapps.rb b/lib/fog/vcloud/models/compute/vapps.rb
index 0aeac91..bc1ca50 100644
--- a/lib/fog/vcloud/models/compute/vapps.rb
+++ b/lib/fog/vcloud/models/compute/vapps.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/vapp'
 module Fog
   module Vcloud
     class Compute
-
       class Vapps < Collection
-
         model Fog::Vcloud::Compute::Vapp
 
         undef_method :create
@@ -21,7 +19,6 @@ module Fog
         rescue Fog::Errors::NotFound
           nil
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/vdc.rb b/lib/fog/vcloud/models/compute/vdc.rb
index 59757b9..1ccf3f5 100644
--- a/lib/fog/vcloud/models/compute/vdc.rb
+++ b/lib/fog/vcloud/models/compute/vdc.rb
@@ -2,7 +2,6 @@ module Fog
   module Vcloud
     class Compute
       class Vdc < Fog::Vcloud::Model
-
         identity :href, :aliases => :Href
         attribute :links, :aliases => :Link, :type => :array
         ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
@@ -34,7 +33,6 @@ module Fog
                  :href => href
             )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/models/compute/vdcs.rb b/lib/fog/vcloud/models/compute/vdcs.rb
index fd0418a..cd891c7 100644
--- a/lib/fog/vcloud/models/compute/vdcs.rb
+++ b/lib/fog/vcloud/models/compute/vdcs.rb
@@ -3,9 +3,7 @@ require 'fog/vcloud/models/compute/vdc'
 module Fog
   module Vcloud
     class Compute
-
       class Vdcs < Collection
-
         model Fog::Vcloud::Compute::Vdc
 
         undef_method :create
diff --git a/lib/fog/vcloud/requests/compute/clone_vapp.rb b/lib/fog/vcloud/requests/compute/clone_vapp.rb
index ac80756..5cde07a 100644
--- a/lib/fog/vcloud/requests/compute/clone_vapp.rb
+++ b/lib/fog/vcloud/requests/compute/clone_vapp.rb
@@ -2,10 +2,9 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def validate_clone_vapp_options(options)
           valid_opts = [:name, :poweron]
-          unless valid_opts.all? { |opt| options.has_key?(opt) }
+          unless valid_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(valid_opts - options.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -19,7 +18,7 @@ module Fog
         end
 
         def clone_vapp(vdc_uri, vapp_uri, options = {})
-          unless options.has_key?(:poweron)
+          unless options.key?(:poweron)
             options[:poweron] = "false"
           end
 
diff --git a/lib/fog/vcloud/requests/compute/configure_metadata.rb b/lib/fog/vcloud/requests/compute/configure_metadata.rb
index f47de80..dc9e081 100644
--- a/lib/fog/vcloud/requests/compute/configure_metadata.rb
+++ b/lib/fog/vcloud/requests/compute/configure_metadata.rb
@@ -2,10 +2,9 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_metadata(opts= {})
           valid_opts = [:key, :value, :href]
-          unless valid_opts.all? { |opt| opts.has_key?(opt) }
+          unless valid_opts.all? { |opt| opts.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(valid_opts - opts.keys).map(&:inspect).join(", ")}")
           end
 
@@ -29,7 +28,6 @@ EOF
             :parse    => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/requests/compute/configure_network.rb b/lib/fog/vcloud/requests/compute/configure_network.rb
index 1ff1759..f7bee9e 100644
--- a/lib/fog/vcloud/requests/compute/configure_network.rb
+++ b/lib/fog/vcloud/requests/compute/configure_network.rb
@@ -2,10 +2,9 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def validate_network_data(network_data, configure=false)
           valid_opts = [:id, :href, :name, :address, :broadcast, :gateway]
-          unless valid_opts.all? { |opt| network_data.has_key?(opt) }
+          unless valid_opts.all? { |opt| network_data.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(valid_opts - network_data.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -36,7 +35,6 @@ module Fog
             builder.GatewayAddress(network_data[:gateway])
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/requests/compute/configure_network_ip.rb b/lib/fog/vcloud/requests/compute/configure_network_ip.rb
index 121d4fb..6a00874 100644
--- a/lib/fog/vcloud/requests/compute/configure_network_ip.rb
+++ b/lib/fog/vcloud/requests/compute/configure_network_ip.rb
@@ -6,7 +6,7 @@ module Fog
 
         def validate_network_ip_data(network_ip_data)
           valid_opts = [:id, :href, :name, :status, :server]
-          unless valid_opts.all? { |opt| network_ip_data.has_key?(opt) }
+          unless valid_opts.all? { |opt| network_ip_data.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(valid_opts - network_ip_data.keys).map(&:inspect).join(", ")}")
           end
         end
diff --git a/lib/fog/vcloud/requests/compute/configure_node.rb b/lib/fog/vcloud/requests/compute/configure_node.rb
index 90325bc..9257717 100644
--- a/lib/fog/vcloud/requests/compute/configure_node.rb
+++ b/lib/fog/vcloud/requests/compute/configure_node.rb
@@ -13,7 +13,6 @@ module Fog
             builder.Description(node_data[:description])
           }
         end
-
       end
 
       class Real
@@ -31,7 +30,6 @@ module Fog
             :parse    => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/requests/compute/configure_org_network.rb b/lib/fog/vcloud/requests/compute/configure_org_network.rb
index 133ccaa..cab6f21 100644
--- a/lib/fog/vcloud/requests/compute/configure_org_network.rb
+++ b/lib/fog/vcloud/requests/compute/configure_org_network.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def generate_outbound_rule()
           outbound_rule = <<EOF
             <ns0:FirewallRule>
@@ -23,6 +22,7 @@ module Fog
 EOF
         outbound_rule
         end
+
         def generate_tcp_rules(tcp_ports)
           firewall_rules = ""
           tcp_ports.each do |port|
@@ -70,7 +70,6 @@ EOF
         end
 
         def generate_configure_org_network_request(vapp_id, vapp_network, vapp_network_uri, org_network, org_network_uri, enable_firewall=false, portmap=nil)
-
           firewall_body = ""
           if not enable_firewall
             firewall_body = "<ns0:IsEnabled>false</ns0:IsEnabled>"
@@ -138,4 +137,3 @@ EOF
     end
   end
 end
-
diff --git a/lib/fog/vcloud/requests/compute/configure_vapp.rb b/lib/fog/vcloud/requests/compute/configure_vapp.rb
index 748d5ba..0f754c1 100644
--- a/lib/fog/vcloud/requests/compute/configure_vapp.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vapp.rb
@@ -6,7 +6,7 @@ module Fog
 
         def validate_vapp_data(vapp_data)
           valid_opts = [:name, :cpus, :memory, :disks]
-          unless valid_opts.all? { |opt| vapp_data.has_key?(opt) }
+          unless valid_opts.all? { |opt| vapp_data.key?(opt) }
             raise ArgumentError.new("Required Vapp data missing: #{(valid_opts - vapp_data.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -46,7 +46,7 @@ module Fog
             add_disk_numbers.each do |number|
               new_disk = real_disks.first.dup
               new_disk.at('.//xmlns:AddressOnParent', rasd_xmlns).content = -1
-              new_disk.at('.//xmlns:VirtualQuantity', rasd_xmlns).content = vapp_data[:disks].detect { |disk| disk[:number].to_s == number.to_s }[:size]
+              new_disk.at('.//xmlns:VirtualQuantity', rasd_xmlns).content = vapp_data[:disks].find { |disk| disk[:number].to_s == number.to_s }[:size]
               real_disks.first.parent << new_disk
             end
           end
@@ -105,7 +105,6 @@ module Fog
             :parse    => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm.rb b/lib/fog/vcloud/requests/compute/configure_vm.rb
index 5154647..db2d0b7 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm.rb
@@ -6,7 +6,7 @@ module Fog
 
         def validate_vm_data(vm_data)
           valid_opts = [:name, :cpus, :memory, :disks]
-          unless valid_opts.all? { |opt| vm_data.has_key?(opt) }
+          unless valid_opts.all? { |opt| vm_data.key?(opt) }
             raise ArgumentError.new("Required vm data missing: #{(valid_opts - vm_data.keys).map(&:inspect).join(", ")}")
           end
         end
@@ -62,8 +62,6 @@ module Fog
               }
             end
 
-
-
              # builder.Item(:xmlns => 'http://schemas.dmtf.org/ovf/envelope/1') {
              # #builder.Item {
              #   builder.InstanceID(1, :xmlns => 'http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData')
@@ -102,7 +100,6 @@ module Fog
             :parse    => true
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_cpus.rb b/lib/fog/vcloud/requests/compute/configure_vm_cpus.rb
index e755b37..7ea89dd 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_cpus.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_cpus.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_vm_cpus(vm_data)
           edit_uri = vm_data.select {|k,v| k == :Link && v[:rel] == 'edit'}
           edit_uri = edit_uri.kind_of?(Array) ? edit_uri.flatten[1][:href] : edit_uri[:Link][:href]
@@ -30,9 +29,7 @@ EOF
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_customization_script.rb b/lib/fog/vcloud/requests/compute/configure_vm_customization_script.rb
index 021e0d3..4b68612 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_customization_script.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_customization_script.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_vm_customization_script(vmdata)
           edit_uri = vmdata[:href]
           body = <<EOF
@@ -25,9 +24,7 @@ EOF
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_disks.rb b/lib/fog/vcloud/requests/compute/configure_vm_disks.rb
index b61713b..1d733b1 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_disks.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_disks.rb
@@ -28,15 +28,10 @@
 #     </Item>
 # </RasdItemsList>
 
-
-
-
-
 module Fog
   module Vcloud
     class Compute
       class Real
-
         def generate_configure_vm_disks_request(href, disk_data)
           xmlns = {
             "xmlns:rasd" => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData",
@@ -66,7 +61,7 @@ module Fog
             add_disk_numbers.each do |number|
               new_disk = real_disks.first.dup
               new_disk.at('.//rasd:AddressOnParent', xmlns).content = number.to_i #-1
-              new_disk.at('.//rasd:HostResource', xmlns)["vcloud:capacity"] = disk_data.detect { |disk| disk[:'rasd:AddressOnParent'].to_s == number.to_s }[:'rasd:HostResource'][:vcloud_capacity].to_s
+              new_disk.at('.//rasd:HostResource', xmlns)["vcloud:capacity"] = disk_data.find { |disk| disk[:'rasd:AddressOnParent'].to_s == number.to_s }[:'rasd:HostResource'][:vcloud_capacity].to_s
               # nokogiri bug? shouldn't need to add this explicitly.
               new_disk.at('.//rasd:HostResource', xmlns)["xmlns:vcloud"] = xmlns['xmlns']
               new_disk.at('.//rasd:InstanceID', xmlns).content = (2000 + number.to_i).to_s
@@ -92,9 +87,7 @@ module Fog
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_memory.rb b/lib/fog/vcloud/requests/compute/configure_vm_memory.rb
index ebd2411..c75f536 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_memory.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_memory.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_vm_memory(vm_data)
           edit_uri = vm_data.select {|k,v| k == :Link && v[:rel] == 'edit'}
           edit_uri = edit_uri.kind_of?(Array) ? edit_uri.flatten[1][:href] : edit_uri[:Link][:href]
@@ -31,9 +30,7 @@ EOF
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_name_description.rb b/lib/fog/vcloud/requests/compute/configure_vm_name_description.rb
index 898d71e..5665efa 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_name_description.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_name_description.rb
@@ -3,9 +3,7 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_vm_name_description(edit_href, name, description)
-
           body = <<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <VApp xmlns="http://www.vmware.com/vcloud/v1" name="#{name}" type="application/vnd.vmware.vcloud.vApp+xml">
@@ -22,9 +20,7 @@ EOF
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_network.rb b/lib/fog/vcloud/requests/compute/configure_vm_network.rb
index 5d18ddb..e1f1158 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_network.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_network.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_vm_network(network_info)
           edit_uri = network_info.select {|k,v| k == :Link && v[:rel] == 'edit'}
           edit_uri = edit_uri.kind_of?(Array) ? edit_uri.flatten[1][:href] : edit_uri[:Link][:href]
@@ -28,9 +27,7 @@ EOF
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/configure_vm_password.rb b/lib/fog/vcloud/requests/compute/configure_vm_password.rb
index 426e851..d17d313 100644
--- a/lib/fog/vcloud/requests/compute/configure_vm_password.rb
+++ b/lib/fog/vcloud/requests/compute/configure_vm_password.rb
@@ -3,7 +3,6 @@ module Fog
   module Vcloud
     class Compute
       class Real
-
         def configure_vm_password(vmdata)
           edit_uri = vmdata[:href]
           body = <<EOF
@@ -31,9 +30,7 @@ EOF
             :parse    => true
           )
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/delete_metadata.rb b/lib/fog/vcloud/requests/compute/delete_metadata.rb
index dfea3a5..ccbcff8 100644
--- a/lib/fog/vcloud/requests/compute/delete_metadata.rb
+++ b/lib/fog/vcloud/requests/compute/delete_metadata.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :delete_metadata, 202, "DELETE"
       end
diff --git a/lib/fog/vcloud/requests/compute/delete_node.rb b/lib/fog/vcloud/requests/compute/delete_node.rb
index 59dc11f..abd3ef0 100644
--- a/lib/fog/vcloud/requests/compute/delete_node.rb
+++ b/lib/fog/vcloud/requests/compute/delete_node.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :delete_node, 200, 'DELETE', {}, ""
       end
diff --git a/lib/fog/vcloud/requests/compute/delete_vapp.rb b/lib/fog/vcloud/requests/compute/delete_vapp.rb
index 4d008b8..cc10399 100644
--- a/lib/fog/vcloud/requests/compute/delete_vapp.rb
+++ b/lib/fog/vcloud/requests/compute/delete_vapp.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :delete_vapp, 202, "DELETE"
       end
diff --git a/lib/fog/vcloud/requests/compute/get_catalog.rb b/lib/fog/vcloud/requests/compute/get_catalog.rb
index d72c078..84f2a2f 100644
--- a/lib/fog/vcloud/requests/compute/get_catalog.rb
+++ b/lib/fog/vcloud/requests/compute/get_catalog.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_catalog
       end
diff --git a/lib/fog/vcloud/requests/compute/get_catalog_item.rb b/lib/fog/vcloud/requests/compute/get_catalog_item.rb
index 827c2f9..21d74a0 100644
--- a/lib/fog/vcloud/requests/compute/get_catalog_item.rb
+++ b/lib/fog/vcloud/requests/compute/get_catalog_item.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_catalog_item
       end
diff --git a/lib/fog/vcloud/requests/compute/get_customization_options.rb b/lib/fog/vcloud/requests/compute/get_customization_options.rb
index 4b4e1e2..420fa64 100644
--- a/lib/fog/vcloud/requests/compute/get_customization_options.rb
+++ b/lib/fog/vcloud/requests/compute/get_customization_options.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_customization_options
       end
diff --git a/lib/fog/vcloud/requests/compute/get_metadata.rb b/lib/fog/vcloud/requests/compute/get_metadata.rb
index 5f585d9..9ca2fed 100644
--- a/lib/fog/vcloud/requests/compute/get_metadata.rb
+++ b/lib/fog/vcloud/requests/compute/get_metadata.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_metadata
       end
diff --git a/lib/fog/vcloud/requests/compute/get_network.rb b/lib/fog/vcloud/requests/compute/get_network.rb
index 7a967fc..fbd2d29 100644
--- a/lib/fog/vcloud/requests/compute/get_network.rb
+++ b/lib/fog/vcloud/requests/compute/get_network.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_network
       end
diff --git a/lib/fog/vcloud/requests/compute/get_network_extensions.rb b/lib/fog/vcloud/requests/compute/get_network_extensions.rb
index 1660ae2..16a153c 100644
--- a/lib/fog/vcloud/requests/compute/get_network_extensions.rb
+++ b/lib/fog/vcloud/requests/compute/get_network_extensions.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_network_extensions
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_network_ip.rb b/lib/fog/vcloud/requests/compute/get_network_ip.rb
index f2b5fdc..929ac3c 100644
--- a/lib/fog/vcloud/requests/compute/get_network_ip.rb
+++ b/lib/fog/vcloud/requests/compute/get_network_ip.rb
@@ -5,11 +5,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_network_ip
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_network_ips.rb b/lib/fog/vcloud/requests/compute/get_network_ips.rb
index a569d93..11f91ac 100644
--- a/lib/fog/vcloud/requests/compute/get_network_ips.rb
+++ b/lib/fog/vcloud/requests/compute/get_network_ips.rb
@@ -5,11 +5,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_network_ips
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_organization.rb b/lib/fog/vcloud/requests/compute/get_organization.rb
index 8d5c2e3..1985cc8 100644
--- a/lib/fog/vcloud/requests/compute/get_organization.rb
+++ b/lib/fog/vcloud/requests/compute/get_organization.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_organization
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_server.rb b/lib/fog/vcloud/requests/compute/get_server.rb
index 633684f..5cc5f77 100644
--- a/lib/fog/vcloud/requests/compute/get_server.rb
+++ b/lib/fog/vcloud/requests/compute/get_server.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_server
       end
diff --git a/lib/fog/vcloud/requests/compute/get_task.rb b/lib/fog/vcloud/requests/compute/get_task.rb
index 2a6b8b8..f58b6e9 100644
--- a/lib/fog/vcloud/requests/compute/get_task.rb
+++ b/lib/fog/vcloud/requests/compute/get_task.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_task
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_task_list.rb b/lib/fog/vcloud/requests/compute/get_task_list.rb
index 9dbb5d3..a5e9521 100644
--- a/lib/fog/vcloud/requests/compute/get_task_list.rb
+++ b/lib/fog/vcloud/requests/compute/get_task_list.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_task_list
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_vapp.rb b/lib/fog/vcloud/requests/compute/get_vapp.rb
index 5b87374..dd460bd 100644
--- a/lib/fog/vcloud/requests/compute/get_vapp.rb
+++ b/lib/fog/vcloud/requests/compute/get_vapp.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_vapp
       end
diff --git a/lib/fog/vcloud/requests/compute/get_vapp_template.rb b/lib/fog/vcloud/requests/compute/get_vapp_template.rb
index 72f5560..2865bed 100644
--- a/lib/fog/vcloud/requests/compute/get_vapp_template.rb
+++ b/lib/fog/vcloud/requests/compute/get_vapp_template.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_vapp_template
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/get_vdc.rb b/lib/fog/vcloud/requests/compute/get_vdc.rb
index 2c26be7..49999de 100644
--- a/lib/fog/vcloud/requests/compute/get_vdc.rb
+++ b/lib/fog/vcloud/requests/compute/get_vdc.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :get_vdc
       end
diff --git a/lib/fog/vcloud/requests/compute/get_vm_disks.rb b/lib/fog/vcloud/requests/compute/get_vm_disks.rb
index 9b56f18..49cc489 100644
--- a/lib/fog/vcloud/requests/compute/get_vm_disks.rb
+++ b/lib/fog/vcloud/requests/compute/get_vm_disks.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         def get_vm_disks(href)
           request(
diff --git a/lib/fog/vcloud/requests/compute/get_vm_memory.rb b/lib/fog/vcloud/requests/compute/get_vm_memory.rb
index 374fbe7..f69c05c 100644
--- a/lib/fog/vcloud/requests/compute/get_vm_memory.rb
+++ b/lib/fog/vcloud/requests/compute/get_vm_memory.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         def get_vm_memory(href, parse = true)
           request(
diff --git a/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb b/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb
index 86de2ec..b2a71e0 100644
--- a/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb
+++ b/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb
@@ -7,7 +7,7 @@ module Fog
         def validate_instantiate_vapp_template_options options
           # :network_uri removed, if not specified will use template network config.
           valid_opts = [:catalog_item_uri, :name, :vdc_uri]
-          unless valid_opts.all? { |opt| options.has_key?(opt) }
+          unless valid_opts.all? { |opt| options.key?(opt) }
             raise ArgumentError.new("Required data missing: #{(valid_opts - options.keys).map(&:inspect).join(", ")}")
           end
 
@@ -19,7 +19,7 @@ module Fog
           catalog_item[:Link] = [ catalog_item[:Link] ] if catalog_item[:Link].is_a?(Hash)
 
           options[:template_uri] = begin
-             catalog_item[:Entity].detect { |entity| entity[:type] == "application/vnd.vmware.vcloud.vAppTemplate+xml" }[:href]
+             catalog_item[:Entity].find { |entity| entity[:type] == "application/vnd.vmware.vcloud.vAppTemplate+xml" }[:href]
           rescue
             raise RuntimeError.new("Unable to locate template uri for #{catalog_item_uri}")
           end
diff --git a/lib/fog/vcloud/requests/compute/login.rb b/lib/fog/vcloud/requests/compute/login.rb
index da7ebdc..b7c3bdb 100644
--- a/lib/fog/vcloud/requests/compute/login.rb
+++ b/lib/fog/vcloud/requests/compute/login.rb
@@ -1,10 +1,7 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
-
-
         def login
           headers = { 'Authorization' => authorization_header }
           uri = if version == '1.0'
@@ -20,7 +17,6 @@ module Fog
             :uri      => uri
           })
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud/requests/compute/power_off.rb b/lib/fog/vcloud/requests/compute/power_off.rb
index a742dcc..fb85da2 100644
--- a/lib/fog/vcloud/requests/compute/power_off.rb
+++ b/lib/fog/vcloud/requests/compute/power_off.rb
@@ -1,7 +1,6 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :power_off, 202, 'POST'
       end
diff --git a/lib/fog/vcloud/requests/compute/power_on.rb b/lib/fog/vcloud/requests/compute/power_on.rb
index 3b76deb..aefeeed 100644
--- a/lib/fog/vcloud/requests/compute/power_on.rb
+++ b/lib/fog/vcloud/requests/compute/power_on.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :power_on, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/power_reset.rb b/lib/fog/vcloud/requests/compute/power_reset.rb
index 78942a9..960f319 100644
--- a/lib/fog/vcloud/requests/compute/power_reset.rb
+++ b/lib/fog/vcloud/requests/compute/power_reset.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :power_reset, 202, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud/requests/compute/power_shutdown.rb b/lib/fog/vcloud/requests/compute/power_shutdown.rb
index 0bb1e2c..197fae5 100644
--- a/lib/fog/vcloud/requests/compute/power_shutdown.rb
+++ b/lib/fog/vcloud/requests/compute/power_shutdown.rb
@@ -1,11 +1,9 @@
 module Fog
   module Vcloud
     class Compute
-
       class Real
         basic_request :power_shutdown, 204, 'POST'
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud_director/README.md b/lib/fog/vcloud_director/README.md
index 892ec75..0d314c2 100644
--- a/lib/fog/vcloud_director/README.md
+++ b/lib/fog/vcloud_director/README.md
@@ -953,3 +953,4 @@ template.instantiate('webserver', {
   network_id: "d5f47bbf-de27-4cf5-aaaa-56772f2ccd17"
 }
 ```
+
diff --git a/lib/fog/vcloud_director/compute.rb b/lib/fog/vcloud_director/compute.rb
index 24e4183..0eac32a 100644
--- a/lib/fog/vcloud_director/compute.rb
+++ b/lib/fog/vcloud_director/compute.rb
@@ -1,4 +1,5 @@
 require 'fog/vcloud_director/core'
+require 'fog/vcloud_director/query'
 
 class VcloudDirectorParser < Fog::Parsers::Base
   def extract_attributes(attributes_xml)
@@ -24,7 +25,6 @@ end
 module Fog
   module Compute
     class VcloudDirector < Fog::Service
-
       module Defaults
         PATH        = '/api'
         PORT        = 443
@@ -55,6 +55,8 @@ module Fog
       collection :organizations
       model      :catalog_item
       collection :catalog_items
+      model      :custom_field
+      collection :custom_fields
       model      :vdc
       collection :vdcs
       model      :vapp
@@ -204,6 +206,7 @@ module Fog
       request :post_configure_edge_gateway_services
       request :post_consolidate_vm_vapp
       request :post_consolidate_vm_vapp_template
+      request :post_create_catalog_item
       request :post_create_org_vdc_network
       request :post_deploy_vapp
       request :post_detach_disk
@@ -245,7 +248,9 @@ module Fog
       request :put_media_metadata_item_metadata
       request :put_memory
       request :put_metadata_value # deprecated
+      request :put_network
       request :put_network_connection_system_section_vapp
+      request :put_product_sections
       request :put_vapp_metadata_item_metadata
       request :put_vapp_name_and_description
       request :put_vapp_template_metadata_item_metadata
@@ -305,7 +310,7 @@ module Fog
         end
 
         def get_by_name(item_name)
-          item_found = item_list.detect {|item| item[:name] == item_name}
+          item_found = item_list.find {|item| item[:name] == item_name}
           return nil unless item_found
           get(item_found[:id])
         end
@@ -365,7 +370,7 @@ module Fog
         def request(params)
           begin
             do_request(params)
-          rescue Excon::Errors::SocketError::EOFError
+          rescue EOFError
             # This error can occur if Vcloud receives a request from a network
             # it deems to be unauthorized; no HTTP response is sent, but the
             # connection is sent a signal to terminate early.
@@ -457,13 +462,18 @@ module Fog
         def login
           if @vcloud_token = ENV['FOG_VCLOUD_TOKEN']
             response = get_current_session
+            session_org = response.body[:org]
+            session_user = response.body[:user]
+
+            check_session_matches_credentials(session_org, session_user)
           else
             response = post_login_session
-            x_vcloud_authorization = response.headers.keys.detect do |key|
+            x_vcloud_authorization = response.headers.keys.find do |key|
               key.downcase == 'x-vcloud-authorization'
             end
             @vcloud_token = response.headers[x_vcloud_authorization]
           end
+
           @org_name = response.body[:org]
           @user_name = response.body[:user]
         end
@@ -475,6 +485,20 @@ module Fog
           @org_name = nil
         end
 
+        def check_session_matches_credentials(session_org, session_user)
+          fog_credential_org = @vcloud_director_username.split('@').last
+          fog_credential_user = @vcloud_director_username.split('@')[0...-1].join
+
+          if session_org != fog_credential_org
+            raise Fog::Errors::Error.new "FOG_CREDENTIAL specified is for vCloud organisation '#{fog_credential_org}' but " +
+              "your current session is for '#{session_org}'. You should generate a new FOG_VCLOUD_TOKEN."
+          end
+
+          if session_user != fog_credential_user
+            raise Fog::Errors::Error.new "FOG_CREDENTIAL specified is for user '#{fog_credential_user}' but " +
+              "your current session is for '#{session_user}'. You should generate a new FOG_VCLOUD_TOKEN."
+          end
+        end
       end
 
       class Mock
@@ -489,17 +513,24 @@ module Fog
             uplink_network_uuid  = uuid
             isolated_vdc1_network_uuid = uuid
             isolated_vdc2_network_uuid = uuid
+            vapp1_id = "vapp-#{uuid}"
+            vapp2_id = "vapp-#{uuid}"
+            vapp1vm1_id = "vm-#{uuid}"
+            vapp2vm1_id = "vm-#{uuid}"
+            vapp2vm2_id = "vm-#{uuid}"
+            catalog_uuid = uuid
 
             hash[key] = {
               :catalogs => {
-                uuid => {
+                catalog_uuid => {
                   :name => 'Default Catalog'
                 }
               },
               :catalog_items => {
                 uuid => {
-                  :type => 'vAppTemplate',
-                  :name => 'vAppTemplate 1'
+                  :type    => 'vAppTemplate',
+                  :name    => 'vAppTemplate 1',
+                  :catalog => catalog_uuid,
                 }
               },
               :disks => {},
@@ -547,7 +578,7 @@ module Fog
                   }],
                   :IsInherited => false,
                   :Netmask => '255.255.255.0',
-                  :name => 'Default Network',
+                  :name => 'vDC1 Default Network',
                   :SubnetParticipation => {
                       :Gateway => "192.168.1.0",
                       :Netmask => "255.255.0.0",
@@ -645,6 +676,26 @@ module Fog
                 :uuid => uuid
               },
               :tasks => {},
+
+              :vapps => {
+                vapp1_id => {
+                  :name => 'mock-vapp-1',
+                  :vdc_id => vdc1_uuid,
+                  :description => "Mock vApp 1",
+                  :networks => [
+                    { :parent_id => default_network_uuid, },
+                  ],
+                },
+                vapp2_id => {
+                  :name => 'mock-vapp-2',
+                  :vdc_id => vdc2_uuid,
+                  :description => "Mock vApp 2",
+                  :networks => [
+                    { :parent_id => default_network_uuid },
+                  ]
+                },
+              },
+
               :vdc_storage_classes => {
                 uuid => {
                   :default => true,
@@ -655,6 +706,7 @@ module Fog
                   :vdc => vdc1_uuid,
                 }
               },
+
               :vdcs => {
                 vdc1_uuid => {
                   :description => 'vDC1 for mocking',
@@ -664,7 +716,44 @@ module Fog
                   :description => 'vDC2 for mocking',
                   :name => 'MockVDC 2'
                 },
-              }
+              },
+
+              :vms => {
+                vapp1vm1_id => {
+                  :name => 'mock-vm-1-1',
+                  :parent_vapp => vapp1_id,
+                  :nics => [
+                    {
+                      :network_name => 'Default Network',
+                      :mac_address => "00:50:56:aa:bb:01",
+                      :ip_address => "192.168.1.33",
+                    },
+                  ],
+                },
+                vapp2vm1_id => {
+                  :name => 'mock-vm-2-1',
+                  :parent_vapp => vapp2_id,
+                  :nics => [
+                    {
+                      :network_name => 'Default Network',
+                      :mac_address => "00:50:56:aa:bb:02",
+                      :ip_address => "192.168.1.34",
+                    },
+                  ],
+                },
+                vapp2vm2_id => {
+                  :name => 'mock-vm-2-2',
+                  :parent_vapp => vapp2_id,
+                  :nics => [
+                    {
+                      :network_name => 'Default Network',
+                      :mac_address => "00:50:56:aa:bb:03",
+                      :ip_address => "192.168.1.35",
+                    },
+                  ],
+                },
+              },
+
             }
           end[@vcloud_director_username]
         end
@@ -735,6 +824,7 @@ module Fog
             :progress => 1,
             :service_namespace => 'com.vmware.vcloud',
             :start_time => now,
+            :end_time => now + 86400,
             :status => 'running',
           }.merge(options).merge(
             :operation => operation,
@@ -790,7 +880,6 @@ module Fog
         def xsi_schema_location
           "http://www.vmware.com/vcloud/v1.5 http://#{@host}#{@path}/v1.5/schema/master.xsd"
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/core.rb b/lib/fog/vcloud_director/core.rb
index 6315e7c..c0c0a7b 100644
--- a/lib/fog/vcloud_director/core.rb
+++ b/lib/fog/vcloud_director/core.rb
@@ -24,7 +24,7 @@ module Fog
           if error.response
             status_code = error.response.status
             unless error.response.body.empty?
-              _, media_type = error.response.headers.detect {|k,v| k.downcase == 'content-type'}
+              _, media_type = error.response.headers.find {|k,v| k.downcase == 'content-type'}
               if media_type =~ /vnd\.vmware\.vcloud\.error\+xml/i
                 begin
                   document = Fog::ToHashDocument.new
diff --git a/lib/fog/vcloud_director/generators/compute/disks.rb b/lib/fog/vcloud_director/generators/compute/disks.rb
index aac2083..4b375e2 100644
--- a/lib/fog/vcloud_director/generators/compute/disks.rb
+++ b/lib/fog/vcloud_director/generators/compute/disks.rb
@@ -173,7 +173,7 @@ module Fog
              names = hard_disks.map{|item| item[:name] }
              only_numbers = names.map{|b| b.scan(/\d+/).first.to_i} # extract numbers
              last_number = only_numbers.sort.last # get the last number
-             hard_disks.detect{|hard_disk| hard_disk[:name] =~ /#{last_number}$/  }
+             hard_disks.find{|hard_disk| hard_disk[:name] =~ /#{last_number}$/  }
           end
 
           def increase_hard_disk_name(hard_disk_name)
diff --git a/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb b/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb
index effa0a6..4c51cdd 100644
--- a/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb
+++ b/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb
@@ -13,12 +13,74 @@ module Fog
                 build_firewall_service(xml)
                 build_nat_service(xml)
                 build_load_balancer_service(xml)
+                build_vpn(xml)
+                build_dhcp(xml)
+                build_static_routing_service(xml)
               }
             end.to_xml
           end
 
           private
 
+          def build_dhcp(xml)
+            dhcp_config = @configuration[:GatewayDhcpService]
+            return unless dhcp_config
+
+            xml.GatewayDhcpService {
+              xml.IsEnabled dhcp_config[:IsEnabled] if dhcp_config.key?(:IsEnabled)
+              dhcp_config[:pools].each do |pool|
+                xml.Pool {
+                  xml.IsEnabled pool[:IsEnabled]
+                  xml.Network pool[:Network]
+                  xml.DefaultLeaseTime pool[:DefaultLeaseTime]
+                  xml.MaxLeaseTime pool[:MaxLeaseTime]
+                  xml.LowIpAddress pool[:LowIpAddress]
+                  xml.HighIpAddress pool[:HighIpAddress]
+                }
+              end
+            }
+          end
+
+          def build_vpn(xml)
+            vpn_config = @configuration[:GatewayIpsecVpnService]
+            return unless vpn_config
+
+            xml.GatewayIpsecVpnService {
+              xml.IsEnabled vpn_config[:IsEnabled] if vpn_config.key?(:IsEnabled)
+              tunnel_config = vpn_config[:Tunnel]
+              xml.Tunnel {
+                xml.Name tunnel_config[:Name]
+                xml.Description tunnel_config[:Description]
+                xml.IpsecVpnLocalPeer {
+                  xml.Id tunnel_config[:IpsecVpnLocalPeerId]
+                  xml.Name tunnel_config[:IpsecVpnLocalPeerName]
+                }
+                xml.PeerIpAddress tunnel_config[:PeerIpAddress]
+                xml.PeerId tunnel_config[:PeerId]
+                xml.LocalIpAddress tunnel_config[:LocalIpAddress]
+                xml.LocalId tunnel_config[:LocalId]            
+                tunnel_config[:LocalSubnet].each do |subnet|
+                  xml.LocalSubnet {
+                    xml.Name subnet[:Name]
+                    xml.Gateway subnet[:Gateway]
+                    xml.Netmask subnet[:Netmask]
+                  }
+                end
+                peer_subnet_config = tunnel_config[:PeerSubnet]
+                xml.PeerSubnet {
+                  xml.Name peer_subnet_config[:Name]
+                  xml.Gateway peer_subnet_config[:Gateway]
+                  xml.Netmask peer_subnet_config[:Netmask]
+                }
+                xml.SharedSecret tunnel_config[:SharedSecret]
+                xml.SharedSecretEncrypted tunnel_config[:SharedSecretEncrypted] if tunnel_config.key?(:SharedSecretEncrypted)
+                xml.EncryptionProtocol tunnel_config[:EncryptionProtocol]
+                xml.Mtu tunnel_config[:Mtu]
+                xml.IsEnabled tunnel_config[:IsEnabled]
+              }
+            }
+          end
+
           def build_load_balancer_service(xml)
             lb_config = @configuration[:LoadBalancerService]
             return unless lb_config
@@ -116,6 +178,27 @@ module Fog
             }
           end
 
+          def build_static_routing_service(xml)
+            routing_config = @configuration[:StaticRoutingService]
+            return unless routing_config
+
+            xml.StaticRoutingService {
+              xml.IsEnabled routing_config[:IsEnabled]
+              routing_config[:StaticRoute].each do |rule|
+                xml.StaticRoute{
+                  xml.Name rule[:Name]
+                  xml.Network rule[:Network]
+                  xml.NextHopIp rule[:NextHopIp]
+                  xml.GatewayInterface(
+                    :type => rule[:GatewayInterface][:type],
+                    :name => rule[:GatewayInterface][:name],
+                    :href => rule[:GatewayInterface][:href]
+                  )
+                }
+              end
+            }
+          end
+
           def build_firewall_service(xml)
             firewall_config = @configuration[:FirewallService]
             return unless firewall_config
@@ -151,7 +234,6 @@ module Fog
               end
             }
           end
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb b/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb
index 9e3017d..3de7eb0 100644
--- a/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb
+++ b/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb
@@ -2,7 +2,6 @@ module Fog
   module Generators
     module Compute
       module VcloudDirector
-
         # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/types/OrgVdcNetworkType.html
         class OrgVdcNetwork
           attr_reader :options
@@ -12,7 +11,6 @@ module Fog
           end
 
           def generate_xml
-
             body = Nokogiri::XML::Builder.new do
               attrs = {
                 :xmlns => 'http://www.vmware.com/vcloud/v1.5',
@@ -83,7 +81,6 @@ module Fog
               }
             end.to_xml
           end
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/generators/compute/vapp.rb b/lib/fog/vcloud_director/generators/compute/vapp.rb
index 7dad183..061ab75 100644
--- a/lib/fog/vcloud_director/generators/compute/vapp.rb
+++ b/lib/fog/vcloud_director/generators/compute/vapp.rb
@@ -2,7 +2,6 @@ module Fog
   module Generators
     module Compute
       module VcloudDirector
-
         # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/types/VAppType.html
         class Vapp
           attr_reader :name, :options
@@ -22,7 +21,6 @@ module Fog
               }
             end.to_xml
           end
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/generators/compute/vm.rb b/lib/fog/vcloud_director/generators/compute/vm.rb
index 38d5aee..a84ee28 100644
--- a/lib/fog/vcloud_director/generators/compute/vm.rb
+++ b/lib/fog/vcloud_director/generators/compute/vm.rb
@@ -2,7 +2,6 @@ module Fog
   module Generators
     module Compute
       module VcloudDirector
-
         # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/types/VmType.html
         class Vm
           attr_reader :attrs
diff --git a/lib/fog/vcloud_director/models/compute/catalog.rb b/lib/fog/vcloud_director/models/compute/catalog.rb
index 9c5b57f..673c3ed 100644
--- a/lib/fog/vcloud_director/models/compute/catalog.rb
+++ b/lib/fog/vcloud_director/models/compute/catalog.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Catalog < Model
-
         identity  :id
 
         attribute :name
@@ -18,7 +16,6 @@ module Fog
           requires :id
           service.catalog_items(:catalog => self)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/catalog_item.rb b/lib/fog/vcloud_director/models/compute/catalog_item.rb
index b99be16..3e222ae 100644
--- a/lib/fog/vcloud_director/models/compute/catalog_item.rb
+++ b/lib/fog/vcloud_director/models/compute/catalog_item.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class CatalogItem < Model
-
         identity  :id
 
         attribute :name
@@ -19,7 +17,6 @@ module Fog
           service.process_task(response.body[:Tasks][:Task])
           response.body[:href].split('/').last # returns the vapp_id if it was instantiated successfully .
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/catalog_items.rb b/lib/fog/vcloud_director/models/compute/catalog_items.rb
index 2ed850b..06351f5 100644
--- a/lib/fog/vcloud_director/models/compute/catalog_items.rb
+++ b/lib/fog/vcloud_director/models/compute/catalog_items.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/catalog_item'
 module Fog
   module Compute
     class VcloudDirector
-
       class CatalogItems < Collection
         model Fog::Compute::VcloudDirector::CatalogItem
 
diff --git a/lib/fog/vcloud_director/models/compute/catalogs.rb b/lib/fog/vcloud_director/models/compute/catalogs.rb
index 7fe07c5..d632554 100644
--- a/lib/fog/vcloud_director/models/compute/catalogs.rb
+++ b/lib/fog/vcloud_director/models/compute/catalogs.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/catalog'
 module Fog
   module Compute
     class VcloudDirector
-
       class Catalogs < Collection
         model Fog::Compute::VcloudDirector::Catalog
 
@@ -25,7 +24,6 @@ module Fog
           items.each{|item| service.add_id_from_href!(item) }
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/custom_field.rb b/lib/fog/vcloud_director/models/compute/custom_field.rb
new file mode 100644
index 0000000..c27cab0
--- /dev/null
+++ b/lib/fog/vcloud_director/models/compute/custom_field.rb
@@ -0,0 +1,18 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class VcloudDirector
+
+      class CustomField < Model
+
+        identity  :id
+        attribute :value
+        attribute :type
+        attribute :password
+        attribute :user_configurable
+
+      end
+    end
+  end
+end
diff --git a/lib/fog/vcloud_director/models/compute/custom_fields.rb b/lib/fog/vcloud_director/models/compute/custom_fields.rb
new file mode 100644
index 0000000..d421c6c
--- /dev/null
+++ b/lib/fog/vcloud_director/models/compute/custom_fields.rb
@@ -0,0 +1,67 @@
+require 'fog/core/collection'
+require 'fog/vcloud_director/models/compute/custom_field'
+
+module Fog
+  module Compute
+    class VcloudDirector
+
+      class CustomFields < Collection
+        model Fog::Compute::VcloudDirector::CustomField
+
+        attribute :vapp
+
+        def get_by_id(item_id)
+          item_list.detect{|i| i[:id] == item_id}
+        end
+
+        def [](key)
+          get key.to_s
+        end
+
+        def set(key, value, opts={:type => 'string', :password => 'false', :user_configurable => 'true'})
+          new_items = item_list.each.reject{|item| item[:id] == key}
+          new_items << {
+            :id                => key,
+            :value             => value,
+            :type              => opts[:type],
+            :password          => opts[:password],
+            :user_configurable => opts[:user_configurable]
+          }
+          response = service.put_product_sections(vapp.id, new_items)
+          service.process_task(response.body)
+        end
+
+        def []=(key,value)
+          set(key,value)
+        end
+
+        def delete(item_id)
+          id = item_id.to_s
+          new_items = item_list.each.reject{|item| item[:id] == id}
+          response = service.put_product_sections(vapp.id, new_items)
+          service.process_task(response.body)
+        end
+
+        def item_list
+          return @items if @items
+
+          resp = service.get_product_sections_vapp(vapp.id).body
+
+          collection = resp["ovf:ProductSection".to_sym]["ovf:Property".to_sym] rescue []
+          collection = [collection] if collection.is_a?(Hash)
+
+          @items = collection.collect do |property|
+            {
+              :id                => property[:ovf_key],
+              :value             => property[:ovf_value],
+              :type              => property[:ovf_type],
+              :password          => property[:ovf_password],
+              :user_configurable => property[:ovf_userConfigurable]
+            }
+          end rescue []
+        end
+      end
+
+    end
+  end
+end
diff --git a/lib/fog/vcloud_director/models/compute/disk.rb b/lib/fog/vcloud_director/models/compute/disk.rb
index 994cc05..db41b3f 100644
--- a/lib/fog/vcloud_director/models/compute/disk.rb
+++ b/lib/fog/vcloud_director/models/compute/disk.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Disk < Model # there is no lazy_load in disks
-
         identity  :id
 
         attribute :address
@@ -44,7 +42,6 @@ module Fog
           response = service.put_disks(attributes[:vm].id, data.disks)
           service.process_task(response.body)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/disks.rb b/lib/fog/vcloud_director/models/compute/disks.rb
index d692f94..71e26e4 100644
--- a/lib/fog/vcloud_director/models/compute/disks.rb
+++ b/lib/fog/vcloud_director/models/compute/disks.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/disk'
 module Fog
   module Compute
     class VcloudDirector
-
       class Disks < Collection
         model Fog::Compute::VcloudDirector::Disk
 
@@ -19,7 +18,7 @@ module Fog
         end
 
         def get_by_id(item_id)
-          item = item_list.detect{ |i| i[:id] == item_id}
+          item = item_list.find{ |i| i[:id] == item_id}
           item.merge!(:all_disks => @disks, :vm => vm) if item
           item
         end
@@ -33,7 +32,6 @@ module Fog
           end
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/media.rb b/lib/fog/vcloud_director/models/compute/media.rb
index b1830bf..71adef0 100644
--- a/lib/fog/vcloud_director/models/compute/media.rb
+++ b/lib/fog/vcloud_director/models/compute/media.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Media < Model
-
         identity  :id
 
         attribute :href
@@ -22,7 +20,6 @@ module Fog
           response = service.delete_media(id)
           service.process_task(response.body)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/medias.rb b/lib/fog/vcloud_director/models/compute/medias.rb
index b50e944..cd7daaf 100644
--- a/lib/fog/vcloud_director/models/compute/medias.rb
+++ b/lib/fog/vcloud_director/models/compute/medias.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/media'
 module Fog
   module Compute
     class VcloudDirector
-
       class Medias < Collection
         model Fog::Compute::VcloudDirector::Media
 
@@ -25,7 +24,7 @@ module Fog
 
           file = response.body[:Files][:File].first
           file[:Link] = [file[:Link]] if file[:Link].is_a?(Hash)
-          link = file[:Link].detect {|l| l[:rel] == 'upload:default'}
+          link = file[:Link].find {|l| l[:rel] == 'upload:default'}
 
           headers = {
             'Content-Length' => io.size,
@@ -70,7 +69,6 @@ module Fog
           items.each {|item| service.add_id_from_href!(item)}
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/network.rb b/lib/fog/vcloud_director/models/compute/network.rb
index 3245ded..4258694 100644
--- a/lib/fog/vcloud_director/models/compute/network.rb
+++ b/lib/fog/vcloud_director/models/compute/network.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Network < Model
-
         identity  :id
 
         attribute :name
@@ -21,7 +19,6 @@ module Fog
         attribute :dns2
         attribute :dns_suffix
         attribute :ip_ranges, :type => :array
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/networks.rb b/lib/fog/vcloud_director/models/compute/networks.rb
index 03bd3b1..b08cac5 100644
--- a/lib/fog/vcloud_director/models/compute/networks.rb
+++ b/lib/fog/vcloud_director/models/compute/networks.rb
@@ -4,12 +4,18 @@ require 'fog/vcloud_director/models/compute/network'
 module Fog
   module Compute
     class VcloudDirector
-
       class Networks < Collection
+
+        include Fog::VcloudDirector::Query
+
         model Fog::Compute::VcloudDirector::Network
 
         attribute :organization
 
+        def query_type
+          "orgVdcNetwork"
+        end
+
         private
 
         def get_by_id(item_id)
@@ -45,7 +51,6 @@ module Fog
           items.each{|item| service.add_id_from_href!(item) }
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/organization.rb b/lib/fog/vcloud_director/models/compute/organization.rb
index aea06d3..372aec1 100644
--- a/lib/fog/vcloud_director/models/compute/organization.rb
+++ b/lib/fog/vcloud_director/models/compute/organization.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Organization < Model
-
         identity  :id
 
         attribute :name
@@ -33,9 +31,7 @@ module Fog
           requires :id
           service.tasks(:organization => self)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud_director/models/compute/organizations.rb b/lib/fog/vcloud_director/models/compute/organizations.rb
index 9e0af77..123728d 100644
--- a/lib/fog/vcloud_director/models/compute/organizations.rb
+++ b/lib/fog/vcloud_director/models/compute/organizations.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/organization'
 module Fog
   module Compute
     class VcloudDirector
-
       class Organizations < Collection
         model Fog::Compute::VcloudDirector::Organization
 
@@ -23,7 +22,6 @@ module Fog
           orgs.each {|org| service.add_id_from_href!(org)}
           orgs
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/tag.rb b/lib/fog/vcloud_director/models/compute/tag.rb
index 278003a..f1158f0 100644
--- a/lib/fog/vcloud_director/models/compute/tag.rb
+++ b/lib/fog/vcloud_director/models/compute/tag.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Tag < Model
-
         identity  :id
         attribute :value
 
@@ -27,7 +25,6 @@ module Fog
         def vm
           attributes[:vm]
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/tags.rb b/lib/fog/vcloud_director/models/compute/tags.rb
index efe3617..d3eda89 100644
--- a/lib/fog/vcloud_director/models/compute/tags.rb
+++ b/lib/fog/vcloud_director/models/compute/tags.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/tag'
 module Fog
   module Compute
     class VcloudDirector
-
       class Tags < Collection
         model Fog::Compute::VcloudDirector::Tag
 
@@ -16,7 +15,7 @@ module Fog
 
         def get_by_id(item_id)
           item_list unless @items
-          @items.detect{ |i| i[:id] == item_id}
+          @items.find{ |i| i[:id] == item_id}
         end
 
         def create(key,value)
@@ -36,7 +35,6 @@ module Fog
           hash_items.each_pair{ |k,v| @items << {:id => k, :value => v }.merge(:vm => vm) }
           @items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/task.rb b/lib/fog/vcloud_director/models/compute/task.rb
index c3c3ebe..26d906d 100644
--- a/lib/fog/vcloud_director/models/compute/task.rb
+++ b/lib/fog/vcloud_director/models/compute/task.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Task < Fog::Model
-
         identity  :id
 
         attribute :href
@@ -51,9 +49,7 @@ module Fog
         def cancel
           service.post_cancel_task(id)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vcloud_director/models/compute/tasks.rb b/lib/fog/vcloud_director/models/compute/tasks.rb
index 406c0c7..6227a19 100644
--- a/lib/fog/vcloud_director/models/compute/tasks.rb
+++ b/lib/fog/vcloud_director/models/compute/tasks.rb
@@ -4,12 +4,18 @@ require 'fog/vcloud_director/models/compute/task'
 module Fog
   module Compute
     class VcloudDirector
-
       class Tasks < Collection
+
+        include Fog::VcloudDirector::Query
+
         model Fog::Compute::VcloudDirector::Task
 
         attribute :organization
 
+        def query_type
+          "task"
+        end
+
         def get(id)
           data = service.get_task(id).body
           return nil unless data
@@ -24,7 +30,6 @@ module Fog
           data = service.get_task_list(organization.id).body
           data[:Task].each {|task| service.add_id_from_href!(task)}
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vapp.rb b/lib/fog/vcloud_director/models/compute/vapp.rb
index 879755d..e4f7add 100644
--- a/lib/fog/vcloud_director/models/compute/vapp.rb
+++ b/lib/fog/vcloud_director/models/compute/vapp.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Vapp < Model
-
         identity  :id
 
         attribute :name
@@ -30,6 +28,11 @@ module Fog
           service.tags(:vm => self)
         end
 
+        def custom_fields
+          requires :id
+          service.custom_fields( :vapp => self)
+        end
+
         # @param [String] action The specified action is applied to all virtual
         #   machines in the vApp. All values other than **default** ignore
         #   actions, order, and delay specified in the StartupSection. One of:
@@ -135,7 +138,6 @@ module Fog
           end
           service.process_task(response.body)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vapps.rb b/lib/fog/vcloud_director/models/compute/vapps.rb
index e094b26..fa1b42a 100644
--- a/lib/fog/vcloud_director/models/compute/vapps.rb
+++ b/lib/fog/vcloud_director/models/compute/vapps.rb
@@ -4,18 +4,25 @@ require 'fog/vcloud_director/models/compute/vapp'
 module Fog
   module Compute
     class VcloudDirector
-
       class Vapps < Collection
+
+        include Fog::VcloudDirector::Query
+
         model Fog::Compute::VcloudDirector::Vapp
 
         attribute :vdc
 
+        def query_type
+          "vApp"
+        end
+
         private
 
         def get_by_id(item_id)
           item = service.get_vapp(item_id).body
           %w(:Link).each {|key_to_delete| item.delete(key_to_delete) }
           service.add_id_from_href!(item)
+          item[:Description] ||= ""
           item
         end
 
@@ -27,7 +34,6 @@ module Fog
           items.each{|item| service.add_id_from_href!(item) }
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vdc.rb b/lib/fog/vcloud_director/models/compute/vdc.rb
index f06eb92..42d6b61 100644
--- a/lib/fog/vcloud_director/models/compute/vdc.rb
+++ b/lib/fog/vcloud_director/models/compute/vdc.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class Vdc < Model
-
         identity  :id
 
         attribute :name
@@ -31,7 +29,6 @@ module Fog
           requires :id
           service.vapps(:vdc => self)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vdcs.rb b/lib/fog/vcloud_director/models/compute/vdcs.rb
index cb12dc1..a4b5606 100644
--- a/lib/fog/vcloud_director/models/compute/vdcs.rb
+++ b/lib/fog/vcloud_director/models/compute/vdcs.rb
@@ -4,12 +4,18 @@ require 'fog/vcloud_director/models/compute/vdc'
 module Fog
   module Compute
     class VcloudDirector
-
       class Vdcs < Collection
+
+        include Fog::VcloudDirector::Query
+
         model Fog::Compute::VcloudDirector::Vdc
 
         attribute :organization
 
+        def query_type
+          "orgVdc"
+        end
+
         private
 
         def get_by_id(item_id)
@@ -25,7 +31,6 @@ module Fog
           items.each{|item| service.add_id_from_href!(item) }
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vm.rb b/lib/fog/vcloud_director/models/compute/vm.rb
index 31ddb4f..736d7d5 100644
--- a/lib/fog/vcloud_director/models/compute/vm.rb
+++ b/lib/fog/vcloud_director/models/compute/vm.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/vm_customization'
 module Fog
   module Compute
     class VcloudDirector
-
       class Vm < Model
         identity  :id
 
@@ -66,7 +65,6 @@ module Fog
           service.process_task(response.body)
         end
 
-
         # Reboot the VM.
         def reboot
           requires :id
@@ -166,7 +164,6 @@ module Fog
           # get_by_metadata returns a vm collection where every vapp parent is orpahn
           collection.vapp ||= service.vapps.get(vapp_id)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vm_customization.rb b/lib/fog/vcloud_director/models/compute/vm_customization.rb
index 8dee143..3f83e6e 100644
--- a/lib/fog/vcloud_director/models/compute/vm_customization.rb
+++ b/lib/fog/vcloud_director/models/compute/vm_customization.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class VmCustomization < Model
-
         identity  :id
 
         attribute :type
@@ -36,7 +34,6 @@ module Fog
           response = service.put_guest_customization_section_vapp(id, attributes)
           service.process_task(response.body)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vm_customizations.rb b/lib/fog/vcloud_director/models/compute/vm_customizations.rb
index 9204003..e450e23 100644
--- a/lib/fog/vcloud_director/models/compute/vm_customizations.rb
+++ b/lib/fog/vcloud_director/models/compute/vm_customizations.rb
@@ -4,12 +4,10 @@ require 'fog/vcloud_director/models/compute/vm_customization'
 module Fog
   module Compute
     class VcloudDirector
-
       class VmCustomizations < Collection
         model Fog::Compute::VcloudDirector::VmCustomization
 
         attribute :vm
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vm_network.rb b/lib/fog/vcloud_director/models/compute/vm_network.rb
index 206db04..3c5fb6a 100644
--- a/lib/fog/vcloud_director/models/compute/vm_network.rb
+++ b/lib/fog/vcloud_director/models/compute/vm_network.rb
@@ -3,9 +3,7 @@ require 'fog/core/model'
 module Fog
   module Compute
     class VcloudDirector
-
       class VmNetwork < Model
-
         identity  :id
 
         attribute :type
@@ -23,7 +21,6 @@ module Fog
           response = service.put_network_connection_system_section_vapp(id, attributes)
           service.process_task(response.body)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vm_networks.rb b/lib/fog/vcloud_director/models/compute/vm_networks.rb
index 970036e..05504fd 100644
--- a/lib/fog/vcloud_director/models/compute/vm_networks.rb
+++ b/lib/fog/vcloud_director/models/compute/vm_networks.rb
@@ -4,7 +4,6 @@ require 'fog/vcloud_director/models/compute/vm_network'
 module Fog
   module Compute
     class VcloudDirector
-
       class VmNetworks < Collection
         model Fog::Compute::VcloudDirector::VmNetwork
 
@@ -14,7 +13,6 @@ module Fog
           data = service.get_vm_network(id).body
           new(data)
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/models/compute/vms.rb b/lib/fog/vcloud_director/models/compute/vms.rb
index 4b4908c..5082e24 100644
--- a/lib/fog/vcloud_director/models/compute/vms.rb
+++ b/lib/fog/vcloud_director/models/compute/vms.rb
@@ -4,8 +4,10 @@ require 'fog/vcloud_director/models/compute/vm'
 module Fog
   module Compute
     class VcloudDirector
-
       class Vms < Collection
+
+        include Fog::VcloudDirector::Query
+
         model Fog::Compute::VcloudDirector::Vm
 
         attribute :vapp
@@ -22,10 +24,14 @@ module Fog
           new(item[:vm])
         end
 
+        def query_type
+          "vm"
+        end
+
         private
 
         def get_by_id(item_id)
-          item = item_list.detect{ |vm| vm[:id] == item_id }
+          item = item_list.find{ |vm| vm[:id] == item_id }
           item
         end
 
@@ -34,7 +40,6 @@ module Fog
           items = data[:vms]
           items
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/parsers/compute/disks.rb b/lib/fog/vcloud_director/parsers/compute/disks.rb
index 0c29163..a83af0a 100644
--- a/lib/fog/vcloud_director/parsers/compute/disks.rb
+++ b/lib/fog/vcloud_director/parsers/compute/disks.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module VcloudDirector
-
         class Disks < VcloudDirectorParser
-
           def reset
             @disk = {}
             @response = { :disks => [] }
@@ -48,9 +46,7 @@ module Fog
               @disk = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/parsers/compute/metadata.rb b/lib/fog/vcloud_director/parsers/compute/metadata.rb
index a2293b4..9b826b6 100644
--- a/lib/fog/vcloud_director/parsers/compute/metadata.rb
+++ b/lib/fog/vcloud_director/parsers/compute/metadata.rb
@@ -29,7 +29,6 @@ module Fog
         #  :id=>"vm-18545e82-d919-4071-ae7e-d1300d9d8112"}
         #
         class Metadata < VcloudDirectorParser
-
           def reset
             @response = { :metadata => {} }
           end
@@ -55,7 +54,6 @@ module Fog
               @response[:metadata].merge!(Hash[@key, @val])
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/parsers/compute/network.rb b/lib/fog/vcloud_director/parsers/compute/network.rb
index 7ea9db8..b14108f 100644
--- a/lib/fog/vcloud_director/parsers/compute/network.rb
+++ b/lib/fog/vcloud_director/parsers/compute/network.rb
@@ -63,7 +63,6 @@ module Fog
         #</OrgNetwork>
         #
         class Network < VcloudDirectorParser
-
           def reset
             @response = { :ip_ranges => [] }
             @ip_range = {}
@@ -98,7 +97,6 @@ module Fog
               @ip_range = {}
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/parsers/compute/vm.rb b/lib/fog/vcloud_director/parsers/compute/vm.rb
index f9d2512..a00e3f3 100644
--- a/lib/fog/vcloud_director/parsers/compute/vm.rb
+++ b/lib/fog/vcloud_director/parsers/compute/vm.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module VcloudDirector
-
         class Vm < VcloudDirectorParser
-
           def reset
             @in_operating_system = false
             @in_children = false
@@ -58,7 +56,6 @@ module Fog
             when 'Link'
               @response[:vm][:links] = @links
             end
-
           end
 
           def human_status(status)
@@ -73,9 +70,7 @@ module Fog
               'unknown'
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/parsers/compute/vm_customization.rb b/lib/fog/vcloud_director/parsers/compute/vm_customization.rb
index a9f88a1..868fbdb 100644
--- a/lib/fog/vcloud_director/parsers/compute/vm_customization.rb
+++ b/lib/fog/vcloud_director/parsers/compute/vm_customization.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module VcloudDirector
-
         class VmCustomization < VcloudDirectorParser
-
           def reset
             @response = { }
           end
@@ -49,9 +47,7 @@ module Fog
               @response[:customization_script] = CGI::unescapeHTML(value) if @response[:has_customization_script]
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/parsers/compute/vm_network.rb b/lib/fog/vcloud_director/parsers/compute/vm_network.rb
index 832d16d..e071021 100644
--- a/lib/fog/vcloud_director/parsers/compute/vm_network.rb
+++ b/lib/fog/vcloud_director/parsers/compute/vm_network.rb
@@ -63,7 +63,6 @@ module Fog
         #</OrgNetwork>
         #
         class VmNetwork < VcloudDirectorParser
-
           def reset
             @response = { }
           end
@@ -101,7 +100,6 @@ module Fog
               @response[:ip_address_allocation_mode] = value
             end
           end
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/parsers/compute/vms.rb b/lib/fog/vcloud_director/parsers/compute/vms.rb
index 0e6cba7..11ecd0f 100644
--- a/lib/fog/vcloud_director/parsers/compute/vms.rb
+++ b/lib/fog/vcloud_director/parsers/compute/vms.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module VcloudDirector
-
         class Vms < VcloudDirectorParser
-
           def reset
             @vm = { :ip_address => '' }
             @in_operating_system = false
@@ -72,7 +70,6 @@ module Fog
                 @vm = {}
               end
             end
-
           end
 
           def human_status(status)
@@ -87,9 +84,7 @@ module Fog
               'unknown'
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb b/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb
index 8f452ea..28a36a1 100644
--- a/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb
+++ b/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module VcloudDirector
-
         class VmsByMetadata < VcloudDirectorParser
-
           def reset
             @response = { :vm_records => [] }
           end
@@ -32,9 +30,7 @@ module Fog
               @response[:vm_records] << results
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/query.rb b/lib/fog/vcloud_director/query.rb
new file mode 100644
index 0000000..db2755c
--- /dev/null
+++ b/lib/fog/vcloud_director/query.rb
@@ -0,0 +1,59 @@
+require 'pp'
+module Fog
+  module VcloudDirector
+    module Query
+
+      def find_by_query(options={})
+        type = options.fetch(:type) { self.query_type }
+
+        results = get_all_results(type, options)
+        data = results.map do |query_record|
+          model_data = {}
+          model_data[:id] = query_record[:href].split('/').last
+          model_data[:name] = query_record.fetch(:name) if query_record.key?(:name)
+          if self.methods.include?(:populate_model_from_query_record)
+            model_data.merge(self.populate_model_from_query_record(query_record))
+          else
+            model_data
+          end
+        end
+        load(data)
+      end
+
+      private
+
+      def get_all_results(type, options)
+        results = []
+        if options.key?(:page)
+          page_range = [ Integer(options[:page]) ]
+        else
+          page_range = (1..get_num_pages(type, options))
+        end
+        page_range.each do |page|
+          results += get_results_page(page, type, options) || []
+        end
+        results
+      end
+
+      def get_num_pages(type, options)
+        body = service.get_execute_query(type, options)
+        last_page = body[:lastPage] || 1
+        raise "Invalid lastPage (#{last_page}) in query results" unless last_page.is_a? Integer
+        last_page.to_i
+      end
+
+      def get_results_page(page, type, options)
+        body = service.get_execute_query(type, options.merge({:page=>page})).body
+
+        record_key = key_of_first_record_or_reference(body)
+        body[record_key] = [body[record_key]] if body[record_key].is_a?(Hash)
+        body[record_key]
+      end
+
+      def key_of_first_record_or_reference(body)
+        body.keys.detect { |key| key.to_s =~ /Record|Reference$/ }
+      end
+
+    end
+  end
+end
diff --git a/lib/fog/vcloud_director/requests/compute/delete_network.rb b/lib/fog/vcloud_director/requests/compute/delete_network.rb
index 18c9d93..9d7b6c3 100644
--- a/lib/fog/vcloud_director/requests/compute/delete_network.rb
+++ b/lib/fog/vcloud_director/requests/compute/delete_network.rb
@@ -27,7 +27,6 @@ module Fog
 
       class Mock
         def delete_network(id)
-
           unless data[:networks][id]
             raise Fog::Compute::VcloudDirector::Forbidden.new(
               "No access to entity \"(com.vmware.vcloud.entity.orgVdcNetwork:#{id})\""
@@ -57,7 +56,6 @@ module Fog
             :body => body
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb
index 26b1abf..8dcdda1 100644
--- a/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb
@@ -78,7 +78,7 @@ module Fog
               :CatalogReference : :CatalogRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb b/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb
index 68a473a..8d79cd1 100644
--- a/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb
@@ -22,7 +22,44 @@ module Fog
             :path       => "vApp/#{id}/virtualHardwareSection/cpu"
           )
         end
+
       end
+
+      class Mock
+
+        def get_cpu_rasd_item(id)
+          type = 'application/vnd.vmware.vcloud.rasdItem+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_cpu_rasd_item_body(id, vm)
+          )
+        end
+
+        def get_cpu_rasd_item_body(id, vm)
+          {
+            :ns12_href => make_href("vApp/#{id}/virtualHardwareSection/cpu"),
+            :ns12_type => "application/vnd.vmware.vcloud.rasdItem+xml",
+            :"rasd:AllocationUnits"=>"hertz * 10^6",
+            :"rasd:Description"=>"Number of Virtual CPUs",
+            :"rasd:ElementName"=>"#{vm[:cpu_count]} virtual CPU(s)",
+            :"rasd:InstanceID"=>"4",
+            :"rasd:Reservation"=>"0",
+            :"rasd:ResourceType"=>"3",
+            :"rasd:VirtualQuantity"=>"#{vm[:cpu_count]}",
+            :"rasd:Weight"=>"0",
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb
index 4c72d61..f84d60e 100644
--- a/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb
@@ -78,7 +78,7 @@ module Fog
               :DiskReference : :DiskRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb b/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb
index f3791a9..63b0e0d 100644
--- a/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb
@@ -21,6 +21,70 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_disks_rasd_items_list(id)
+          type = 'application/vnd.vmware.vcloud.rasdItemsList+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          body = {
+            :type => type,
+            :href => make_href("vApp/#{id}/virtualHardwareSection/disks"),
+            :Link => {
+              :rel=>"edit",
+              :type=>"application/vnd.vmware.vcloud.rasdItemsList+xml",
+              :href=>make_href("vApp/#{id}/virtualHardwareSection/disks"),
+            },
+            :Item => [
+              get_disks_rasd_items_list_body(id, vm),
+              get_media_rasd_item_ide_controller_body(id, vm),
+            ].flatten
+          }
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => body
+          )
+        end
+
+        def get_disks_rasd_items_list_body(id, vm)
+          [
+            {
+              :"rasd:Address"=>"0",
+              :"rasd:Description"=>"SCSI Controller",
+              :"rasd:ElementName"=>"SCSI Controller 0",
+              :"rasd:InstanceID"=>"2",
+              :"rasd:ResourceSubType"=>"lsilogic",
+              :"rasd:ResourceType"=>"6"
+            },
+
+            # TODO: Add support for adding disks
+            {
+              :"rasd:AddressOnParent"=>"0",
+              :"rasd:Description"=>"Hard disk",
+              :"rasd:ElementName"=>"Hard disk 1",
+              :"rasd:HostResource"=>{
+                :ns12_capacity=>"51200",
+                :ns12_busSubType=>"lsilogic",
+                :ns12_busType=>"6"
+              },
+              :"rasd:InstanceID"=>"2000",
+              :"rasd:Parent"=>"2",
+              :"rasd:ResourceType"=>"17"
+            },
+
+          ]
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_execute_query.rb b/lib/fog/vcloud_director/requests/compute/get_execute_query.rb
index 64d01bc..3b0ca17 100644
--- a/lib/fog/vcloud_director/requests/compute/get_execute_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_execute_query.rb
@@ -103,7 +103,7 @@ module Fog
             #    "#{response.body[:name]}Record".to_sym
 
             %w[firstPage previousPage nextPage lastPage].each do |rel|
-              if link = response.body[:Link].detect {|l| l[:rel] == rel}
+              if link = response.body[:Link].find {|l| l[:rel] == rel}
                 href = Nokogiri::XML.fragment(link[:href])
                 query = CGI.parse(URI.parse(href.text).query)
                 response.body[rel.to_sym] = query['page'].first.to_i
@@ -118,7 +118,6 @@ module Fog
 
       class Mock
         def get_execute_query(type=nil, options={})
-
           unless options[:fields].nil?
             Fog::Mock.not_implemented("Fields are not yet implemented in get_execute_query Mock for #{type}")
           end
@@ -158,15 +157,17 @@ module Fog
             :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
             :body    => body
           )
-
         end
 
         private
 
         def fetch_items(type, opts)
-
           if opts.key?(:filter) && opts[:filter] =~ /^name==([^;,]+)$/
             name = $1
+          elsif type == 'vAppTemplate' && opts.key?(:filter) &&
+            opts[:filter] =~ /^name==([^;,]+);catalogName==([^;,]+)$/ #TODO also match in other order
+            name = $1
+            catalog_name = $2
           elsif opts.key?(:filter)
             Fog::Mock.not_implemented("Complex filters are not yet implemented in get_execute_query Mock for #{type}: #{opts[:filter]}")
           end
@@ -180,10 +181,36 @@ module Fog
             :xsi_schemaLocation=>xsi_schema_location,
           }
 
-          if type == 'orgVdcNetwork'
+          records = []
+          record_type = nil
+
+          if type == 'orgVdc'
+            record_type = :OrgVdcRecord
+            vdc_id = data[:vdcs].keys[0]
+            vdc_name = data[:vdcs][vdc_id][:name]
+            records = [{
+              :storageUsedMB=>"123967",
+              :storageLimitMB=>"8388608",
+              :storageAllocationMB=>"0",
+              :status=>"READY",
+              :orgName=>"orgName",
+              :name=>vdc_name,
+              :memoryUsedMB=>"0",
+              :memoryLimitMB=>"0",
+              :memoryAllocationMB=>"0",
+              :isSystemVdc=>"false",
+              :isEnabled=>"true",
+              :isBusy=>"false",
+              :href=>make_href("vdc/#{vdc_id}"),
+            }]
+            body[:page]     = 1.to_s             # TODO: Support pagination
+            body[:pageSize] = records.size.to_s  # TODO: Support pagination
+            body[:total]    = records.size.to_s
+            body[record_type] = records
+
+          elsif type == 'orgVdcNetwork'
             record_type = :OrgVdcNetworkRecords
             data_type = :networks
-            records = []
             data[data_type].each do |id, dr|
               r = {}
               if name.nil? || dr[:name] == name
@@ -218,10 +245,154 @@ module Fog
             body[:pageSize] = records.size.to_s  # TODO: Support pagination
             body[:total]    = records.size.to_s
             body[record_type] = records
+
+          elsif type == 'edgeGateway'
+            record_type = :EdgeGatewayRecord
+            edge_gateway_id = data[:edge_gateways].keys[0]
+            vdc_id = data[:edge_gateways][edge_gateway_id][:vdc]
+            records = [{
+              :vdc=>make_href("vdc/#{vdc_id}"),
+              :numberOfOrgNetworks=>"1",
+              :numberOfExtNetworks=>"1",
+              :name=>"Test EdgeGateway Name",
+              :isBusy=>"false",
+              :haStatus=>"DISABLED",
+              :gatewayStatus=>"READY",
+              :href=>make_href("edgeGateway/#{edge_gateway_id}"),
+              :taskStatus=>"success",
+              :taskOperation=>"networkConfigureEdgeGatewayServices",
+              :task=>make_href("task/#{uuid}"),
+              :taskDetails=>" "
+            }]
+            body[:page]     = 1.to_s             # TODO: Support pagination
+            body[:pageSize] = records.size.to_s  # TODO: Support pagination
+            body[:total]    = records.size.to_s
+            body[record_type] = records
+
+          elsif type == 'vAppTemplate'
+            record_type = :VAappTemplateRecord
+            records = [{
+              :vdcName=>"Bogus vDC",
+              :vdc=>make_href("vdc/#{uuid}"),
+              :storageProfileName=>"*",
+              :status=>"RESOLVED",
+              :ownerName=>"system",
+              :org=> make_href("org/#{data[:org][:uuid]}"),
+              :name=> name,
+              :isPublished=>"true",
+              :isGoldMaster=>"false",
+              :isExpired=>"false",
+              :isEnabled=>"true",
+              :isDeployed=>"false",
+              :isBusy=>"false",
+              :creationDate=>"2013-09-19T22:55:30.257+01:00",
+              :catalogName=> catalog_name,
+              :href=> make_href("vAppTemplate/vappTemplate-#{uuid}"),
+              :honorBootOrder=>"false",
+              :isVdcEnabled=>"true",
+              :isInCatalog=>"true",
+              :cpuAllocationMhz=>"8",
+              :cpuAllocationInMhz=>"16000",
+              :storageKB=>"52428800",
+              :numberOfShadowVMs=>"0",
+              :numberOfVMs=>"1",
+              :isAutoDeleteNotified=>"false",
+              :numberOfCpus=>"8",
+              :isAutoUndeployNotified=>"false",
+              :memoryAllocationMB=>"32768"
+            }]
+            body[:page]     = 1.to_s             # TODO: Support pagination
+            body[:pageSize] = records.size.to_s  # TODO: Support pagination
+            body[:total]    = records.size.to_s
+            body[record_type] = records
+
+          elsif type == 'vApp'
+            record_type = :VAppRecord
+            all_records = data[:vapps].map do |vapp_id, vapp|
+              {
+                :vdcName => data.fetch(:vdcs).fetch(vapp[:vdc_id]).fetch(:name),
+                :vdc => make_href("vdc/#{vapp[:vdc_id]}"),
+                :storageProfileName => "*",
+                :ownerName => "system",
+                :name => vapp.fetch(:name),
+                :status => 'POWERED_OFF',
+                :isInMaintenanceMode=> 'false',
+                :isPublic => 'false',
+                :isExpired =>"false",
+                :isEnabled =>"true",
+                :isDeployed =>"false",
+                :isBusy => "false",
+                :pvdcHighestSupportedHardwareVersion => '8',
+                :lowestHardwareVersionInVApp => '8',
+                :creationDate => "2013-09-19T22:55:30.257+01:00",
+                :href => make_href("vApp/#{vapp_id}"),
+                :honorBootOrder => "false",
+                :isVdcEnabled => "true",
+                :cpuAllocationMhz => "8",
+                :cpuAllocationInMhz => "16000",
+                :storageKB => "52428800",
+                :numberOfVMs => "1",
+                :isAutoDeleteNotified => "false",
+                :numberOfCpus => "8",
+                :isAutoUndeployNotified => "false",
+                :memoryAllocationMB => "32768",
+                :task => make_href("task/#{uuid}"),
+                :taskStatusName => 'vdcInstantiateVapp',
+                :taskStatus => 'success',
+                :taskDetails => " ",
+              }
+            end
+            records = all_records.select do |record|
+              record[:name] == name
+            end
+
+            body[:page]     = 1.to_s             # TODO: Support pagination
+            body[:pageSize] = records.size.to_s  # TODO: Support pagination
+            body[:total]    = records.size.to_s
+            body[record_type] = records
+
+          elsif type == 'task'
+
+            record_type = :TaskRecord
+            data_type = :tasks
+            data[data_type].each do |id, dr|
+              r = {}
+              if name.nil? || dr.fetch(:operation_name) == name
+                r[:name] = dr.fetch(:operation_name)
+                r[:href] = make_href("task/#{id}")
+                if dr.key?(:end_time)
+                  r[:endDate] = dr.fetch(:end_time).strftime('%Y-%m-%dT%H:%M:%S%z')
+                else
+                  r[:endDate] = nil
+                end
+                if dr.key?(:start_time)
+                  r[:startDate] = dr.fetch(:start_time).strftime('%Y-%m-%dT%H:%M:%S%z')
+                else
+                  r[:startDate] = nil
+                end
+                r[:status] = dr.fetch(:status)
+                r[:serviceNamespace] = 'com.vmware.vcloud'
+                r[:ownerName] = '000.0.000000'
+                r[:orgName] = data.fetch(:org).fetch(:name)
+                r[:org] = make_href("org/#{data[:org][:uuid]}")
+                r[:objectType] = dr.fetch(:owner).fetch(:type).split(/\./).last.split(/\+/).first
+                r[:objectName] = dr.fetch(:owner).fetch(:name, '') # objectName is optional
+                r[:object] = dr.fetch(:owner).fetch(:href)
+                r[:details] = '! []'
+
+                records << r
+              end
+            end
+
           else
             Fog::Mock.not_implemented("No 'get by name' get_execute_query Mock for #{type} (#{name})")
           end
 
+          body[:page]     = 1.to_s             # TODO: Support pagination
+          body[:pageSize] = records.size.to_s  # TODO: Support pagination
+          body[:total]    = records.size.to_s
+          body[record_type] = records
+
           body
         end
 
diff --git a/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb
index bfc883d..539e23b 100644
--- a/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb
@@ -79,7 +79,7 @@ module Fog
               :GroupReference : :GroupRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb b/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb
index fb8dfa2..c148274 100644
--- a/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb
@@ -20,6 +20,50 @@ module Fog
           )
         end
       end
+
+      class Mock
+        def get_guest_customization_system_section_vapp(id)
+
+          type = 'application/vnd.vmware.vcloud.guestCustomizationSection+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vm_guest_customization_section_body(id, vm)
+          )
+        end
+
+        def get_vm_guest_customization_section_body(id, vm)
+          {
+            :type => "application/vnd.vmware.vcloud.guestCustomizationSection+xml",
+            :href => make_href("vApp/#{id}/guestCustomizationSection/"),
+            :ovf_required => "false",
+            :"ovf:Info" => "Specifies Guest OS Customization Settings",
+            :Enabled => "true",
+            :ChangeSid => "false",
+            :VirtualMachineId => id.split('-').last, # strip the 'vm-' prefix
+            :JoinDomainEnabled => "false",
+            :UseOrgSettings => "false",
+            :AdminPasswordEnabled => "false",
+            :AdminPasswordAuto => "true",
+            :ResetPasswordRequired => "false",
+            :CustomizationScript => vm[:customization_script] || "",
+            :ComputerName => vm[:computer_name] || vm[:name],
+            :Link => {
+              :rel=>"edit",
+              :type=>"application/vnd.vmware.vcloud.guestCustomizationSection+xml",
+              :href=>make_href("vApp/#{id}"),
+            },
+          }
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb b/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb
index bd36306..6ea851b 100644
--- a/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb
@@ -20,6 +20,40 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_lease_settings_section_vapp(id)
+
+          type = 'application/vnd.vmware.vcloud.leaseSettingsSection+xml'
+
+          unless vapp = data[:vapps][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vapp_lease_settings_section_body(id)
+          )
+
+        end
+
+        def get_vapp_lease_settings_section_body(id)
+          {
+            :type => "application/vnd.vmware.vcloud.leaseSettingsSection+xml",
+            :href => make_href("vApp/#{id}/leaseSettingsSection/"),
+            :ovf_required=>"false",
+            :"ovf:Info"=>"Lease settings section",
+            :DeploymentLeaseInSeconds=>"0",
+            :StorageLeaseInSeconds=>"0",
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb b/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb
index 0f3dd45..3af2c7f 100644
--- a/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb
@@ -21,6 +21,72 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_media_drives_rasd_items_list(id)
+          type = 'application/vnd.vmware.vcloud.rasdItemsList+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          body = {
+            :type => type,
+            :href => make_href("vApp/#{id}/virtualHardwareSection/media"),
+            :Item => [
+              get_media_rasd_item_ide_controller_body(id, vm),
+              get_media_rasd_item_cdrom_body(id, vm),
+              get_media_rasd_item_floppy_body(id, vm),
+            ]
+          }
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => body
+          )
+        end
+
+        def get_media_rasd_item_ide_controller_body(id, vm)
+          {
+            :"rasd:Address"=>"0",
+            :"rasd:Description"=>"IDE Controller",
+            :"rasd:ElementName"=>"IDE Controller 0",
+            :"rasd:InstanceID"=>"3",
+            :"rasd:ResourceType"=>"5"
+          }
+        end
+
+        def get_media_rasd_item_cdrom_body(id, vm)
+          {
+            :"rasd:AddressOnParent"=>"1",
+            :"rasd:AutomaticAllocation"=>"true",
+            :"rasd:Description"=>"CD/DVD Drive",
+            :"rasd:ElementName"=>"CD/DVD Drive 1",
+            :"rasd:HostResource"=>"",
+            :"rasd:InstanceID"=>"3000",
+            :"rasd:Parent"=>"3",
+            :"rasd:ResourceType"=>"15"
+          }
+        end
+
+        def get_media_rasd_item_floppy_body(id, vm)
+          {
+            :"rasd:AddressOnParent"=>"0",
+            :"rasd:AutomaticAllocation"=>"false",
+            :"rasd:Description"=>"Floppy Drive",
+            :"rasd:ElementName"=>"Floppy Drive 1",
+            :"rasd:HostResource"=>"",
+            :"rasd:InstanceID"=>"8000",
+            :"rasd:ResourceType"=>"14"
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb
index eddf798..01ea0b9 100644
--- a/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb
@@ -78,7 +78,7 @@ module Fog
               :MediaReference : :MediaRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb b/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb
index 0ae90bc..6390122 100644
--- a/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb
@@ -23,6 +23,42 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_memory_rasd_item(id)
+          type = 'application/vnd.vmware.vcloud.rasdItem+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_memory_rasd_item_body(id, vm)
+          )
+        end
+
+        def get_memory_rasd_item_body(id, vm)
+          {
+            :ns12_href => make_href("vApp/#{id}/virtualHardwareSection/memory"),
+            :ns12_type=>"application/vnd.vmware.vcloud.rasdItem+xml",
+            :"rasd:AllocationUnits"=>"byte * 2^20",
+            :"rasd:Description"=>"Memory Size",
+            :"rasd:ElementName"=>"#{vm[:memory_in_mb]} MB of memory",
+            :"rasd:InstanceID"=>"5",
+            :"rasd:Reservation"=>"0",
+            :"rasd:ResourceType"=>"4",
+            :"rasd:VirtualQuantity"=>"#{vm[:memory_in_mb]}",
+            :"rasd:Weight"=>"0",
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb b/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb
index bd8cdd7..cde4434 100644
--- a/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb
@@ -20,6 +20,51 @@ module Fog
           )
         end
       end
+
+      class Mock
+        def get_network_cards_items_list(id)
+          type = 'application/vnd.vmware.vcloud.rasdItemsList+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          body = {
+            :type => type,
+            :href => make_href("vApp/#{id}/virtualHardwareSection/networkCards"),
+            :Link => {
+              :rel=>"edit",
+              :type=>"application/vnd.vmware.vcloud.rasdItemsList+xml",
+              :href=>make_href("vApp/#{id}/virtualHardwareSection/networkCards"),
+            },
+            :Item => get_network_cards_rasd_items_list_body(id, vm)
+          }
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => body
+          )
+
+        end
+
+        def get_network_cards_rasd_items_list_body(id, vm)
+          [{
+            :"rasd:Address" => vm[:nics][0][:mac_address],
+            :"rasd:AddressOnParent" => "0",
+            :"rasd:AutomaticAllocation" => "true",
+            :"rasd:Connection" => vm[:nics][0][:network_name],
+            :"rasd:Description" => "E1000 ethernet adapter",
+            :"rasd:ElementName" => "Network adapter 0",
+            :"rasd:InstanceID" => "1",
+            :"rasd:ResourceSubType" => "E1000",
+            :"rasd:ResourceType" => "10"
+          }]
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_network_complete.rb b/lib/fog/vcloud_director/requests/compute/get_network_complete.rb
index 67c1a5d..ec854ba 100644
--- a/lib/fog/vcloud_director/requests/compute/get_network_complete.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_network_complete.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class VcloudDirector
       class Real
-
         # Retrieve an organization network.
         #
         # @param [String] id Object identifier of the network.
@@ -72,7 +71,6 @@ module Fog
             :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
             :body => body
           )
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb b/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb
index 614bde5..d98c468 100644
--- a/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb
@@ -20,6 +20,42 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_network_config_section_vapp(id)
+
+          type = 'application/vnd.vmware.vcloud.networkConfigSection+xml'
+
+          unless vapp = data[:vapps][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vapp_network_config_section_body(id, vapp)
+          )
+
+        end
+
+        def get_vapp_network_config_section_body(id, vapp)
+          # TODO: This is effectively hardcoding a vAppNetwork configuration
+          #       into here, but this is sufficient for initial testing.
+          #       This network configuration has no networks.
+
+          {
+            :type => "application/vnd.vmware.vcloud.networkConfigSection+xml",
+            :href => make_href("vApp/#{id}/networkConfigSection/"),
+            :ovf_required => "false",
+            :"ovf:Info" => "The configuration parameters for logical networks",
+            :NetworkConfig => [],
+          }
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb b/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb
index 7bd52b4..a336000 100644
--- a/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb
@@ -20,6 +20,49 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_network_connection_system_section_vapp(id)
+          type = 'application/vnd.vmware.vcloud.networkConnectionSection+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vm_network_connection_section_body(id, vm)
+          )
+
+        end
+
+        def get_vm_network_connection_section_body(id, vm)
+          # TODO: Needs work - does not handle multiple NIC case yet, or
+          #       DHCP/POOL allocations
+          {
+            :type => "application/vnd.vmware.vcloud.networkConnectionSection+xml",
+            :href => make_href("vApp/#{id}/networkConnectionSection/"),
+            :ovf_required => "false",
+            :"ovf:Info" => "Specifies the available VM network connections",
+            :PrimaryNetworkConnectionIndex => "0",
+            :NetworkConnection => {
+              :network => vm[:nics][0][:network_name],
+              :needsCustomization => "false",
+              :NetworkConnectionIndex => "0",
+              :IpAddress => vm[:nics][0][:ip_address],
+              :IsConnected => "true",
+              :MACAddress => vm[:nics][0][:mac_address],
+              :IpAddressAllocationMode => "MANUAL"
+            }
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb b/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb
index 99a2e3a..7a32269 100644
--- a/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb
@@ -20,6 +20,40 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_operating_system_section(id)
+
+          type = 'application/vnd.vmware.vcloud.operatingSystemSection+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vm_operating_system_section_body(id, vm)
+          )
+
+        end
+
+        def get_vm_operating_system_section_body(id, vm)
+          {
+            :xmlns_ns12=>"http://www.vmware.com/vcloud/v1.5",
+            :ovf_id => "94", # TODO: What is this?
+            :ns12_href => make_href("vApp/#{id}/operatingSystemSection/"),
+            :ns12_type => "application/vnd.vmware.vcloud.operatingSystemSection+xml",
+            :vmw_osType => vm[:guest_os_type], # eg "ubuntu64Guest"
+            :"ovf:Info"=>"Specifies the operating system installed",
+            :"ovf:Description"=> vm[:guest_os_description], # eg "Ubuntu Linux (64-bit)",
+          }
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb
index 5fa6bf1..c67bf8f 100644
--- a/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb
@@ -79,7 +79,7 @@ module Fog
               :OrganizationReference : :OrganizationRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb b/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb
index 35e42c6..b73826f 100644
--- a/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb
@@ -20,6 +20,38 @@ module Fog
           )
         end
       end
+
+      class Mock
+        def get_runtime_info_section_type(id)
+
+          type = 'application/vnd.vmware.vcloud.virtualHardwareSection+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vm_runtime_info_section_body(id, vm)
+          )
+        end
+
+        def get_vm_runtime_info_section_body(id, vm)
+          {
+            :xmlns_ns12 => "http://www.vmware.com/vcloud/v1.5",
+            :ns12_href => make_href("vApp/#{id}/runtimeInfoSection"),
+            :ns12_type => "application/vnd.vmware.vcloud.virtualHardwareSection+xml",
+            :"ovf:Info" => "Specifies Runtime info",
+            :VMWareTools => {
+              :version => "9282",
+            }
+          }
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb b/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb
index c549f9a..d865c79 100644
--- a/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb
@@ -20,6 +20,36 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_snapshot_section(id)
+          type = 'application/vnd.vmware.vcloud.snapshotSection+xml'
+
+          unless data[:vms][id] || data[:vapps][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_snapshot_section_body(id)
+          )
+        end
+
+        def get_snapshot_section_body(id)
+          {
+            :type => "application/vnd.vmware.vcloud.snapshotSection+xml",
+            :href => make_href("vApp/#{id}/snapshotSection"),
+            :ovf_required => "false",
+            :"ovf:Info"   => "Snapshot information section"
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_startup_section.rb b/lib/fog/vcloud_director/requests/compute/get_startup_section.rb
index 3066881..0caa287 100644
--- a/lib/fog/vcloud_director/requests/compute/get_startup_section.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_startup_section.rb
@@ -20,6 +20,45 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_startup_section(id)
+
+          type = 'application/vnd.vmware.vcloud.startupSection+xml'
+
+          unless vapp = data[:vapps][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vapp_ovf_startup_section_body(id, vapp)
+          )
+
+        end
+
+        def get_vapp_ovf_startup_section_body(id, vapp)
+          {
+            :xmlns_ns12 => "http://www.vmware.com/vcloud/v1.5",
+            :ns12_href => make_href("vApp/#{id}"),
+            :ns12_type => "application/vnd.vmware.vcloud.startupSection+xml",
+            :"ovf:Info" => "VApp startup section",
+            :"ovf:Item" => {
+              :ovf_stopDelay => "0",
+              :ovf_stopAction => "powerOff",
+              :ovf_startDelay => "0",
+              :ovf_startAction => "powerOn",
+              :ovf_order => "0",
+              :ovf_id => vapp[:name],
+            },
+          }
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb
index d945305..f9567ca 100644
--- a/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb
@@ -79,7 +79,7 @@ module Fog
               :UserReference : :UserRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_vapp.rb b/lib/fog/vcloud_director/requests/compute/get_vapp.rb
index a94b918..231cef0 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vapp.rb
@@ -22,6 +22,154 @@ module Fog
           response
         end
       end
+
+      class Mock
+
+        def get_vapp(id)
+
+          # Retrieve a vApp or VM.
+          #
+
+          case id
+          when /^vapp-/
+            body = get_mock_vapp_body(id)
+          when /^vm-/
+            body = get_mock_vm_body(id)
+          else
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+
+        end
+
+        def get_mock_vm_body(id)
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          body = {
+            :name => vm[:name],
+            :href => make_href("vApp/#{id}"),
+            :type => "application/application/vnd.vmware.vcloud.vm+xml",
+            :status => vm[:status],
+            :deployed => vm[:deployed],
+            :needsCustomization => vm[:needs_customization],
+            :"ovf:VirtualHardwareSection" => get_vm_virtual_hardware_section_body(id, vm),
+            :"ovf:OperatingSystemSection" => get_vm_operating_system_section_body(id, vm),
+            :NetworkConnectionSection     => get_vm_network_connection_section_body(id, vm),
+            :GuestCustomizationSection    => get_vm_guest_customization_section_body(id, vm),
+            :RuntimeInfoSection           => get_vm_runtime_info_section_body(id, vm),
+            :SnapshotSection              => get_snapshot_section_body(id),
+            :DateCreated       => vm[:date_created], # eg "2014-03-16T10:52:31.874Z"
+            :VAppScopedLocalId => vm[:parent_vapp].split('-').last, # strip the vapp- prefix
+            :"ovfenv:Environment" => get_vm_ovfenv_environment_section_body(id, vm),
+            :VmCapabilities => get_vm_capabilities_section_body(id, vm),
+            :StorageProfile => get_vm_storage_profile_section_body(id, vm),
+          }
+          body
+        end
+
+        def get_mock_vapp_body(id)
+
+          unless vapp = data[:vapps][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          body = {
+            :deployed => "true",
+            :status => vapp[:status],
+            :name => vapp[:name],
+            :type => "application/vnd.vmware.vcloud.vApp+xml",
+            :href => make_href("vApp/#{id}"),
+            :LeaseSettingsSection => get_vapp_lease_settings_section_body(id),
+            :"ovf:StartupSection" => get_vapp_ovf_startup_section_body(id, vapp),
+            :"ovf:NetworkSection" => get_vapp_ovf_network_section_body(id, vapp),
+            :NetworkConfigSection => get_vapp_network_config_section_body(id, vapp),
+            :SnapshotSection      => get_snapshot_section_body(id),
+            :DateCreated => vapp[:date_created], # eg "2014-03-16T10:52:31.874Z"
+            :Owner => get_owner_section_body(id),
+            :InMaintenanceMode => "false",
+            :Children => {
+              :Vm => get_vapp_children_vms_body(id)
+            },
+          }
+          body
+        end
+
+        def get_vapp_ovf_network_section_body(id, vapp)
+          {}
+        end
+
+        def get_vapp_children_vms_body(id)
+          child_vms = data[:vms].select do |vm_id, vm_details|
+            vm_details[:parent_vapp] == id
+          end
+          if RUBY_VERSION.to_f < 1.9
+            # 1.8 Hash.select returns an Array of [k,v] pairs.
+            child_vms = Hash[child_vms]
+          end
+          child_vms.keys.collect do |vm_id|
+            get_mock_vm_body(vm_id)
+          end
+        end
+
+        def get_vm_ovfenv_environment_section_body(id, vm)
+          # TODO: I'm pretty sure this is just repeating info in other
+          # sections, and the OVF part of VMs is extremely verbose. It's
+          # likely to not be needed in Mock mode
+          {}
+        end
+
+        def get_vm_storage_profile_section_body(id, vm)
+          {
+            :type => "application/vnd.vmware.vcloud.vdcStorageProfile+xml",
+            :name => "Mock Storage Profile",
+            :href => make_href("vdcStorageProfile/12345678-1234-1234-1234-1234500e49a8"),
+          }
+        end
+
+        def get_vm_virtual_hardware_section_body(id, vm)
+
+          {:xmlns_ns12=>"http://www.vmware.com/vcloud/v1.5",
+           :ovf_transport=>"",
+           :ns12_href => make_href("vApp/#{id}/virtualHardwareSection/"),
+           :ns12_type=>"application/vnd.vmware.vcloud.virtualHardwareSection+xml",
+           :"ovf:Info"=>"Virtual hardware requirements",
+           :"ovf:System"=>{
+             :"vssd:ElementName"=>"Virtual Hardware Family",
+             :"vssd:InstanceID"=>"0",
+             :"vssd:VirtualSystemIdentifier" => vm[:name],
+             :"vssd:VirtualSystemType"=>"vmx-08"
+           },
+           :"ovf:Item" => get_vm_ovf_item_list(id, vm),
+          }
+        end
+
+        def get_vm_ovf_item_list(id, vm)
+          [
+            get_network_cards_rasd_items_list_body(id, vm),
+            get_disks_rasd_items_list_body(id, vm),
+            get_media_rasd_item_cdrom_body(id, vm),
+            get_media_rasd_item_floppy_body(id, vm),
+            get_cpu_rasd_item_body(id, vm),
+            get_memory_rasd_item_body(id, vm),
+          ].compact.flatten
+        end
+
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb b/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb
index 531c92d..d383dbf 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb
@@ -22,6 +22,63 @@ module Fog
           response
         end
       end
+
+      class Mock
+
+        def get_vapp_metadata(id)
+          unless vm_or_vapp = data[:vapps][id] || vm_or_vapp = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          body = {
+            :xmlns=>xmlns,
+            :xmlns_xsi=>xmlns_xsi,
+            :type=>"application/vnd.vmware.vcloud.metadata+xml",
+            :href=>make_href("vApp/#{id}/metadata"),
+            :xsi_schemaLocation=>xsi_schema_location,
+            :Link=>
+             [{:rel=>"up",
+               :type=>"application/vnd.vmware.vcloud.vApp+xml",
+               :href=>make_href("/vApp/#{id}")},
+              {:rel=>"add",
+               :type=>"application/vnd.vmware.vcloud.metadata+xml",
+               :href=>make_href("vApp/#{id}/metadata")}],
+            :MetadataEntry=>get_metadata_entries(vm_or_vapp[:metadata], id)
+          }
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+        end
+
+        private
+
+        def get_metadata_entries(metadata, id)
+          metadata_entries = []
+
+          for key, value in metadata do
+          metadata_entries << {:type=>"application/vnd.vmware.vcloud.metadata.value+xml",
+              :href=>make_href("vApp/#{id}/metadata/#{key}"),
+              :Link=>
+                [{:rel=>"up",
+                  :type=>"application/vnd.vmware.vcloud.metadata+xml",
+                  :href=>make_href("vApp/#{id}/metadata")},
+                 {:rel=>"edit",
+                  :type=>"application/vnd.vmware.vcloud.metadata.value+xml",
+                  :href=>make_href("vApp/#{id}/metadata/#{key}")},
+                 {:rel=>"remove",
+                  :href=>make_href("vApp/#{id}/metadata/#{key}")}],
+              :Key=>"#{key}",
+              :TypedValue=>{:xsi_type=>"MetadataStringValue", :Value=>"#{metadata[key]}"}}
+          end
+          metadata_entries
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb b/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb
index b6eac94..63dc9e3 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb
@@ -20,6 +20,39 @@ module Fog
           )
         end
       end
+
+      class Mock
+        def get_vapp_owner(id)
+
+          type = 'application/vnd.vmware.vcloud.owner+xml'
+
+          unless vapp = data[:vapps][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_owner_section_body(id)
+          )
+
+        end
+
+        def get_owner_section_body(id)
+          {
+            :type => 'application/vnd.vmware.vcloud.owner+xml',
+            :User => {
+              :type => "application/vnd.vmware.admin.user+xml",
+              :name => "mockuser",
+              :href => make_href("user/12345678-1234-1234-1234-12345678df2b"),
+            }
+          }
+        end
+
+      end
+
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb
index e150659..b696a6f 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb
@@ -79,7 +79,7 @@ module Fog
               :VAppTemplateReference : :VAppTemplateRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb
index 33814e5..6245577 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb
@@ -78,7 +78,7 @@ module Fog
               :VAppReference : :VAppRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_vdc.rb b/lib/fog/vcloud_director/requests/compute/get_vdc.rb
index 45eb3f5..3a83fcc 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vdc.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vdc.rb
@@ -110,7 +110,9 @@ module Fog
                 :Reserved=>"0",
                 :Used=>"0",
                 :Overhead=>"0"}},
-             :ResourceEntities => {},
+             :ResourceEntities => {
+               :ResourceEntity => []
+             },
              :AvailableNetworks => {},
              :Capabilities=>
               {:SupportedHardwareVersions=>
@@ -128,6 +130,13 @@ module Fog
                :href=>make_href("#{item[:type]}/#{item[:type]}-#{id}")}
             end
 
+          body[:ResourceEntities][:ResourceEntity] +=
+            get_vapps_in_this_vdc(vdc_id).map do |vapp_id, vapp|
+              {:type => "application/vnd.vmware.vcloud.vApp+xml",
+               :name => vapp[:name],
+               :href => make_href("vApp/#{vapp_id}")}
+            end
+
           body[:AvailableNetworks][:Network] =
             data[:networks].map do |id, network|
               {:type=>"application/vnd.vmware.vcloud.network+xml",
@@ -152,6 +161,13 @@ module Fog
           response.body = body
           response
         end
+
+        def get_vapps_in_this_vdc(vdc_id)
+          data[:vapps].select do |vapp_id, vapp|
+            vapp[:vdc_id] == vdc_id
+          end
+        end
+
       end
     end
   end
diff --git a/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb
index 627448e..76495e1 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb
@@ -78,7 +78,7 @@ module Fog
               :OrgVdcReference : :OrgVdcRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
diff --git a/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb b/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb
index e986c33..b3df3ba 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb
@@ -25,6 +25,37 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def get_vm_capabilities(id)
+
+          type = 'application/vnd.vmware.vcloud.vmCapabilitiesSection+xml'
+
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          Excon::Response.new(
+            :status => 200,
+            :headers => {'Content-Type' => "#{type};version=#{api_version}"},
+            :body => get_vm_capabilities_section_body(id, vm)
+          )
+
+        end
+
+        def get_vm_capabilities_section_body(id, vm)
+          {
+            :type => "application/vnd.vmware.vcloud.vmCapabilitiesSection+xml",
+            :href => make_href("vApp/#{id}/vmCapabilities/"),
+            :MemoryHotAddEnabled => "false",
+            :CpuHotAddEnabled => "false",
+          }
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb b/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb
index 1de0204..9a7c31b 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb
@@ -14,7 +14,6 @@ module Fog
             :path       => "vms/query?format=records&filter=metadata:#{key}==STRING:#{value}"
           )
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb b/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb
index 0e0733f..8dfab73 100644
--- a/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb
+++ b/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb
@@ -79,7 +79,7 @@ module Fog
               :VMReference : :VMRecord
 
           %w[firstPage previousPage nextPage lastPage].each do |rel|
-            if link = response.body[:Link].detect {|l| l[:rel] == rel}
+            if link = response.body[:Link].find {|l| l[:rel] == rel}
               href = Nokogiri::XML.fragment(link[:href])
               query = CGI.parse(URI.parse(href.text).query)
               response.body[rel.to_sym] = query['page'].first.to_i
@@ -90,6 +90,61 @@ module Fog
           response
         end
       end
+
+      class Mock
+
+        def get_vms_in_lease_from_query(options={})
+
+          if options.key?(:filter) && options[:filter] =~ /^href==([^;,]+)$/
+            href = $1
+            id = href.split('/').last
+          else
+            Fog::Mock.not_implemented("Filter by href is currently the only option implemented in get_vms_in_lease_from_query Mock")
+          end
+
+          vm = data[:vms][id]
+          parent_vapp_id = vm[:parent_vapp]
+          vdc_id = data[:vapps][parent_vapp_id][:vdc_id]
+
+          body = {
+            :xmlns=>xmlns,
+            :xmlns_xsi=>xmlns_xsi,
+            :href=>make_href('query'),
+            :name=>"vm",
+            :type=>"application/vnd.vmware.vcloud.query.records+xml",
+            :xsi_schemaLocation=>xsi_schema_location,
+            :total=>"1",
+            :pageSize=>"25",
+            :page=>"1",
+            :Link=>
+              [{:rel=>"alternate",
+                :type=>"application/vnd.vmware.vcloud.query.references+xml",
+                :href=>make_href('query')},
+               {:rel=>"alternate",
+                :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
+                :href=>make_href('query')}],
+            :VMRecord=>
+              [{:vdc=>make_href(vdc_id),
+                :numberOfCpus=>vm[:cpu_count],
+                :name=>vm[:name],
+                :containerName=>data[:vapps][parent_vapp_id][:name],
+                :memoryMB=>vm[:memory_in_mb],
+                :isVAppTemplate=>"false",
+                :href=>make_href(id),
+                :taskStatus=>"success",
+                :task=>make_href("task/#{uuid}"),
+                :taskDetails=>" ",
+                :taskStatusName=>"vappUpdateVm"}]
+          }
+
+          Excon::Response.new(
+            :status  => 200,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body    => body
+          )
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb b/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb
index 31bc57c..61cc975 100644
--- a/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb
+++ b/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb
@@ -36,8 +36,7 @@ module Fog
         def populate_uris(options = {})
           options[:vdc_id] || raise("vdc_id option is required")
           options[:vdc_uri] =  vdc_end_point(options[:vdc_id])
-          options[:network_id] || raise("network_id option is required")
-          options[:network_uri] = network_end_point(options[:network_id])
+          options[:network_uri] = network_end_point(options[:network_id]) if options[:network_id]
           options[:template_uri] = vapp_template_end_point(options[:template_id]) || raise("template_id option is required")
           options
         end
@@ -90,7 +89,6 @@ module Fog
         def endpoint
           end_point
         end
-
       end
     end
   end
diff --git a/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb b/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb
index 5257f89..ee1995d 100644
--- a/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb
@@ -12,6 +12,13 @@ module Fog
         # @param [String] source_id Object identifier of the vApp to capture.
         # @param [Hash] options
         # @option options [String] :Description Optional description.
+        # @option options [Hash] :LeaseSettingsSection
+        #   * :StorageLeaseInSeconds<~Integer> - Storage lease in seconds.
+        # @option options [Hash] :CustomizationSection
+        #   * :goldMaster<~Boolean> - True if this template is a gold master.
+        #   * :CustomizeOnInstantiate<~Boolean> - True if instantiating this
+        #     template applies customization settings. Otherwise, instantiation
+        #     creates an identical copy.
         # @return [Excon::Response]
         #   * body<~Hash>:
         #
@@ -21,6 +28,7 @@ module Fog
           body = Nokogiri::XML::Builder.new do
             attrs = {
               :xmlns => 'http://www.vmware.com/vcloud/v1.5',
+              'xmlns:ovf' => 'http://schemas.dmtf.org/ovf/envelope/1',
               :name => name
             }
             CaptureVAppParams(attrs) {
@@ -28,6 +36,22 @@ module Fog
                 Description options[:Description]
               end
               Source(:href => "#{end_point}vApp/#{source_id}")
+              if section = options[:LeaseSettingsSection]
+                LeaseSettingsSection {
+                  self['ovf'].Info 'Lease settings section'
+                  if section.key?(:StorageLeaseInSeconds)
+                    StorageLeaseInSeconds section[:StorageLeaseInSeconds]
+                  end
+                }
+              end
+              if section = options[:CustomizationSection]
+                attrs = {}
+                attrs[:goldMaster] = section[:goldMaster] if section.key?(:goldMaster)
+                CustomizationSection(attrs) {
+                  self['ovf'].Info 'VApp template customization section'
+                  CustomizeOnInstantiate section[:CustomizeOnInstantiate]
+                }
+              end
             }
           end.to_xml
 
diff --git a/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb b/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb
index 3793348..2b09c02 100644
--- a/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class VcloudDirector
       class Real
-
         require 'fog/vcloud_director/generators/compute/edge_gateway_service_configuration'
 
         # Configure edge gateway services like firewall, nat and load balancer.
@@ -32,7 +31,6 @@ module Fog
               :path => "admin/edgeGateway/#{id}/action/configureServices"
           )
         end
-
       end
 
       class Mock
@@ -43,7 +41,10 @@ module Fog
                   )
           end
 
-          owner = {:href => '', :name => nil, :type => nil} #known-bug: admin-api does not return owner.
+          owner = {
+            :href => make_href("admin/edgeGateway/#{id}"),
+            :type => 'application/vnd.vmware.vcloud.gateway+xml'
+          }
           task_id = enqueue_task(
               "Configuring edgegateway(#{id})", 'networkConfigureEdgeGatewayServices', owner,
               :on_success => lambda do
@@ -51,11 +52,14 @@ module Fog
               end
           )
 
+          task = task_body(task_id)
+          task.delete(:Owner)  # known bug - admin tasks do not return Owner
+
           body = {
               :xmlns => xmlns,
               :xmlns_xsi => xmlns_xsi,
               :xsi_schemaLocation => xsi_schema_location,
-          }.merge(task_body(task_id))
+          }.merge(task)
 
           Excon::Response.new(
               :status => 202,
@@ -67,4 +71,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb b/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb
new file mode 100644
index 0000000..370775b
--- /dev/null
+++ b/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb
@@ -0,0 +1,56 @@
+module Fog
+  module Compute
+    class VcloudDirector
+      class Real
+        # Add an item to a catalog.
+        #
+        # @param [String] id Object identifier of the catalog.
+        # @param [String] name The name of the entity.
+        # @param [Hash] entity A reference to a VAppTemplate or Media object.
+        #   * href<~String> - Contains the URI to the entity.
+        # @param [Hash] options
+        # @option options [String] :operationKey Optional unique identifier to
+        #   support idempotent semantics for create and delete operations.
+        # @option options [String] :Description Optional description.
+        # @return [Excon::Response]
+        #   * body<~Hash>:
+        #
+        # @raise Fog::Compute::VcloudDirector::DuplicateName
+        #
+        # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateCatalogItem.html
+        # @since vCloud API version 0.9
+        def post_create_catalog_item(id, name, entity, options={})
+          body = Nokogiri::XML::Builder.new do
+            attrs = {
+              :xmlns => 'http://www.vmware.com/vcloud/v1.5',
+              :name => name,
+            }
+            attrs[:operationKey] = options[:operationKey] if options.key?(:operationKey)
+            CatalogItem(attrs) {
+              if options.key?(:Description)
+                Description options[:Description]
+              end
+              Entity(entity)
+            }
+          end.to_xml
+
+          begin
+            request(
+              :body    => body,
+              :expects => 201,
+              :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.catalogItem+xml'},
+              :method  => 'POST',
+              :parser  => Fog::ToHashDocument.new,
+              :path    => "catalog/#{id}/catalogItems"
+            )
+          rescue Fog::Compute::VcloudDirector::BadRequest => e
+            if e.minor_error_code == 'DUPLICATE_NAME'
+              raise Fog::Compute::VcloudDirector::DuplicateName.new(e.message)
+            end
+            raise
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb b/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb
index 2228a7e..99dc189 100644
--- a/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class VcloudDirector
       class Real
-
         require 'fog/vcloud_director/generators/compute/org_vdc_network'
 
         # Create an Org vDC network.
@@ -52,7 +51,6 @@ module Fog
         # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateOrgVdcNetwork.html
         # @since vCloud API version 5.1
         def post_create_org_vdc_network(vdc_id, name, options={})
-
           body = Fog::Generators::Compute::VcloudDirector::OrgVdcNetwork.new(options.merge(:name => name)).generate_xml
 
           request(
@@ -63,12 +61,10 @@ module Fog
             :parser  => Fog::ToHashDocument.new,
             :path    => "admin/vdc/#{vdc_id}/networks"
           )
-
         end
       end
 
       class Mock
-
         def post_create_org_vdc_network(vdc_id, name, options={})
           unless data[:vdcs][vdc_id]
             raise Fog::Compute::VcloudDirector::Forbidden.new(
@@ -168,7 +164,6 @@ module Fog
             :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
             :body => body
           )
-
         end
       end
     end
diff --git a/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb b/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb
index 257bd29..49bbde7 100644
--- a/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb
@@ -30,9 +30,9 @@ module Fog
             attrs = {
               :xmlns => 'http://www.vmware.com/vcloud/v1.5'
             }
-            attr[:deploymentLeaseSeconds] = options[:deploymentLeaseSeconds] if options.key?(:deploymentLeaseSeconds)
-            attr[:forceCustomization] = options[:forceCustomization] if options.key?(:forceCustomization)
-            attr[:powerOn] = options[:powerOn] if options.key?(:powerOn)
+            attrs[:deploymentLeaseSeconds] = options[:deploymentLeaseSeconds] if options.key?(:deploymentLeaseSeconds)
+            attrs[:forceCustomization] = options[:forceCustomization] if options.key?(:forceCustomization)
+            attrs[:powerOn] = options[:powerOn] if options.key?(:powerOn)
             DeployVAppParams(attrs)
           end.to_xml
 
diff --git a/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb b/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb
index 6eac236..9cce175 100644
--- a/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb
@@ -128,6 +128,69 @@ module Fog
           end
         end
       end
+
+      class Mock
+
+        def post_instantiate_vapp_template(vdc_id, vapp_template_id, name, options={})
+          unless data[:vdcs][vdc_id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              "No access to entity \"(com.vmware.vcloud.entity.vdc:#{vdc_id})\"."
+            )
+          end
+
+          type = 'vApp'
+          vapp_id = "vapp-#{uuid}"
+          vm_id = "vm-#{uuid}"
+
+          data[:vapps][vapp_id] = {
+            :name => name,
+            :vdc_id => vdc_id,
+            :description => options.fetch(:description, "vApp created from #{vapp_template_id}"),
+            :networks => [],
+            :metadata => {:'vapp_key' => 'vapp_value'},
+            :status => "0",
+          }
+
+          data[:vms][vm_id] = {
+            :name => 'vm-template-name',
+            :parent_vapp => vapp_id,
+            :memory_in_mb => "1024",
+            :cpu_count => "2",
+            :metadata => {:'vm_key' => 'vm_value'},
+            :nics => [
+              {
+              :network_name => 'Default Network',
+              :mac_address => "00:50:56:00:00:00",
+              :ip_address => "192.168.0.1",
+              }
+            ],
+          }
+
+          owner = {
+            :href => make_href("#{type}/#{vapp_id}"),
+            :type => "application/vnd.vmware.vcloud.#{type}+xml"
+          }
+          task_id = enqueue_task(
+            "Creating Virtual Application #{name}(#{vapp_id})", 'vdcInstantiateVapp', owner,
+            :on_success => lambda do
+              data[:vapps][vapp_id][:status] = "8"
+            end
+          )
+
+          body = get_vapp(vapp_id).body
+
+          body[:Tasks] = {
+            :Task => task_body(task_id)
+          }
+
+          Excon::Response.new(
+            :status => 201,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb b/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb
index 154bfb4..6065b01 100644
--- a/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb
@@ -111,7 +111,7 @@ module Fog
             :status => 0,
             :tasks => [task_id],
             :vdc_id => id,
-            :vdc_storage_class => data[:vdc_storage_classes].detect {|k,v| v[:default]}.first
+            :vdc_storage_class => data[:vdc_storage_classes].find {|k,v| v[:default]}.first
           }
           data[:disks][disk_id] = disk
 
diff --git a/lib/fog/vcloud_director/requests/compute/post_upload_media.rb b/lib/fog/vcloud_director/requests/compute/post_upload_media.rb
index 7b046fb..3baac04 100644
--- a/lib/fog/vcloud_director/requests/compute/post_upload_media.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_upload_media.rb
@@ -98,7 +98,7 @@ module Fog
             :status => 0,
             :tasks => [task_id],
             :vdc_id => vdc_id,
-            :vdc_storage_class => data[:vdc_storage_classes].detect {|k,v| v[:default]}.first
+            :vdc_storage_class => data[:vdc_storage_classes].find {|k,v| v[:default]}.first
           }
           data[:medias][media_id] = media
 
diff --git a/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb b/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb
index f980d10..96771ee 100644
--- a/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb
+++ b/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb
@@ -34,7 +34,7 @@ module Fog
           request(
             :body    => body,
             :expects => 201,
-            :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.vAppTemplateParams+xml'},
+            :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml'},
             :method  => 'POST',
             :parser  => Fog::ToHashDocument.new,
             :path    => "vdc/#{vdc_id}/action/uploadVAppTemplate"
diff --git a/lib/fog/vcloud_director/requests/compute/put_cpu.rb b/lib/fog/vcloud_director/requests/compute/put_cpu.rb
index aefea28..23fdcf9 100644
--- a/lib/fog/vcloud_director/requests/compute/put_cpu.rb
+++ b/lib/fog/vcloud_director/requests/compute/put_cpu.rb
@@ -19,7 +19,14 @@ module Fog
         # @since vCloud API version 0.9
         def put_cpu(id, num_cpus)
           data = <<EOF
-          <Item xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns12="http://www.vmware.com/vcloud/v1.5" ns12:href="#{end_point}vApp/#{id}/virtualHardwareSection/cpu" ns12:type="application/vnd.vmware.vcloud.rasdItem+xml" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://10.194.1.65/api/v1.5/schema/master.xsd http://schemas.dmtf [...]
+          <Item 
+            xmlns="http://www.vmware.com/vcloud/v1.5" 
+            xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" 
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+            xmlns:ns12="http://www.vmware.com/vcloud/v1.5" 
+            ns12:href="#{end_point}vApp/#{id}/virtualHardwareSection/cpu" 
+            ns12:type="application/vnd.vmware.vcloud.rasdItem+xml" 
+            xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 #{end_point}v1.5/schema/master.xsd http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_ResourceAllocationSettingData.xsd">
             <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
             <rasd:Description>Number of Virtual CPUs</rasd:Description>
             <rasd:ElementName>#{num_cpus} virtual CPU(s)</rasd:ElementName>
@@ -42,6 +49,40 @@ EOF
           )
         end
       end
+
+      class Mock
+
+        def put_cpu(id, num_cpus)
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          owner = {
+            :href => make_href("vApp/#{id}"),
+            :type => 'application/vnd.vmware.vcloud.vm+xml'
+          }
+          task_id = enqueue_task(
+            "Updating Virtual Machine #{data[:vms][id][:name]}(#{id})", 'vappUpdateVm', owner,
+            :on_success => lambda do
+              data[:vms][id][:cpu_count] = num_cpus
+            end
+          )
+          body = {
+            :xmlns => xmlns,
+            :xmlns_xsi => xmlns_xsi,
+            :xsi_schemaLocation => xsi_schema_location,
+          }.merge(task_body(task_id))
+
+          Excon::Response.new(
+            :status => 202,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/put_memory.rb b/lib/fog/vcloud_director/requests/compute/put_memory.rb
index ef19292..4ef42b5 100644
--- a/lib/fog/vcloud_director/requests/compute/put_memory.rb
+++ b/lib/fog/vcloud_director/requests/compute/put_memory.rb
@@ -19,7 +19,14 @@ module Fog
         # @since vCloud API version 0.9
         def put_memory(id, memory)
           data = <<EOF
-          <Item xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns12="http://www.vmware.com/vcloud/v1.5" ns12:href="#{end_point}vApp/#{id}/virtualHardwareSection/memory" ns12:type="application/vnd.vmware.vcloud.rasdItem+xml" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://10.194.1.65/api/v1.5/schema/master.xsd http://schemas.d [...]
+          <Item 
+            xmlns="http://www.vmware.com/vcloud/v1.5" 
+            xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" 
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+            xmlns:ns12="http://www.vmware.com/vcloud/v1.5" 
+            ns12:href="#{end_point}vApp/#{id}/virtualHardwareSection/memory" 
+            ns12:type="application/vnd.vmware.vcloud.rasdItem+xml" 
+            xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 #{end_point}v1.5/schema/master.xsd http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_ResourceAllocationSettingData.xsd">
             <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
             <rasd:Description>Memory Size</rasd:Description>
             <rasd:ElementName>#{memory} MB of memory</rasd:ElementName>
@@ -42,6 +49,41 @@ EOF
           )
         end
       end
+
+      class Mock
+
+        def put_memory(id, memory)
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          owner = {
+            :href => make_href("vApp/#{id}"),
+            :type => 'application/vnd.vmware.vcloud.vm+xml'
+          }
+          task_id = enqueue_task(
+            "Updating Virtual Machine #{data[:vms][id][:name]}(#{id})", 'vappUpdateVm', owner,
+            :on_success => lambda do
+              data[:vms][id][:memory_in_mb] = memory
+            end
+          )
+          body = {
+            :xmlns => xmlns,
+            :xmlns_xsi => xmlns_xsi,
+            :xsi_schemaLocation => xsi_schema_location,
+          }.merge(task_body(task_id))
+
+          Excon::Response.new(
+            :status => 202,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/put_network.rb b/lib/fog/vcloud_director/requests/compute/put_network.rb
new file mode 100644
index 0000000..cb32c33
--- /dev/null
+++ b/lib/fog/vcloud_director/requests/compute/put_network.rb
@@ -0,0 +1,162 @@
+module Fog
+  module Compute
+    class VcloudDirector
+      class Real
+        require 'fog/vcloud_director/generators/compute/org_vdc_network'
+
+        # Update an Org vDC network.
+        #
+        # This operation is asynchronous and returns a task that you can
+        # monitor to track the progress of the request.
+        #
+        # Produce media type(s):
+        # application/vnd.vmware.vcloud.orgVdcNetwork+xml
+        # Output type:
+        # TaskType
+        #
+        # @param [String] id Object identifier of the network
+        # @param [String] name   The name of the entity.
+        # @param [Hash] options
+        # @option options [String] :Description Optional description.
+        # @option options [Hash] :Configuration Network configuration.
+        # @option options [Hash] :EdgeGateway  EdgeGateway that connects this
+        #   Org vDC network. Applicable only for routed networks.
+        # @option options [Hash] :ServiceConfig Specifies the service
+        #   configuration for an isolated Org vDC networks.
+        # @option options [Boolean] :IsShared True if this network is shared
+        #   to multiple Org vDCs.
+        #   * :Configuration<~Hash>: NetworkConfigurationType
+        #     * :IpScopes<~Hash>:
+        #       * :IpScope<~Hash>:
+        #         * :IsInherited<~Boolean>: ?
+        #         * :Gateway<~String>: IP address of gw
+        #         * :Netmask<~String>: Subnet mask of network
+        #         * :Dns1<~String>: Primary DNS server.
+        #         * :Dns2<~String>: Secondary DNS server.
+        #         * :DnsSuffix<~String>: DNS suffix.
+        #         * :IsEnabled<~String>: Indicates if subnet is enabled or not.
+        #                                Default value is True.
+        #         * :IpRanges<~Array>: IP ranges used for static pool allocation
+        #                             in the network. Array of Hashes of:
+        #                               * :StartAddress - start IP in range
+        #                               * :EndAddress - end IP in range
+        #   * :EdgeGateway<~Hash>: EdgeGateway that connects this Org vDC
+        #                          network. Applicable only for routed networks.
+        #   * :ServiceConfig<~Hash>: Specifies the service configuration for an
+        #                            isolated network
+        #
+        # @return [Excon::Response]
+        #   * body<~Hash>:
+        #
+        # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateOrgVdcNetwork.html
+        # @since vCloud API version 5.1
+        def put_network(id, name, options={})
+          body = Fog::Generators::Compute::VcloudDirector::OrgVdcNetwork.new(options.merge(:name => name)).generate_xml
+
+          request(
+            :body    => body,
+            :expects => 202,
+            :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.orgVdcNetwork+xml'},
+            :method  => 'PUT',
+            :parser  => Fog::ToHashDocument.new,
+            :path    => "admin/network/#{id}"
+          )
+        end
+      end
+
+      class Mock
+        def put_network(id, name, options={})
+          original_network = data[:networks][id]
+          unless original_network
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              "No access to entity \"(com.vmware.vcloud.entity.orgVdcNetwork:#{id})\"."
+            )
+          end
+
+          type = 'network'
+
+          # Description
+          # Configuration
+          #   IpScopes
+          #     IpScope
+          #       IsInherited
+          #       Gateway
+          #       Netmask
+          #       Dns1
+          #       Dns2
+          #       DnsSuffix
+          #       IsEnabled
+          #       IpRanges
+          #         IpRange
+          #           StartAddress
+          #           EndAddress
+          #   FenceMode
+          # EdgeGateway
+          # IsShared
+          #
+          vdc_id = original_network[:vdc],
+
+          network_body = {
+            :name => name,
+            :vdc  => vdc_id,
+          }
+
+          [:Description, :IsShared].each do |key|
+            network_body[key] = options[key] if options.key?(key)
+          end
+
+          if options.key?(:EdgeGateway)
+            network_body[:EdgeGateway] =
+              options[:EdgeGateway][:href].split('/').last
+          end
+
+          if configuration = options[:Configuration]
+            if ip_scopes = configuration[:IpScopes]
+              if ip_scope = ip_scopes[:IpScope]
+                [:IsInherited, :Gateway, :Netmask,
+                  :Dns1, :Dns2, :DnsSuffix, :IsEnabled].each do |key|
+                    network_body[key] = ip_scope[key] if ip_scope.key?(key)
+                end
+                if ip_ranges = ip_scope[:IpRanges]
+                  network_body[:IpRanges] = []
+                  ip_ranges.each do |ipr|
+                    network_body[:IpRanges] << {
+                      :StartAddress => ipr[:IpRange][:StartAddress],
+                      :EndAddress   => ipr[:IpRange][:EndAddress]
+                    }
+                  end
+                end
+              end
+            end
+            network_body[:FenceMode] = configuration[:FenceMode] if ip_scope.key?(:FenceMode)
+          end
+
+          owner = {
+            :href => make_href("#{type}/#{id}"),
+            :type => "application/vnd.vmware.vcloud.#{type}+xml"
+          }
+          task_id = enqueue_task(
+            "Updating #{type} #{name} (#{id})", 'networkUpdateNetwork', owner,
+            :on_success => lambda do
+              data[:networks][id] = network_body
+            end
+          )
+          task = task_body(task_id)
+          task.delete(:Owner) #known-bug: admin-api does not return owner.
+          body = {
+              :xmlns => xmlns,
+              :xmlns_xsi => xmlns_xsi,
+              :xsi_schemaLocation => xsi_schema_location,
+          }.merge(task)
+
+          Excon::Response.new(
+            :status => 202,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/vcloud_director/requests/compute/put_product_sections.rb b/lib/fog/vcloud_director/requests/compute/put_product_sections.rb
new file mode 100644
index 0000000..ba6acfb
--- /dev/null
+++ b/lib/fog/vcloud_director/requests/compute/put_product_sections.rb
@@ -0,0 +1,43 @@
+module Fog
+  module Compute
+    class VcloudDirector
+      class Real
+        # Set the value for the specified metadata key to the value provided,
+        # overwriting any existing value.
+        #
+        # @param [String] id Object identifier of the vApp
+        # @param [Array]  sections List of sections hashes
+        # @return [Excon::Response]
+        #   * body<~Hash>:
+        #
+        # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.doc_51/GUID-E13A5613-8A41-46E3-889B-8E1EAF10ABBE.html
+        # @since vCloud API version 1.5
+        def put_product_sections(id, sections)
+          xml  = '<ProductSectionList xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1">'
+          xml += '<ovf:ProductSection>'
+          xml += '<ovf:Info>Global vApp Custom Properties</ovf:Info>'
+          xml += '<ovf:Category>Global</ovf:Category>'
+
+          sections.each do |section|
+            section[:user_configurable] ||= true
+            section[:type]              ||= "string"
+            section[:password]          ||= false
+            xml += "<ovf:Property ovf:userConfigurable='#{section[:user_configurable]}' ovf:type='#{section[:type]}' ovf:password='#{section[:password]}' ovf:key='#{section[:id]}' ovf:value='#{section[:value]}'/>"
+          end
+
+          xml += '</ovf:ProductSection>'
+          xml += "</ProductSectionList>"
+
+          request(
+            :body    => xml,
+            :expects => 202,
+            :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.productSections+xml'},
+            :method  => 'PUT',
+            :parser  => Fog::ToHashDocument.new,
+            :path    => "vApp/#{id}/productSections"
+          )
+        end
+      end
+    end
+  end
+end
diff --git a/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb b/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb
index 65b665b..08f3bc9 100644
--- a/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb
+++ b/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb
@@ -45,6 +45,41 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def put_vapp_metadata_item_metadata(id, key, value)
+          unless vm_or_vapp = data[:vapps][id] || vm_or_vapp = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          owner = {
+            :href => make_href("vApp/#{id}"),
+            :type => 'application/vnd.vmware.vcloud.vm+xml'
+          }
+          task_id = enqueue_task(
+            "Updating Virtual Machine #{vm_or_vapp[:name]}(#{id})", 'vappUpdateVm', owner,
+            :on_success => lambda do
+              vm_or_vapp[:metadata][key] = value
+            end
+          )
+          body = {
+            :xmlns => xmlns,
+            :xmlns_xsi => xmlns_xsi,
+            :xsi_schemaLocation => xsi_schema_location,
+          }.merge(task_body(task_id))
+
+          Excon::Response.new(
+            :status => 202,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb b/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb
index a7110cf..95afd37 100644
--- a/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb
+++ b/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class VcloudDirector
       class Real
-
         require 'fog/vcloud_director/generators/compute/vapp'
 
         # Modify the name or description of a vApp.
diff --git a/lib/fog/vcloud_director/requests/compute/put_vm.rb b/lib/fog/vcloud_director/requests/compute/put_vm.rb
index 11bfaa4..19ee495 100644
--- a/lib/fog/vcloud_director/requests/compute/put_vm.rb
+++ b/lib/fog/vcloud_director/requests/compute/put_vm.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class VcloudDirector
       class Real
-
         require 'fog/vcloud_director/generators/compute/vm'
 
         # Update the name, description and storage profile for VM.
@@ -34,6 +33,40 @@ module Fog
           )
         end
       end
+
+      class Mock
+
+        def put_vm(id, name, options)
+          unless vm = data[:vms][id]
+            raise Fog::Compute::VcloudDirector::Forbidden.new(
+              'This operation is denied.'
+            )
+          end
+
+          owner = {
+            :href => make_href("vApp/#{id}"),
+            :type => 'application/vnd.vmware.vcloud.vm+xml'
+          }
+          task_id = enqueue_task(
+            "Updating Virtual Machine #{data[:vms][id][:name]}(#{id})", 'vappUpdateVm', owner,
+              :on_success => lambda do
+                data[:vms][id][:name] = name
+            end
+          )
+          body = {
+            :xmlns => xmlns,
+            :xmlns_xsi => xmlns_xsi,
+            :xsi_schemaLocation => xsi_schema_location,
+          }.merge(task_body(task_id))
+
+          Excon::Response.new(
+            :status => 202,
+            :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
+            :body => body
+          )
+        end
+
+      end
     end
   end
 end
diff --git a/lib/fog/version.rb b/lib/fog/version.rb
index b6c2aa7..e9d4f2d 100644
--- a/lib/fog/version.rb
+++ b/lib/fog/version.rb
@@ -1,3 +1,3 @@
 module Fog
-  VERSION = '1.22.0'
+  VERSION = '1.24.0'
 end
diff --git a/lib/fog/vmfusion/compute.rb b/lib/fog/vmfusion/compute.rb
index 1a7d7ee..b21436c 100644
--- a/lib/fog/vmfusion/compute.rb
+++ b/lib/fog/vmfusion/compute.rb
@@ -3,21 +3,17 @@ require 'fog/vmfusion/core'
 module Fog
   module Compute
     class Vmfusion < Fog::Service
-
       model_path 'fog/vmfusion/models/compute'
       model       :server
       collection  :servers
 
       class Mock
-
         def initialize(options={})
           Fog::Mock.not_implemented
         end
-
       end
 
       class Real
-
         def initialize(options={})
           begin
             require 'fission'
@@ -26,7 +22,6 @@ module Fog
             raise e.message
           end
         end
-
       end
     end
   end
diff --git a/lib/fog/vmfusion/core.rb b/lib/fog/vmfusion/core.rb
index 49778d7..2deafe9 100644
--- a/lib/fog/vmfusion/core.rb
+++ b/lib/fog/vmfusion/core.rb
@@ -2,10 +2,8 @@ require 'fog/core'
 
 module Fog
   module Vmfusion
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
-
   end
 end
diff --git a/lib/fog/vmfusion/models/compute/server.rb b/lib/fog/vmfusion/models/compute/server.rb
index 0e3c6d2..b0b7869 100644
--- a/lib/fog/vmfusion/models/compute/server.rb
+++ b/lib/fog/vmfusion/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Vmfusion
-
       class Server < Fog::Compute::Server
-
         identity :name
 
         attribute :ipaddress
diff --git a/lib/fog/vmfusion/models/compute/servers.rb b/lib/fog/vmfusion/models/compute/servers.rb
index d8450ca..d0b0a66 100644
--- a/lib/fog/vmfusion/models/compute/servers.rb
+++ b/lib/fog/vmfusion/models/compute/servers.rb
@@ -4,19 +4,16 @@ require 'fog/vmfusion/models/compute/server'
 module Fog
   module Compute
     class Vmfusion
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Vmfusion::Server
 
         def all(filter = nil)
-
           data = []
 
           states = ::Fission::VM.all_with_status.data
 
           filter = {} if filter.nil?
-          unless filter.has_key?(:name)
+          unless filter.key?(:name)
             vms=::Fission::VM.all.data
             vms.each do |vm|
               data << { :raw =>  { :fission => vm,
@@ -28,13 +25,11 @@ module Fog
           end
 
           load(data)
-
         end
 
         def get(name)
           self.all(:name => name).first
         end
-
       end
     end
   end
diff --git a/lib/fog/voxel/compute.rb b/lib/fog/voxel/compute.rb
index d68f959..2224dc1 100644
--- a/lib/fog/voxel/compute.rb
+++ b/lib/fog/voxel/compute.rb
@@ -3,7 +3,6 @@ require 'fog/voxel/core'
 module Fog
   module Compute
     class Voxel < Fog::Service
-
       requires :voxel_api_key, :voxel_api_secret
       recognizes :host, :port, :scheme, :persistent
 
@@ -65,7 +64,6 @@ module Fog
         def reset_data
           self.class.data.delete(@voxel_api_key)
         end
-
       end
 
       class Real
diff --git a/lib/fog/voxel/core.rb b/lib/fog/voxel/core.rb
index f99d18e..b9960fc 100644
--- a/lib/fog/voxel/core.rb
+++ b/lib/fog/voxel/core.rb
@@ -4,7 +4,6 @@ require 'digest/md5'
 
 module Fog
   module Voxel
-
     extend Fog::Provider
 
     service(:compute, 'Compute')
diff --git a/lib/fog/voxel/models/compute/image.rb b/lib/fog/voxel/models/compute/image.rb
index a07024e..b4b9d10 100644
--- a/lib/fog/voxel/models/compute/image.rb
+++ b/lib/fog/voxel/models/compute/image.rb
@@ -4,11 +4,9 @@ module Fog
   module Compute
     class Voxel
       class Image < Fog::Model
-
         identity :id
 
         attribute :summary
-
       end
     end
   end
diff --git a/lib/fog/voxel/models/compute/images.rb b/lib/fog/voxel/models/compute/images.rb
index 8eaa3fa..50d8014 100644
--- a/lib/fog/voxel/models/compute/images.rb
+++ b/lib/fog/voxel/models/compute/images.rb
@@ -4,9 +4,7 @@ require 'fog/voxel/models/compute/image'
 module Fog
   module Compute
     class Voxel
-
       class Images < Fog::Collection
-
         model Fog::Compute::Voxel::Image
 
         def all
@@ -24,7 +22,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/models/compute/server.rb b/lib/fog/voxel/models/compute/server.rb
index c55d1e5..fe460d7 100644
--- a/lib/fog/voxel/models/compute/server.rb
+++ b/lib/fog/voxel/models/compute/server.rb
@@ -3,9 +3,7 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Voxel
-
       class Server < Fog::Compute::Server
-
         identity :id
 
         attribute :name
@@ -69,10 +67,7 @@ module Fog
 
           true
         end
-
       end
-
     end
-
   end
 end
diff --git a/lib/fog/voxel/models/compute/servers.rb b/lib/fog/voxel/models/compute/servers.rb
index f2cefa8..cc61962 100644
--- a/lib/fog/voxel/models/compute/servers.rb
+++ b/lib/fog/voxel/models/compute/servers.rb
@@ -5,7 +5,6 @@ module Fog
   module Compute
     class Voxel
       class Servers < Fog::Collection
-
         model Fog::Compute::Voxel::Server
 
         def all
@@ -24,9 +23,7 @@ module Fog
             raise error
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/parsers/compute/basic.rb b/lib/fog/voxel/parsers/compute/basic.rb
index 9bdbc47..455cfb6 100644
--- a/lib/fog/voxel/parsers/compute/basic.rb
+++ b/lib/fog/voxel/parsers/compute/basic.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module Voxel
-
         class Basic < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -22,9 +20,7 @@ module Fog
               @response['stat'] = attr_value('stat', attrs)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/voxel/parsers/compute/devices_list.rb b/lib/fog/voxel/parsers/compute/devices_list.rb
index 4f45e80..986e303 100644
--- a/lib/fog/voxel/parsers/compute/devices_list.rb
+++ b/lib/fog/voxel/parsers/compute/devices_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module Voxel
-
         class DevicesList < Fog::Parsers::Base
-
           def reset
             @device          = {}
             @response        = { 'devices' => [] }
@@ -102,9 +100,7 @@ module Fog
               @access_method[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/voxel/parsers/compute/images_list.rb b/lib/fog/voxel/parsers/compute/images_list.rb
index 9501e78..7f95eb6 100644
--- a/lib/fog/voxel/parsers/compute/images_list.rb
+++ b/lib/fog/voxel/parsers/compute/images_list.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module Voxel
-
         class ImagesList < Fog::Parsers::Base
-
           def reset
             @image = {}
             @response = { 'images' => [] }
@@ -50,9 +48,7 @@ module Fog
               @image['filesystem'][name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/voxel/parsers/compute/voxcloud_create.rb b/lib/fog/voxel/parsers/compute/voxcloud_create.rb
index 12da265..3f4579d 100644
--- a/lib/fog/voxel/parsers/compute/voxcloud_create.rb
+++ b/lib/fog/voxel/parsers/compute/voxcloud_create.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module Voxel
-
         class VoxcloudCreate < Fog::Parsers::Base
-
           def reset
             @response = { 'device' => {} }
           end
@@ -31,9 +29,7 @@ module Fog
               @response['device'][name] = Time.at(value.to_i)
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/voxel/parsers/compute/voxcloud_delete.rb b/lib/fog/voxel/parsers/compute/voxcloud_delete.rb
index ad41dc6..f3ceb1f 100644
--- a/lib/fog/voxel/parsers/compute/voxcloud_delete.rb
+++ b/lib/fog/voxel/parsers/compute/voxcloud_delete.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module Compute
       module Voxel
-
         class VoxcloudDelete < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -22,9 +20,7 @@ module Fog
               }
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/voxel/requests/compute/devices_list.rb b/lib/fog/voxel/requests/compute/devices_list.rb
index 259d453..e27a6b6 100644
--- a/lib/fog/voxel/requests/compute/devices_list.rb
+++ b/lib/fog/voxel/requests/compute/devices_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Voxel
       class Real
-
         require 'fog/voxel/parsers/compute/devices_list'
 
         def devices_list(device_id = nil)
@@ -18,7 +17,6 @@ module Fog
           request("voxel.devices.list", options)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/requests/compute/devices_power.rb b/lib/fog/voxel/requests/compute/devices_power.rb
index 8ea1aae..00591c9 100644
--- a/lib/fog/voxel/requests/compute/devices_power.rb
+++ b/lib/fog/voxel/requests/compute/devices_power.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Voxel
       class Real
-
         require 'fog/voxel/parsers/compute/basic'
 
         def devices_power(device_id, power_action)
@@ -16,7 +15,6 @@ module Fog
           request("voxel.devices.power", options)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/requests/compute/images_list.rb b/lib/fog/voxel/requests/compute/images_list.rb
index 1bd644f..a596d9b 100644
--- a/lib/fog/voxel/requests/compute/images_list.rb
+++ b/lib/fog/voxel/requests/compute/images_list.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Voxel
       class Real
-
         require 'fog/voxel/parsers/compute/images_list'
 
         def images_list(image_id = nil)
@@ -25,7 +24,6 @@ module Fog
           end
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/requests/compute/voxcloud_create.rb b/lib/fog/voxel/requests/compute/voxcloud_create.rb
index b1e58d7..aa898d2 100644
--- a/lib/fog/voxel/requests/compute/voxcloud_create.rb
+++ b/lib/fog/voxel/requests/compute/voxcloud_create.rb
@@ -2,13 +2,12 @@ module Fog
   module Compute
     class Voxel
       class Real
-
         require 'fog/voxel/parsers/compute/voxcloud_create'
 
         def voxcloud_create(options)
           options[:parser] = Fog::Parsers::Compute::Voxel::VoxcloudCreate.new
 
-          if options.has_key?(:password)
+          if options.key?(:password)
             options[:admin_password] = options[:password]
             options.delete(:password)
           end
@@ -16,7 +15,6 @@ module Fog
           request("voxel.voxcloud.create", options)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/requests/compute/voxcloud_delete.rb b/lib/fog/voxel/requests/compute/voxcloud_delete.rb
index 58c94dd..c3d49aa 100644
--- a/lib/fog/voxel/requests/compute/voxcloud_delete.rb
+++ b/lib/fog/voxel/requests/compute/voxcloud_delete.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Voxel
       class Real
-
         require 'fog/voxel/parsers/compute/voxcloud_delete'
 
         def voxcloud_delete(device_id)
@@ -14,7 +13,6 @@ module Fog
           request("voxel.voxcloud.delete", options)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/voxel/requests/compute/voxcloud_status.rb b/lib/fog/voxel/requests/compute/voxcloud_status.rb
index ecea33a..a23ccee 100644
--- a/lib/fog/voxel/requests/compute/voxcloud_status.rb
+++ b/lib/fog/voxel/requests/compute/voxcloud_status.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Voxel
       class Real
-
         require 'fog/voxel/parsers/compute/voxcloud_status'
 
         def voxcloud_status(device_id = nil)
@@ -17,7 +16,6 @@ module Fog
 
           request("voxel.voxcloud.status", options)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/compute.rb b/lib/fog/vsphere/compute.rb
index 9598cfc..ae21b29 100644
--- a/lib/fog/vsphere/compute.rb
+++ b/lib/fog/vsphere/compute.rb
@@ -4,7 +4,6 @@ require 'digest/sha2'
 module Fog
   module Compute
     class Vsphere < Fog::Service
-
       requires :vsphere_username, :vsphere_password, :vsphere_server
       recognizes :vsphere_port, :vsphere_path, :vsphere_ns
       recognizes :vsphere_rev, :vsphere_ssl, :vsphere_expected_pubkey_hash
@@ -84,7 +83,6 @@ module Fog
       request :set_vm_customvalue
 
       module Shared
-
         attr_reader :vsphere_is_vcenter
         attr_reader :vsphere_rev
         attr_reader :vsphere_server
@@ -111,6 +109,7 @@ module Fog
           :corespersocket   => 'config.hardware.numCoresPerSocket',
           :overall_status => 'overallStatus',
           :guest_id => 'config.guestId',
+          :hardware_version => 'config.version',
         }
 
         def convert_vm_view_to_attr_hash(vms)
@@ -155,7 +154,6 @@ module Fog
             attrs['mac_addresses'] = Proc.new {vm_mob_ref.macs rescue nil}
             # Rescue nil to catch testing while vm_mob_ref isn't reaL??
             attrs['path'] = "/"+attrs['parent'].path.map(&:last).join('/') rescue nil
-            attrs['relative_path'] = (attrs['path'].split('/').reject {|e| e.empty?} - ["Datacenters", attrs['datacenter'], "vm"]).join("/") rescue nil
           end
         end
         # returns the parent object based on a type
@@ -186,11 +184,9 @@ module Fog
         def is_uuid?(id)
           !(id =~ /[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/).nil?
         end
-
       end
 
       class Mock
-
         include Shared
 
         def self.data
@@ -333,7 +329,6 @@ module Fog
       end
 
       class Real
-
         include Shared
 
         def initialize(options={})
@@ -418,9 +413,7 @@ module Fog
             raise Fog::Vsphere::Errors::SecurityError, "The remote system presented a public key with hash #{pubkey_hash} but we're expecting a hash of #{expected_pubkey_hash || '<unset>'}.  If you are sure the remote system is authentic set vsphere_expected_pubkey_hash: <the hash printed in this message> in ~/.fog"
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/core.rb b/lib/fog/vsphere/core.rb
index 82c7b2a..cb718af 100644
--- a/lib/fog/vsphere/core.rb
+++ b/lib/fog/vsphere/core.rb
@@ -2,7 +2,6 @@ require 'fog/core'
 
 module Fog
   module Vsphere
-
     extend Fog::Provider
 
     module Errors
diff --git a/lib/fog/vsphere/models/compute/cluster.rb b/lib/fog/vsphere/models/compute/cluster.rb
index d79d335..ed6a568 100644
--- a/lib/fog/vsphere/models/compute/cluster.rb
+++ b/lib/fog/vsphere/models/compute/cluster.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Cluster < Fog::Model
-
         identity :id
 
         attribute :name
@@ -23,9 +21,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/clusters.rb b/lib/fog/vsphere/models/compute/clusters.rb
index c78d94b..440b47a 100644
--- a/lib/fog/vsphere/models/compute/clusters.rb
+++ b/lib/fog/vsphere/models/compute/clusters.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/cluster'
 module Fog
   module Compute
     class Vsphere
-
       class Clusters < Fog::Collection
-
         model Fog::Compute::Vsphere::Cluster
         attr_accessor :datacenter
 
@@ -19,7 +17,6 @@ module Fog
           requires :datacenter
           new service.get_cluster(id, datacenter)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/customfield.rb b/lib/fog/vsphere/models/compute/customfield.rb
index f757a00..83bde14 100644
--- a/lib/fog/vsphere/models/compute/customfield.rb
+++ b/lib/fog/vsphere/models/compute/customfield.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Customfield < Fog::Model
-
         identity :key
 
         attribute :name
@@ -13,7 +11,6 @@ module Fog
           name
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/customfields.rb b/lib/fog/vsphere/models/compute/customfields.rb
index 22d88d7..f2341ea 100644
--- a/lib/fog/vsphere/models/compute/customfields.rb
+++ b/lib/fog/vsphere/models/compute/customfields.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/customfield'
 module Fog
   module Compute
     class Vsphere
-
       class Customfields < Fog::Collection
-
         model Fog::Compute::Vsphere::Customfield
 
         attr_accessor :vm
@@ -20,7 +18,6 @@ module Fog
             cv.key == ((key.is_a? String) ? key.to_i : key)
           end
         end
-
      end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/customvalue.rb b/lib/fog/vsphere/models/compute/customvalue.rb
index 1d8da43..399c0c4 100644
--- a/lib/fog/vsphere/models/compute/customvalue.rb
+++ b/lib/fog/vsphere/models/compute/customvalue.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Customvalue < Fog::Model
-
         attribute :value
         attribute :key
 
@@ -11,7 +9,6 @@ module Fog
           value
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/customvalues.rb b/lib/fog/vsphere/models/compute/customvalues.rb
index b0de1aa..fbec741 100644
--- a/lib/fog/vsphere/models/compute/customvalues.rb
+++ b/lib/fog/vsphere/models/compute/customvalues.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/customvalue'
 module Fog
   module Compute
     class Vsphere
-
       class Customvalues < Fog::Collection
-
         model Fog::Compute::Vsphere::Customvalue
 
         attr_accessor :vm
@@ -30,7 +28,6 @@ module Fog
             raise 'customvalues should have vm'
           end.find { | cv | cv.key == key }
         end
-
      end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/datacenter.rb b/lib/fog/vsphere/models/compute/datacenter.rb
index 29d1ea0..26b7d6c 100644
--- a/lib/fog/vsphere/models/compute/datacenter.rb
+++ b/lib/fog/vsphere/models/compute/datacenter.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Datacenter < Fog::Model
-
         identity :id
         attribute :name
         attribute :path
@@ -40,9 +38,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/datacenters.rb b/lib/fog/vsphere/models/compute/datacenters.rb
index 234fa82..c5812bc 100644
--- a/lib/fog/vsphere/models/compute/datacenters.rb
+++ b/lib/fog/vsphere/models/compute/datacenters.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/datacenter'
 module Fog
   module Compute
     class Vsphere
-
       class Datacenters < Fog::Collection
-
         model Fog::Compute::Vsphere::Datacenter
 
         def all(filters = {})
@@ -16,7 +14,6 @@ module Fog
         def get(name)
           new service.get_datacenter(name)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/datastore.rb b/lib/fog/vsphere/models/compute/datastore.rb
index 0735f41..6baa221 100644
--- a/lib/fog/vsphere/models/compute/datastore.rb
+++ b/lib/fog/vsphere/models/compute/datastore.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Datastore < Fog::Model
-
         identity :id
 
         attribute :name
@@ -17,9 +15,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/datastores.rb b/lib/fog/vsphere/models/compute/datastores.rb
index acec5a1..67bbcd0 100644
--- a/lib/fog/vsphere/models/compute/datastores.rb
+++ b/lib/fog/vsphere/models/compute/datastores.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/datastore'
 module Fog
   module Compute
     class Vsphere
-
       class Datastores < Fog::Collection
-
         model Fog::Compute::Vsphere::Datastore
         attr_accessor :datacenter
 
@@ -18,7 +16,6 @@ module Fog
           requires :datacenter
           new service.get_datastore(id, datacenter)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/folder.rb b/lib/fog/vsphere/models/compute/folder.rb
index abc0ff9..7dea57e 100644
--- a/lib/fog/vsphere/models/compute/folder.rb
+++ b/lib/fog/vsphere/models/compute/folder.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Folder < Fog::Model
-
         identity :id
 
         attribute :name
@@ -20,9 +18,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/folders.rb b/lib/fog/vsphere/models/compute/folders.rb
index 4341730..467bb78 100644
--- a/lib/fog/vsphere/models/compute/folders.rb
+++ b/lib/fog/vsphere/models/compute/folders.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/folder'
 module Fog
   module Compute
     class Vsphere
-
       class Folders < Fog::Collection
-
         model Fog::Compute::Vsphere::Folder
         attr_accessor :datacenter, :type, :path
 
@@ -20,7 +18,6 @@ module Fog
           requires :datacenter
           new service.get_folder(id, datacenter, type)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/interface.rb b/lib/fog/vsphere/models/compute/interface.rb
index e708a41..198501a 100644
--- a/lib/fog/vsphere/models/compute/interface.rb
+++ b/lib/fog/vsphere/models/compute/interface.rb
@@ -1,13 +1,11 @@
 module Fog
   module Compute
     class Vsphere
-
       class Interface < Fog::Model
-
         SAVE_MUTEX = Mutex.new
 
         identity :mac
-        alias :id :mac
+        alias_method :id, :mac
 
         attribute :network
         attribute :name
@@ -22,7 +20,7 @@ module Fog
           # Assign server first to prevent race condition with persisted?
           self.server_id = attributes.delete(:server_id)
 
-          if attributes.has_key? :type then
+          if attributes.key? :type then
             if attributes[:type].is_a? String then
               attributes[:type] = Fog::Vsphere.class_from_string(attributes[:type], "RbVmomi::VIM")
             end
@@ -87,9 +85,7 @@ module Fog
             :type=> Fog::Vsphere.class_from_string(default_type, "RbVmomi::VIM"),
           }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/interfaces.rb b/lib/fog/vsphere/models/compute/interfaces.rb
index 93aac6b..04d3dbf 100644
--- a/lib/fog/vsphere/models/compute/interfaces.rb
+++ b/lib/fog/vsphere/models/compute/interfaces.rb
@@ -4,15 +4,13 @@ require 'fog/vsphere/models/compute/interface'
 module Fog
   module Compute
     class Vsphere
-
       class Interfaces < Fog::Collection
-
         model Fog::Compute::Vsphere::Interface
 
-        attribute :server
+        attribute :server_id
 
         def all(filters = {})
-          requires :server
+          requires :server_id
 
           case server
             when Fog::Compute::Vsphere::Server
@@ -28,7 +26,7 @@ module Fog
         end
 
         def get(id)
-          requires :server
+          requires :server_id
 
           case server
             when Fog::Compute::Vsphere::Server
@@ -48,13 +46,22 @@ module Fog
         end
 
         def new(attributes = {})
-          if server
-            super({ :server_id => server.id  }.merge(attributes))
+          if server_id
+            super({ :server_id => server_id  }.merge(attributes))
           else
             super
           end
         end
-     end
+
+        def server
+          return nil if server_id.nil?
+          service.servers.get(server_id)
+        end
+
+        def server=(new_server)
+          server_id = new_server.id
+        end
+      end
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/interfacetype.rb b/lib/fog/vsphere/models/compute/interfacetype.rb
index 68a2578..66f1b3f 100644
--- a/lib/fog/vsphere/models/compute/interfacetype.rb
+++ b/lib/fog/vsphere/models/compute/interfacetype.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Interfacetype < Fog::Model
-
         identity :id
 
 #        attribute :class
@@ -18,9 +16,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/interfacetypes.rb b/lib/fog/vsphere/models/compute/interfacetypes.rb
index d090f4b..a5365b4 100644
--- a/lib/fog/vsphere/models/compute/interfacetypes.rb
+++ b/lib/fog/vsphere/models/compute/interfacetypes.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/interfacetype'
 module Fog
   module Compute
     class Vsphere
-
       class Interfacetypes < Fog::Collection
-
         model Fog::Compute::Vsphere::Interfacetype
         attr_accessor :datacenter
         attr_accessor :servertype
@@ -31,10 +29,7 @@ module Fog
         rescue Fog::Compute::Vsphere::NotFound
           nil
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/vsphere/models/compute/network.rb b/lib/fog/vsphere/models/compute/network.rb
index 223c957..c053189 100644
--- a/lib/fog/vsphere/models/compute/network.rb
+++ b/lib/fog/vsphere/models/compute/network.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Network < Fog::Model
-
         identity :id
 
         attribute :name
@@ -13,9 +11,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/networks.rb b/lib/fog/vsphere/models/compute/networks.rb
index 56581ed..c727cb9 100644
--- a/lib/fog/vsphere/models/compute/networks.rb
+++ b/lib/fog/vsphere/models/compute/networks.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/network'
 module Fog
   module Compute
     class Vsphere
-
       class Networks < Fog::Collection
-
         model Fog::Compute::Vsphere::Network
         attr_accessor :datacenter
 
diff --git a/lib/fog/vsphere/models/compute/resource_pool.rb b/lib/fog/vsphere/models/compute/resource_pool.rb
index 47beb1e..d5f1b91 100644
--- a/lib/fog/vsphere/models/compute/resource_pool.rb
+++ b/lib/fog/vsphere/models/compute/resource_pool.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class ResourcePool < Fog::Model
-
         identity :id
 
         attribute :name
@@ -15,9 +13,7 @@ module Fog
         def to_s
           name
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/resource_pools.rb b/lib/fog/vsphere/models/compute/resource_pools.rb
index ef132ae..4407eba 100644
--- a/lib/fog/vsphere/models/compute/resource_pools.rb
+++ b/lib/fog/vsphere/models/compute/resource_pools.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/resource_pool'
 module Fog
   module Compute
     class Vsphere
-
       class ResourcePools < Fog::Collection
-
         model Fog::Compute::Vsphere::ResourcePool
         attr_accessor :datacenter, :cluster
 
@@ -19,7 +17,6 @@ module Fog
           requires :cluster
           new service.get_resource_pool(id, cluster, datacenter)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/scsicontroller.rb b/lib/fog/vsphere/models/compute/scsicontroller.rb
index 0eecc33..6a7fed7 100644
--- a/lib/fog/vsphere/models/compute/scsicontroller.rb
+++ b/lib/fog/vsphere/models/compute/scsicontroller.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class SCSIController < Fog::Model
-
         attribute :shared_bus
         attribute :type
         attribute :unit_number
@@ -13,7 +11,6 @@ module Fog
           "#{type} ##{key}: shared: #{shared_bus}, unit_number: #{unit_number}"
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/server.rb b/lib/fog/vsphere/models/compute/server.rb
index d2ee7eb..3bfcba5 100644
--- a/lib/fog/vsphere/models/compute/server.rb
+++ b/lib/fog/vsphere/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class Vsphere
-
       class Server < Fog::Compute::Server
         extend Fog::Deprecation
         deprecate(:ipaddress, :public_ip_address)
@@ -33,7 +32,6 @@ module Fog
         attribute :connection_state
         attribute :mo_ref
         attribute :path
-        attribute :relative_path
         attribute :memory_mb
         attribute :cpus
         attribute :corespersocket
@@ -46,6 +44,7 @@ module Fog
         attribute :resource_pool
         attribute :instance_uuid # move this --> id
         attribute :guest_id
+        attribute :hardware_version
         attribute :scsi_controller # this is the first scsi controller. Right now no more of them can be used.
 
         def initialize(attributes={} )
@@ -66,7 +65,6 @@ module Fog
         end
         # End Lazy Loaded Attributes
 
-
         def vm_reconfig_memory(options = {})
           requires :instance_uuid, :memory
           service.vm_reconfig_memory('instance_uuid' => instance_uuid, 'memory' => memory_mb)
@@ -123,10 +121,10 @@ module Fog
         #   * See more options in vm_clone request/compute/vm_clone.rb
         #
         def clone(options = {})
-          requires :name, :datacenter, :relative_path
+          requires :name, :datacenter, :path
 
           # Convert symbols to strings
-          req_options = options.inject({}) { |hsh, (k,v)| hsh[k.to_s] = v; hsh }
+          req_options = options.reduce({}) { |hsh, (k,v)| hsh[k.to_s] = v; hsh }
 
           # Give our path to the request
           req_options['template_path'] ="#{relative_path}/#{name}"
@@ -184,7 +182,7 @@ module Fog
         end
 
         def interfaces
-          attributes[:interfaces] ||= id.nil? ? [] : service.interfaces( :server => self )
+          attributes[:interfaces] ||= id.nil? ? [] : service.interfaces( :server_id => self.id )
         end
 
         def interface_ready? attrs
@@ -209,7 +207,7 @@ module Fog
         end
 
         def volumes
-          attributes[:volumes] ||= id.nil? ? [] : service.volumes(:server => self)
+          attributes[:volumes] ||= id.nil? ? [] : service.volumes(:server_id => self.id)
         end
 
         def customvalues
@@ -248,6 +246,12 @@ module Fog
           super
         end
 
+        def relative_path
+          requires :path, :datacenter
+
+          (path.split('/').reject {|e| e.empty?} - ["Datacenters", datacenter, "vm"]).join("/")
+        end
+
         private
 
         def defaults
@@ -283,9 +287,7 @@ module Fog
             Fog::Compute::Vsphere::SCSIController.new(self.attributes[:scsi_controller])
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/servers.rb b/lib/fog/vsphere/models/compute/servers.rb
index 727b873..7c7b9f1 100644
--- a/lib/fog/vsphere/models/compute/servers.rb
+++ b/lib/fog/vsphere/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/server'
 module Fog
   module Compute
     class Vsphere
-
       class Servers < Fog::Collection
-
         model Fog::Compute::Vsphere::Server
         attr_accessor :datacenter
         attr_accessor :network
diff --git a/lib/fog/vsphere/models/compute/servertype.rb b/lib/fog/vsphere/models/compute/servertype.rb
index ebfc1ac..6bc0665 100644
--- a/lib/fog/vsphere/models/compute/servertype.rb
+++ b/lib/fog/vsphere/models/compute/servertype.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class Vsphere
-
       class Servertype < Fog::Model
-
         identity :id
 
         attribute :family
@@ -33,7 +31,6 @@ module Fog
           }
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/servertypes.rb b/lib/fog/vsphere/models/compute/servertypes.rb
index 3dcdd2c..d3f0453 100644
--- a/lib/fog/vsphere/models/compute/servertypes.rb
+++ b/lib/fog/vsphere/models/compute/servertypes.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/servertype'
 module Fog
   module Compute
     class Vsphere
-
       class Servertypes < Fog::Collection
-
         model Fog::Compute::Vsphere::Servertype
         attr_accessor :datacenter, :id, :fullname
 
@@ -20,10 +18,7 @@ module Fog
         rescue Fog::Compute::Vsphere::NotFound
           nil
         end
-
       end
-
     end
   end
 end
-
diff --git a/lib/fog/vsphere/models/compute/template.rb b/lib/fog/vsphere/models/compute/template.rb
index 06e0e60..76140a3 100644
--- a/lib/fog/vsphere/models/compute/template.rb
+++ b/lib/fog/vsphere/models/compute/template.rb
@@ -1,15 +1,11 @@
 module Fog
   module Compute
     class Vsphere
-
       class Template < Fog::Model
-
         identity :id
         attribute :name
         attribute :uuid
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/models/compute/templates.rb b/lib/fog/vsphere/models/compute/templates.rb
index 1d559d8..bc76c85 100644
--- a/lib/fog/vsphere/models/compute/templates.rb
+++ b/lib/fog/vsphere/models/compute/templates.rb
@@ -4,9 +4,7 @@ require 'fog/vsphere/models/compute/template'
 module Fog
   module Compute
     class Vsphere
-
       class Templates < Fog::Collection
-
         model Fog::Compute::Vsphere::Template
 
         def all(filters = {})
@@ -16,7 +14,6 @@ module Fog
         def get(id)
           new service.get_template(id)
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/models/compute/volume.rb b/lib/fog/vsphere/models/compute/volume.rb
index 141c407..38d9801 100644
--- a/lib/fog/vsphere/models/compute/volume.rb
+++ b/lib/fog/vsphere/models/compute/volume.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Vsphere
-
       class Volume < Fog::Model
         DISK_SIZE_TO_GB = 1048576
         identity :id
@@ -49,7 +48,7 @@ module Fog
           requires :server_id, :size, :datastore
 
           if unit_number.nil?
-            used_unit_numbers = server.volumes.collect { |volume| volume.unit_number }
+            used_unit_numbers = server.volumes.map { |volume| volume.unit_number }
             max_unit_number = used_unit_numbers.max
 
             if max_unit_number > server.volumes.size
diff --git a/lib/fog/vsphere/models/compute/volumes.rb b/lib/fog/vsphere/models/compute/volumes.rb
index f3f3ae1..0aec5c7 100644
--- a/lib/fog/vsphere/models/compute/volumes.rb
+++ b/lib/fog/vsphere/models/compute/volumes.rb
@@ -4,15 +4,13 @@ require 'fog/vsphere/models/compute/volume'
 module Fog
   module Compute
     class Vsphere
-
       class Volumes < Fog::Collection
-
-        attribute :server
+        attribute :server_id
 
         model Fog::Compute::Vsphere::Volume
 
         def all(filters = {})
-          requires :server
+          requires :server_id
 
           case server
             when Fog::Compute::Vsphere::Server
@@ -32,17 +30,25 @@ module Fog
         end
 
         def new(attributes = {})
-          if server
+          if server_id
             # Default to the root volume datastore if one is not configured.
-            datastore = ! attributes.has_key?(:datastore) && self.any? ? self.first.datastore : nil
+            datastore = ! attributes.key?(:datastore) && self.any? ? self.first.datastore : nil
 
-            super({ :server_id => server.id, :datastore => datastore }.merge!(attributes))
+            super({ :server_id => server_id, :datastore => datastore }.merge!(attributes))
           else
             super
           end
         end
 
-     end
+        def server
+          return nil if server_id.nil?
+          service.servers.get(server_id)
+        end
+
+        def server=(new_server)
+          server_id = new_server.id
+        end
+      end
     end
   end
 end
diff --git a/lib/fog/vsphere/requests/compute/create_folder.rb b/lib/fog/vsphere/requests/compute/create_folder.rb
index af63238..4baa564 100644
--- a/lib/fog/vsphere/requests/compute/create_folder.rb
+++ b/lib/fog/vsphere/requests/compute/create_folder.rb
@@ -11,7 +11,7 @@ module Fog
             new_folder = parent_folder.CreateFolder(:name => name)
             # output is cleaned up to return the new path
             # new path will be path/name, example: "Production/Pool1"
-            new_folder.path.reject { |a| a.first.class == "Folder" }.collect { |a| a.first.name }.join("/").sub(/^\/?Datacenters\/#{datacenter}\/vm\/?/, '')
+            new_folder.path.reject { |a| a.first.class == "Folder" }.map { |a| a.first.name }.join("/").sub(/^\/?Datacenters\/#{datacenter}\/vm\/?/, '')
           rescue => e
             raise e, "failed to create folder: #{e}"
           end
diff --git a/lib/fog/vsphere/requests/compute/create_vm.rb b/lib/fog/vsphere/requests/compute/create_vm.rb
index e381c04..c4ba7f2 100644
--- a/lib/fog/vsphere/requests/compute/create_vm.rb
+++ b/lib/fog/vsphere/requests/compute/create_vm.rb
@@ -8,6 +8,7 @@ module Fog
           vm_cfg        = {
             :name         => attributes[:name],
             :guestId      => attributes[:guest_id],
+            :version      => attributes[:hardware_version],
             :files        => { :vmPathName => vm_path_name(attributes) },
             :numCPUs      => attributes[:cpus],
             :numCoresPerSocket => attributes[:corespersocket],
@@ -106,7 +107,7 @@ module Fog
         end
 
         def controller_get_shared_from_options options
-          if (options.has_key? :shared and options[:shared]==false) or not options.has_key? :shared then
+          if (options.key? :shared and options[:shared]==false) or not options.key? :shared then
             :noSharing
           elsif options[:shared]==true then
             :virtualSharing
@@ -149,13 +150,11 @@ module Fog
             }
           ]
         end
-
       end
 
       class Mock
         def create_vm attributes = { }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/current_time.rb b/lib/fog/vsphere/requests/compute/current_time.rb
index 96c066e..78bd4fb 100644
--- a/lib/fog/vsphere/requests/compute/current_time.rb
+++ b/lib/fog/vsphere/requests/compute/current_time.rb
@@ -2,20 +2,16 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def current_time
           current_time = @connection.serviceInstance.CurrentTime
           { 'current_time' => current_time }
         end
-
       end
 
       class Mock
-
         def current_time
           { 'current_time' => Time.now.utc }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/get_folder.rb b/lib/fog/vsphere/requests/compute/get_folder.rb
index 0990ba5..7e1c57c 100644
--- a/lib/fog/vsphere/requests/compute/get_folder.rb
+++ b/lib/fog/vsphere/requests/compute/get_folder.rb
@@ -35,7 +35,7 @@ module Fog
 
           return dc_root_folder if paths.empty?
           # Walk the tree resetting the folder pointer as we go
-          paths.inject(dc_root_folder) do |last_returned_folder, sub_folder|
+          paths.reduce(dc_root_folder) do |last_returned_folder, sub_folder|
             # JJM VIM::Folder#find appears to be quite efficient as it uses the
             # searchIndex It certainly appears to be faster than
             # VIM::Folder#inventory since that returns _all_ managed objects of
@@ -69,7 +69,6 @@ module Fog
         def get_folder(path, filters = { })
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/requests/compute/get_virtual_machine.rb b/lib/fog/vsphere/requests/compute/get_virtual_machine.rb
index c73900c..900901b 100644
--- a/lib/fog/vsphere/requests/compute/get_virtual_machine.rb
+++ b/lib/fog/vsphere/requests/compute/get_virtual_machine.rb
@@ -38,9 +38,7 @@ module Fog
           end
           vm ? vm : raise(Fog::Compute::Vsphere::NotFound, "#{id} was not found")
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb b/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb
index 60e6eef..0b2d80e 100644
--- a/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb
+++ b/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb
@@ -6,6 +6,7 @@ module Fog
         def get_vm_first_scsi_controller(vm_id)
           Fog::Compute::Vsphere::SCSIController.new(get_vm_first_scsi_controller_raw(vm_id))
         end
+
         def get_vm_first_scsi_controller_raw(vm_id)
           ctrl=get_vm_ref(vm_id).config.hardware.device.grep(RbVmomi::VIM::VirtualSCSIController).select{ | ctrl | ctrl.key == 1000 }.first
           {
@@ -15,7 +16,6 @@ module Fog
             :key => ctrl.key,
           }
         end
-
       end
       class Mock
         def get_vm_first_scsi_controller(vm_id)
diff --git a/lib/fog/vsphere/requests/compute/list_clusters.rb b/lib/fog/vsphere/requests/compute/list_clusters.rb
index 2092213..96d113b 100644
--- a/lib/fog/vsphere/requests/compute/list_clusters.rb
+++ b/lib/fog/vsphere/requests/compute/list_clusters.rb
@@ -26,7 +26,6 @@ module Fog
             :datacenter     => datacenter_name || parent_attribute(cluster.path, :datacenter)[1],
           }
         end
-
       end
       class Mock
         def list_clusters(filters = { })
diff --git a/lib/fog/vsphere/requests/compute/list_customfields.rb b/lib/fog/vsphere/requests/compute/list_customfields.rb
index d86e75c..1ea35e4 100644
--- a/lib/fog/vsphere/requests/compute/list_customfields.rb
+++ b/lib/fog/vsphere/requests/compute/list_customfields.rb
@@ -11,7 +11,6 @@ module Fog
             }
           end
         end
-
       end
       class Mock
         def list_vm_customfields()
diff --git a/lib/fog/vsphere/requests/compute/list_datacenters.rb b/lib/fog/vsphere/requests/compute/list_datacenters.rb
index 60b5a5c..8ec3a74 100644
--- a/lib/fog/vsphere/requests/compute/list_datacenters.rb
+++ b/lib/fog/vsphere/requests/compute/list_datacenters.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def list_datacenters filters = {}
           raw_datacenters.map do |dc|
             {
diff --git a/lib/fog/vsphere/requests/compute/list_datastores.rb b/lib/fog/vsphere/requests/compute/list_datastores.rb
index 38c9e63..037ffde 100644
--- a/lib/fog/vsphere/requests/compute/list_datastores.rb
+++ b/lib/fog/vsphere/requests/compute/list_datastores.rb
@@ -29,7 +29,6 @@ module Fog
             :datacenter  => datacenter,
           }
         end
-
       end
       class Mock
         def list_datastores(datacenter_name)
diff --git a/lib/fog/vsphere/requests/compute/list_folders.rb b/lib/fog/vsphere/requests/compute/list_folders.rb
index 8335fb9..3f34031 100644
--- a/lib/fog/vsphere/requests/compute/list_folders.rb
+++ b/lib/fog/vsphere/requests/compute/list_folders.rb
@@ -38,7 +38,6 @@ module Fog
         def child_folders folder
           [folder, folder.childEntity.grep(RbVmomi::VIM::Folder).map(&method(:child_folders)).flatten]
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/list_interface_types.rb b/lib/fog/vsphere/requests/compute/list_interface_types.rb
index afea5af..561fc2f 100644
--- a/lib/fog/vsphere/requests/compute/list_interface_types.rb
+++ b/lib/fog/vsphere/requests/compute/list_interface_types.rb
@@ -6,10 +6,11 @@ module Fog
           datacenter_name = filters[:datacenter]
           servertype_name = filters[:servertype]
           get_raw_server_type(servertype_name, datacenter_name)[:supportedEthernetCard].map do | nictype |
-            next if filters.has_key?(:id) and filters[:id] != nictype
+            next if filters.key?(:id) and filters[:id] != nictype
             interface_type_attributes(nictype, servertype_name, datacenter_name)
           end.compact
         end
+
         def interface_type_attributes(nic, servertype, datacenter)
           {
             :id => nic,
diff --git a/lib/fog/vsphere/requests/compute/list_networks.rb b/lib/fog/vsphere/requests/compute/list_networks.rb
index a8460ec..df8c8c2 100644
--- a/lib/fog/vsphere/requests/compute/list_networks.rb
+++ b/lib/fog/vsphere/requests/compute/list_networks.rb
@@ -26,7 +26,6 @@ module Fog
             :datacenter => datacenter,
           }
         end
-
       end
       class Mock
         def list_networks(datacenter_name)
diff --git a/lib/fog/vsphere/requests/compute/list_resource_pools.rb b/lib/fog/vsphere/requests/compute/list_resource_pools.rb
index 8df2809..aedc4f4 100644
--- a/lib/fog/vsphere/requests/compute/list_resource_pools.rb
+++ b/lib/fog/vsphere/requests/compute/list_resource_pools.rb
@@ -28,7 +28,6 @@ module Fog
             :datacenter           => datacenter
           }
         end
-
       end
       class Mock
         def list_resource_pools(filters = { })
diff --git a/lib/fog/vsphere/requests/compute/list_server_types.rb b/lib/fog/vsphere/requests/compute/list_server_types.rb
index 57e0e4f..d221577 100644
--- a/lib/fog/vsphere/requests/compute/list_server_types.rb
+++ b/lib/fog/vsphere/requests/compute/list_server_types.rb
@@ -49,7 +49,6 @@ module Fog
             :datacenter=>"Solutions"}]
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/vsphere/requests/compute/list_templates.rb b/lib/fog/vsphere/requests/compute/list_templates.rb
index 63d4da7..52011aa 100644
--- a/lib/fog/vsphere/requests/compute/list_templates.rb
+++ b/lib/fog/vsphere/requests/compute/list_templates.rb
@@ -38,7 +38,6 @@ module Fog
 
           vms.map(&method(:convert_vm_mob_ref_to_attr_hash))
         end
-
       end
       class Mock
         def list_templates(filters = { })
diff --git a/lib/fog/vsphere/requests/compute/list_virtual_machines.rb b/lib/fog/vsphere/requests/compute/list_virtual_machines.rb
index f9be389..0f7623e 100644
--- a/lib/fog/vsphere/requests/compute/list_virtual_machines.rb
+++ b/lib/fog/vsphere/requests/compute/list_virtual_machines.rb
@@ -55,7 +55,6 @@ module Fog
       end
 
       class Mock
-
         def get_folder_path(folder, root = nil)
           nil
         end
diff --git a/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb b/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb
index fab12c9..ba2078f 100644
--- a/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb
+++ b/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb
@@ -9,9 +9,7 @@ module Fog
               :value  => customvalue.value,
             }
           end
-
         end
-
       end
       class Mock
         def list_vm_customfields(vm_id)
diff --git a/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb b/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb
index 6ec9a22..420b51a 100644
--- a/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb
+++ b/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb
@@ -40,7 +40,6 @@ module Fog
               :key     => nic.key,
             }
           end
-
         end
 
         def get_vm_interface(vm_id, options={})
@@ -48,13 +47,12 @@ module Fog
           if options.is_a? Fog::Compute::Vsphere::Interface
             options
           else
-            raise ArgumentError, "Either key or name is a required parameter. options: #{options}" unless options.has_key? :key or options.has_key? :mac or options.has_key? :name
+            raise ArgumentError, "Either key or name is a required parameter. options: #{options}" unless options.key? :key or options.key? :mac or options.key? :name
             list_vm_interfaces(vm_id).find do | nic |
-              (options.has_key? :key and nic[:key]==options[:key].to_i) or (options.has_key? :mac and nic[:mac]==options[:mac]) or (options.has_key? :name and nic[:name]==options[:name])
+              (options.key? :key and nic[:key]==options[:key].to_i) or (options.key? :mac and nic[:mac]==options[:mac]) or (options.key? :name and nic[:name]==options[:name])
             end
           end
         end
-
       end
       class Mock
         def list_vm_interfaces(vm_id)
diff --git a/lib/fog/vsphere/requests/compute/list_vm_volumes.rb b/lib/fog/vsphere/requests/compute/list_vm_volumes.rb
index 2f2097e..e59b22e 100644
--- a/lib/fog/vsphere/requests/compute/list_vm_volumes.rb
+++ b/lib/fog/vsphere/requests/compute/list_vm_volumes.rb
@@ -42,7 +42,6 @@ module Fog
             }
           end
         end
-
       end
       class Mock
         def list_vm_volumes(vm_id)
diff --git a/lib/fog/vsphere/requests/compute/modify_vm_interface.rb b/lib/fog/vsphere/requests/compute/modify_vm_interface.rb
index 2a89181..2ef7721 100644
--- a/lib/fog/vsphere/requests/compute/modify_vm_interface.rb
+++ b/lib/fog/vsphere/requests/compute/modify_vm_interface.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def add_vm_interface(vmid, options = {})
           raise ArgumentError, "instance id is a required parameter" unless vmid
 
@@ -40,7 +39,6 @@ module Fog
             raise ArgumentError, "interface is a required parameter or pass options with type and network"
           end
         end
-
       end
 
       class Mock
diff --git a/lib/fog/vsphere/requests/compute/modify_vm_volume.rb b/lib/fog/vsphere/requests/compute/modify_vm_volume.rb
index 9a58291..dce86d1 100644
--- a/lib/fog/vsphere/requests/compute/modify_vm_volume.rb
+++ b/lib/fog/vsphere/requests/compute/modify_vm_volume.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def add_vm_volume(volume)
           vm_reconfig_hardware('instance_uuid' => volume.server_id, 'hardware_spec' => {'deviceChange'=>[create_disk(volume, volume.unit_number, :add)]})
         end
diff --git a/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb b/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb
index e65aa3e..6239ee6 100644
--- a/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb
+++ b/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb
@@ -6,7 +6,6 @@ module Fog
           vm_ref = get_vm_ref(vm_id)
           vm_ref.setCustomValue(:key => key, :value => value)
         end
-
       end
       class Mock
         def set_vm_customvalue(vm_id, key, value)
@@ -16,4 +15,3 @@ module Fog
     end
   end
 end
-
diff --git a/lib/fog/vsphere/requests/compute/vm_clone.rb b/lib/fog/vsphere/requests/compute/vm_clone.rb
index 31e9d40..b86c96a 100644
--- a/lib/fog/vsphere/requests/compute/vm_clone.rb
+++ b/lib/fog/vsphere/requests/compute/vm_clone.rb
@@ -1,7 +1,6 @@
 module Fog
   module Compute
     class Vsphere
-
       module Shared
         private
         def vm_clone_check_options(options)
@@ -15,7 +14,7 @@ module Fog
           options["path"] ||= options["template_path"]
           required_options = %w{ datacenter template_path name }
           required_options.each do |param|
-            raise ArgumentError, "#{required_options.join(', ')} are required" unless options.has_key? param
+            raise ArgumentError, "#{required_options.join(', ')} are required" unless options.key? param
           end
           raise Fog::Compute::Vsphere::NotFound, "Datacenter #{options["datacenter"]} Doesn't Exist!" unless get_datacenter(options["datacenter"])
           raise Fog::Compute::Vsphere::NotFound, "Template #{options["template_path"]} Doesn't Exist!" unless get_virtual_machine(options["template_path"], options["datacenter"])
@@ -75,9 +74,6 @@ module Fog
           # Added for people still using options['path']
           template_path = options['path'] || options['template_path']
 
-          # Default wait enabled
-          options['wait'] = true
-
           # Options['template_path']<~String>
           # Added for people still using options['path']
           template_path = options['path'] || options['template_path']
@@ -86,12 +82,12 @@ module Fog
 
           # Options['dest_folder']<~String>
           # Grab the destination folder object if it exists else use cloned mach
-          dest_folder = get_raw_vmfolder(options['dest_folder'], options['datacenter']) if options.has_key?('dest_folder')
+          dest_folder = get_raw_vmfolder(options['dest_folder'], options['datacenter']) if options.key?('dest_folder')
           dest_folder ||= vm_mob_ref.parent
 
           # Options['resource_pool']<~Array>
           # Now find _a_ resource pool to use for the clone if one is not specified
-          if ( options.has_key?('resource_pool') && options['resource_pool'].is_a?(Array) && options['resource_pool'].length == 2 )
+          if ( options.key?('resource_pool') && options['resource_pool'].is_a?(Array) && options['resource_pool'].length == 2 )
             cluster_name = options['resource_pool'][0]
             pool_name = options['resource_pool'][1]
             resource_pool = get_raw_resource_pool(pool_name, cluster_name, options['datacenter'])
@@ -111,14 +107,14 @@ module Fog
 
           # Options['datastore']<~String>
           # Grab the datastore object if option is set
-          datastore_obj = get_raw_datastore(options['datastore'], options['datacenter']) if options.has_key?('datastore')
+          datastore_obj = get_raw_datastore(options['datastore'], options['datacenter']) if options.key?('datastore')
           # confirm nil if nil or option is not set
           datastore_obj ||= nil
           virtual_machine_config_spec = RbVmomi::VIM::VirtualMachineConfigSpec()
 
           # Options['network']
           # Build up the config spec
-          if ( options.has_key?('network_label') )
+          if ( options.key?('network_label') )
             #network_obj = datacenter_obj.networkFolder.find(options['network_label'])
             config_spec_operation = RbVmomi::VIM::VirtualDeviceConfigSpecOperation('edit')
             nic_backing_info = RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(:deviceName => options['network_label'])
@@ -143,34 +139,35 @@ module Fog
           # https://github.com/rlane/rbvmomi/blob/master/test/test_serialization.rb
           # http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.ConfigSpec.html
           # FIXME: pad this out with the rest of the useful things in VirtualMachineConfigSpec
-          virtual_machine_config_spec.numCPUs = options['numCPUs'] if  ( options.has_key?('numCPUs') )
-          virtual_machine_config_spec.memoryMB = options['memoryMB'] if ( options.has_key?('memoryMB') )
+          virtual_machine_config_spec.numCPUs = options['numCPUs'] if  ( options.key?('numCPUs') )
+          virtual_machine_config_spec.memoryMB = options['memoryMB'] if ( options.key?('memoryMB') )
           # Options['customization_spec']
           # Build up all the crappy tiered objects like the perl method
           # Collect your variables ifset (writing at 11pm revist me)
           # * domain <~String> - *REQUIRED* - Sets the server's domain for customization
+          # * dnsSuffixList <~Array> - Optional - Sets the dns search paths in resolv - Example: ["dev.example.com", "example.com"]
           # * ipsettings <~Hash> - Optional - If not set defaults to dhcp
           #  * ip <~String> - *REQUIRED* Sets the ip address of the VM - Example: 10.0.0.10
           #  * dnsServerList <~Array> - Optional - Sets the nameservers in resolv - Example: ["10.0.0.2", "10.0.0.3"]
           #  * gateway <~Array> - Optional - Sets the gateway for the interface - Example: ["10.0.0.1"]
           #  * subnetMask <~String> - *REQUIRED* - Set the netmask of the interface - Example: "255.255.255.0"
           #    For other ip settings options see http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.vm.customization.IPSettings.html
-          if ( options.has_key?('customization_spec') )
+          if ( options.key?('customization_spec') )
             cust_options = options['customization_spec']
-            if cust_options.has_key?("ipsettings")
-              raise ArgumentError, "ip and subnetMask is required for static ip" unless cust_options["ipsettings"].has_key?("ip") and
-                                                                                        cust_options["ipsettings"].has_key?("subnetMask")
+            if cust_options.key?("ipsettings")
+              raise ArgumentError, "ip and subnetMask is required for static ip" unless cust_options["ipsettings"].key?("ip") and
+                                                                                        cust_options["ipsettings"].key?("subnetMask")
             end
-            raise ArgumentError, "domain is required" unless cust_options.has_key?("domain")
+            raise ArgumentError, "domain is required" unless cust_options.key?("domain")
             cust_domain = cust_options['domain']
-            cust_ip_settings = RbVmomi::VIM::CustomizationIPSettings.new(cust_options["ipsettings"]) if cust_options.has_key?("ipsettings")
-            cust_ip_settings.ip = RbVmomi::VIM::CustomizationFixedIp("ipAddress" => cust_options["ipsettings"]["ip"]) if cust_options.has_key?("ipsettings")
+            cust_ip_settings = RbVmomi::VIM::CustomizationIPSettings.new(cust_options["ipsettings"]) if cust_options.key?("ipsettings")
+            cust_ip_settings.ip = RbVmomi::VIM::CustomizationFixedIp("ipAddress" => cust_options["ipsettings"]["ip"]) if cust_options.key?("ipsettings")
             cust_ip_settings ||= RbVmomi::VIM::CustomizationIPSettings.new("ip" => RbVmomi::VIM::CustomizationDhcpIpGenerator.new())
             cust_ip_settings.dnsDomain = cust_domain
             cust_global_ip_settings = RbVmomi::VIM::CustomizationGlobalIPSettings.new
             cust_global_ip_settings.dnsServerList = cust_ip_settings.dnsServerList
-            cust_global_ip_settings.dnsSuffixList = [cust_domain]
-            cust_hostname = RbVmomi::VIM::CustomizationFixedName.new(:name => cust_options['hostname']) if cust_options.has_key?('hostname')
+            cust_global_ip_settings.dnsSuffixList = cust_options['dnsSuffixList'] || [cust_domain]
+            cust_hostname = RbVmomi::VIM::CustomizationFixedName.new(:name => cust_options['hostname']) if cust_options.key?('hostname')
             cust_hostname ||= RbVmomi::VIM::CustomizationFixedName.new(:name => options['name'])
             cust_hwclockutc = cust_options['hw_clock_utc']
             cust_timezone = cust_options['time_zone']
@@ -233,7 +230,7 @@ module Fog
           clone_spec = RbVmomi::VIM.VirtualMachineCloneSpec(:location => relocation_spec,
                                                             :config => virtual_machine_config_spec,
                                                             :customization => customization_spec,
-                                                            :powerOn  => options.has_key?('power_on') ? options['power_on'] : true,
+                                                            :powerOn  => options.key?('power_on') ? options['power_on'] : true,
                                                             :template => false)
 
           # Perform the actual Clone Task
@@ -245,7 +242,7 @@ module Fog
           # to set 'wait' => true if your app wants to wait.  Otherwise, you're
           # going to have to reload the server model over and over which
           # generates a lot of time consuming API calls to vmware.
-          if options['wait'] then
+          if options.fetch('wait', true) then
             # REVISIT: It would be awesome to call a block passed to this
             # request to notify the application how far along in the process we
             # are.  I'm thinking of updating a progress bar, etc...
@@ -254,7 +251,7 @@ module Fog
             tries = 0
             new_vm = begin
               # Try and find the new VM (folder.find is quite efficient)
-              folder.find(options['name'], RbVmomi::VIM::VirtualMachine) or raise Fog::Vsphere::Errors::NotFound
+              dest_folder.find(options['name'], RbVmomi::VIM::VirtualMachine) or raise Fog::Vsphere::Errors::NotFound
             rescue Fog::Vsphere::Errors::NotFound
               tries += 1
               if tries <= 10 then
@@ -272,7 +269,6 @@ module Fog
             'task_ref'      => task._ref
           }
         end
-
       end
 
       class Mock
@@ -301,7 +297,6 @@ module Fog
             'task_ref' => "task-#{Fog::Mock.random_numbers(4)}",
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/vm_config_vnc.rb b/lib/fog/vsphere/requests/compute/vm_config_vnc.rb
index 8be8839..ddfa0ea 100644
--- a/lib/fog/vsphere/requests/compute/vm_config_vnc.rb
+++ b/lib/fog/vsphere/requests/compute/vm_config_vnc.rb
@@ -3,7 +3,7 @@ module Fog
     class Vsphere
       class Real
         def vm_config_vnc(options = { })
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
 
           search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
           vm_mob_ref    = @connection.searchIndex.FindAllByUuid(search_filter).first
@@ -20,7 +20,6 @@ module Fog
 
         # return a hash of VNC attributes required to view the console
         def vm_get_vnc uuid
-
           search_filter = { :uuid => uuid, 'vmSearch' => true, 'instanceUuid' => true }
           vm = @connection.searchIndex.FindAllByUuid(search_filter).first
           Hash[vm.config.extraConfig.map do |config|
@@ -29,12 +28,11 @@ module Fog
             end
           end.compact]
         end
-
       end
 
       class Mock
         def vm_config_vnc(options = { })
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           { 'task_state' => 'success' }
         end
 
diff --git a/lib/fog/vsphere/requests/compute/vm_destroy.rb b/lib/fog/vsphere/requests/compute/vm_destroy.rb
index 9f3ada4..200889e 100644
--- a/lib/fog/vsphere/requests/compute/vm_destroy.rb
+++ b/lib/fog/vsphere/requests/compute/vm_destroy.rb
@@ -2,25 +2,21 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def vm_destroy(options = {})
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
 
           vm_mob_ref = get_vm_ref(options['instance_uuid'])
           task = vm_mob_ref.Destroy_Task
           task.wait_for_completion
           { 'task_state' => task.info.state }
         end
-
       end
 
       class Mock
-
         def vm_destroy(options = {})
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           { 'task_state' => 'success' }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/vm_migrate.rb b/lib/fog/vsphere/requests/compute/vm_migrate.rb
index edc34b9..c4a422a 100644
--- a/lib/fog/vsphere/requests/compute/vm_migrate.rb
+++ b/lib/fog/vsphere/requests/compute/vm_migrate.rb
@@ -2,11 +2,10 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def vm_migrate(options = {})
           #priority is the only required option, and it has a sane default option.
           priority = options['priority'].nil? ? 'defaultPriority' : options["priority"]
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
 
           # Find the VM Object
           search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
@@ -20,17 +19,14 @@ module Fog
           task.wait_for_completion
           { 'task_state' => task.info.state }
         end
-
       end
 
       class Mock
-
         def vm_migrate(options = {})
           priority = options['priority'].nil? ? 'defaultPriority' : options["priority"]
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           { 'task_state' => 'success' }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/vm_power_off.rb b/lib/fog/vsphere/requests/compute/vm_power_off.rb
index 423e623..fc954d3 100644
--- a/lib/fog/vsphere/requests/compute/vm_power_off.rb
+++ b/lib/fog/vsphere/requests/compute/vm_power_off.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def vm_power_off(options = {})
           options = { 'force' => false }.merge(options)
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
 
           search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
           vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
@@ -22,13 +21,11 @@ module Fog
             }
           end
         end
-
       end
 
       class Mock
-
         def vm_power_off(options = {})
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           vm = get_virtual_machine(options['instance_uuid'])
           vm["power_state"] = "poweredOff"
           {
@@ -36,7 +33,6 @@ module Fog
             'power_off_type' => options['force'] ? 'cut_power' : 'shutdown_guest',
           }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/vm_power_on.rb b/lib/fog/vsphere/requests/compute/vm_power_on.rb
index 035d268..40059cb 100644
--- a/lib/fog/vsphere/requests/compute/vm_power_on.rb
+++ b/lib/fog/vsphere/requests/compute/vm_power_on.rb
@@ -2,9 +2,8 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def vm_power_on(options = {})
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
 
           search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
           vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
@@ -14,16 +13,13 @@ module Fog
           # 'success', 'running', 'queued', 'error'
           { 'task_state' => task.info.state }
         end
-
       end
 
       class Mock
-
         def vm_power_on(options = {})
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           { 'task_state' => 'success' }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/vm_reboot.rb b/lib/fog/vsphere/requests/compute/vm_reboot.rb
index c506ece..7d39682 100644
--- a/lib/fog/vsphere/requests/compute/vm_reboot.rb
+++ b/lib/fog/vsphere/requests/compute/vm_reboot.rb
@@ -2,10 +2,9 @@ module Fog
   module Compute
     class Vsphere
       class Real
-
         def vm_reboot(options = {})
           options = { 'force' => false }.merge(options)
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
 
           search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
           vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
@@ -19,16 +18,13 @@ module Fog
             { 'task_state' => "running", 'reboot_type' => 'reboot_guest' }
           end
         end
-
       end
 
       class Mock
-
         def vm_reboot(options = {})
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           { 'task_state'     => "running", 'reboot_type' => options['force'] ? 'reset_power' : 'reboot_guest' }
         end
-
       end
     end
   end
diff --git a/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb b/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb
index 28589be..ffff6bb 100644
--- a/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb
+++ b/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb
@@ -3,8 +3,8 @@ module Fog
     class Vsphere
       class Real
         def vm_reconfig_cpus(options = {})
-          raise ArgumentError, "cpus is a required parameter" unless options.has_key? 'cpus'
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "cpus is a required parameter" unless options.key? 'cpus'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           hardware_spec={'numCPUs' => options['cpus'], 'numCoresPerSocket' => options['corespersocket']}
           vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
         end
@@ -12,8 +12,8 @@ module Fog
 
       class Mock
         def vm_reconfig_cpus(options = {})
-          raise ArgumentError, "cpus is a required parameter" unless options.has_key? 'cpus'
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "cpus is a required parameter" unless options.key? 'cpus'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           hardware_spec={'numCPUs' => options['cpus'], 'numCoresPerSocket' => options['corespersocket']}
           vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
         end
diff --git a/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb b/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb
index 028e2f9..a491b9c 100644
--- a/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb
+++ b/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb
@@ -3,8 +3,8 @@ module Fog
     class Vsphere
       class Real
         def vm_reconfig_hardware(options = {})
-          raise ArgumentError, "hardware_spec is a required parameter" unless options.has_key? 'hardware_spec'
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "hardware_spec is a required parameter" unless options.key? 'hardware_spec'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           vm_mob_ref = get_vm_ref(options['instance_uuid'])
           task = vm_mob_ref.ReconfigVM_Task(:spec => RbVmomi::VIM.VirtualMachineConfigSpec(options['hardware_spec']))
           task.wait_for_completion
@@ -14,8 +14,8 @@ module Fog
 
       class Mock
         def vm_reconfig_hardware(options = {})
-          raise ArgumentError, "hardware_spec is a required parameter" unless options.has_key? 'hardware_spec'
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "hardware_spec is a required parameter" unless options.key? 'hardware_spec'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           { 'task_state' => 'success' }
         end
       end
diff --git a/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb b/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb
index 860b607..fef3284 100644
--- a/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb
+++ b/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb
@@ -3,8 +3,8 @@ module Fog
     class Vsphere
       class Real
         def vm_reconfig_memory(options = {})
-          raise ArgumentError, "memory is a required parameter" unless options.has_key? 'memory'
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "memory is a required parameter" unless options.key? 'memory'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           hardware_spec={'memoryMB' => options['memory']}
           vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
         end
@@ -12,8 +12,8 @@ module Fog
 
       class Mock
         def vm_reconfig_memory(options = {})
-          raise ArgumentError, "memory is a required parameter" unless options.has_key? 'memory'
-          raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
+          raise ArgumentError, "memory is a required parameter" unless options.key? 'memory'
+          raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
           hardware_spec={'memoryMB' => options['memory']}
           vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
         end
diff --git a/lib/fog/xenserver/compute.rb b/lib/fog/xenserver/compute.rb
index 0f5c5f2..aa5e000 100644
--- a/lib/fog/xenserver/compute.rb
+++ b/lib/fog/xenserver/compute.rb
@@ -3,7 +3,6 @@ require 'fog/xenserver/core'
 module Fog
   module Compute
     class XenServer < Fog::Service
-
       require 'fog/xenserver/utilities'
       require 'fog/xenserver/parser'
 
@@ -114,6 +113,8 @@ module Fog
       request :snapshot_revert
 
       class Real
+          
+        attr_reader :connection
 
         def initialize(options={})
           @host        = options[:xenserver_url]
@@ -143,11 +144,9 @@ module Fog
         def default_network
           networks.find { |n| n.name == (@defaults[:network] || "Pool-wide network associated with eth0") }
         end
-
       end
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = {}
@@ -167,10 +166,7 @@ module Fog
           @connection  = Fog::XML::Connection.new(@host)
           @connection.authenticate(@username, @password)
         end
-
       end
     end
   end
 end
-
-
diff --git a/lib/fog/xenserver/core.rb b/lib/fog/xenserver/core.rb
index 5df39cd..f0c87cf 100644
--- a/lib/fog/xenserver/core.rb
+++ b/lib/fog/xenserver/core.rb
@@ -3,7 +3,6 @@ require 'fog/xml'
 
 module Fog
   module XenServer
-
     class InvalidLogin < Fog::Errors::Error; end
     class NotFound < Fog::Errors::Error; end
     class RequestFailed < Fog::Errors::Error; end
@@ -14,6 +13,8 @@ module Fog
 
     class Connection
       require 'xmlrpc/client'
+      
+      attr_reader :credentials
 
       def initialize(host, timeout)
         @factory = XMLRPC::Client.new(host, '/')
@@ -55,7 +56,6 @@ module Fog
     end
 
     class NokogiriStreamParser < XMLRPC::XMLParser::AbstractStreamParser
-
       def initialize
         require 'nokogiri/xml/sax/document'
         require 'nokogiri/xml/sax/parser'
@@ -75,10 +75,6 @@ module Fog
 
         end
       end
-
     end
-
   end
 end
-
-
diff --git a/lib/fog/xenserver/examples/networks-and-vlans.rb b/lib/fog/xenserver/examples/networks-and-vlans.rb
index f87c8a7..948dea0 100644
--- a/lib/fog/xenserver/examples/networks-and-vlans.rb
+++ b/lib/fog/xenserver/examples/networks-and-vlans.rb
@@ -29,7 +29,6 @@ vlans = [
   { "name" => "VLAN 55", "vlanid" => 55}
 ]
 
-
 vlans.each do |vlan|
   # Do not create duplicated networks
   if xenserver.networks.find { |n| n.name == vlan['name'] }
diff --git a/lib/fog/xenserver/models/compute/guest_metrics.rb b/lib/fog/xenserver/models/compute/guest_metrics.rb
index 662c83c..a9769af 100644
--- a/lib/fog/xenserver/models/compute/guest_metrics.rb
+++ b/lib/fog/xenserver/models/compute/guest_metrics.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class GuestMetrics < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VM_guest_metrics
@@ -21,9 +20,7 @@ module Fog
         attribute :other_config
         attribute :pv_drivers_up_to_date,    :aliases => :PV_drivers_up_to_date
         attribute :pv_drivers_version,       :aliases => :PV_drivers_version
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/host.rb b/lib/fog/xenserver/models/compute/host.rb
index 5dec0e8..a0a389d 100644
--- a/lib/fog/xenserver/models/compute/host.rb
+++ b/lib/fog/xenserver/models/compute/host.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class Host < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=host
@@ -60,15 +59,15 @@ module Fog
         attribute :software_version
 
         def pifs
-          __pifs.collect { |pif| service.pifs.get pif }
+          __pifs.map { |pif| service.pifs.get pif }
         end
 
         def pbds
-          __pbds.collect { |pbd| service.pbds.get pbd }
+          __pbds.map { |pbd| service.pbds.get pbd }
         end
 
         def resident_servers
-          __resident_vms.collect { |ref| service.servers.get ref }
+          __resident_vms.map { |ref| service.servers.get ref }
         end
 
         def resident_vms
@@ -151,9 +150,7 @@ module Fog
           # then reload manually
           #reload
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/host_cpu.rb b/lib/fog/xenserver/models/compute/host_cpu.rb
index 4d96fb8..4807b13 100644
--- a/lib/fog/xenserver/models/compute/host_cpu.rb
+++ b/lib/fog/xenserver/models/compute/host_cpu.rb
@@ -3,14 +3,12 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       #
       # A physical CPU
       #
       # @see http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=host_cpu
       #
       class HostCpu < Fog::Model
-
         identity :reference
 
         attribute :uuid
@@ -30,9 +28,7 @@ module Fog
         def host
           service.hosts.get __host
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/host_metrics.rb b/lib/fog/xenserver/models/compute/host_metrics.rb
index 7a4408d..5c0c85d 100644
--- a/lib/fog/xenserver/models/compute/host_metrics.rb
+++ b/lib/fog/xenserver/models/compute/host_metrics.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class HostMetrics < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=host_metrics
@@ -21,9 +20,7 @@ module Fog
           super
           self.last_updated = attributes[:last_updated].to_time
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/hosts.rb b/lib/fog/xenserver/models/compute/hosts.rb
index 4342b04..42df5cc 100644
--- a/lib/fog/xenserver/models/compute/hosts.rb
+++ b/lib/fog/xenserver/models/compute/hosts.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/host'
 module Fog
   module Compute
     class XenServer
-
       class Hosts < Fog::Collection
-
         model Fog::Compute::XenServer::Host
 
         def all(options={})
@@ -21,9 +19,7 @@ module Fog
             nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/network.rb b/lib/fog/xenserver/models/compute/network.rb
index 91b0f7c..a0a63f0 100644
--- a/lib/fog/xenserver/models/compute/network.rb
+++ b/lib/fog/xenserver/models/compute/network.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class Network < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=network
@@ -86,7 +85,6 @@ module Fog
           true
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/networks.rb b/lib/fog/xenserver/models/compute/networks.rb
index 0048991..87f1cfe 100644
--- a/lib/fog/xenserver/models/compute/networks.rb
+++ b/lib/fog/xenserver/models/compute/networks.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/network'
 module Fog
   module Compute
     class XenServer
-
       class Networks < Fog::Collection
-
         model Fog::Compute::XenServer::Network
 
         def initialize(attributes)
@@ -25,9 +23,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/pbd.rb b/lib/fog/xenserver/models/compute/pbd.rb
index f7680da..f980a7c 100644
--- a/lib/fog/xenserver/models/compute/pbd.rb
+++ b/lib/fog/xenserver/models/compute/pbd.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class PBD < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=PBD
@@ -32,9 +31,7 @@ module Fog
         def unplug
           service.unplug_pbd reference
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/pbds.rb b/lib/fog/xenserver/models/compute/pbds.rb
index de765a3..dfd5014 100644
--- a/lib/fog/xenserver/models/compute/pbds.rb
+++ b/lib/fog/xenserver/models/compute/pbds.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/pbd'
 module Fog
   module Compute
     class XenServer
-
       class Pbds < Fog::Collection
-
         model Fog::Compute::XenServer::PBD
 
         def initialize(attributes)
@@ -25,9 +23,7 @@ module Fog
             nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/pif.rb b/lib/fog/xenserver/models/compute/pif.rb
index 07e5cfe..d40164e 100644
--- a/lib/fog/xenserver/models/compute/pif.rb
+++ b/lib/fog/xenserver/models/compute/pif.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class PIF < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=PIF
@@ -49,9 +48,7 @@ module Fog
         def host
           service.hosts.get __host
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/pifs.rb b/lib/fog/xenserver/models/compute/pifs.rb
index f7e8ae4..2a2226e 100644
--- a/lib/fog/xenserver/models/compute/pifs.rb
+++ b/lib/fog/xenserver/models/compute/pifs.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/pif'
 module Fog
   module Compute
     class XenServer
-
       class Pifs < Fog::Collection
-
         model Fog::Compute::XenServer::PIF
 
         def initialize(attributes)
@@ -25,9 +23,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/pool.rb b/lib/fog/xenserver/models/compute/pool.rb
index 592e48a..57a19d1 100644
--- a/lib/fog/xenserver/models/compute/pool.rb
+++ b/lib/fog/xenserver/models/compute/pool.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class Pool < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=pool
@@ -38,7 +37,6 @@ module Fog
         attribute :wlb_username
         attribute :wlb_verify_cert
 
-
         def default_sr
           service.storage_repositories.get __default_sr
         end
@@ -46,7 +44,7 @@ module Fog
         def default_sr=(sr)
           service.set_attribute( 'pool', reference, 'default_SR', sr.reference )
         end
-        alias :default_storage_repository= :default_sr=
+        alias_method :default_storage_repository=, :default_sr=
 
         def default_storage_repository
           default_sr
@@ -71,9 +69,7 @@ module Fog
           # then reload manually
           #reload
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/pools.rb b/lib/fog/xenserver/models/compute/pools.rb
index c39c074..c96019a 100644
--- a/lib/fog/xenserver/models/compute/pools.rb
+++ b/lib/fog/xenserver/models/compute/pools.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/pool'
 module Fog
   module Compute
     class XenServer
-
       class Pools < Fog::Collection
-
         model Fog::Compute::XenServer::Pool
 
         def initialize(attributes)
@@ -25,9 +23,7 @@ module Fog
             nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/server.rb b/lib/fog/xenserver/models/compute/server.rb
index 6418cc0..31e6337 100644
--- a/lib/fog/xenserver/models/compute/server.rb
+++ b/lib/fog/xenserver/models/compute/server.rb
@@ -3,7 +3,6 @@ require 'fog/compute/models/server'
 module Fog
   module Compute
     class XenServer
-
       class Server < Fog::Compute::Server
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VM
@@ -90,7 +89,7 @@ module Fog
         attribute :snapshots
 
         def vbds
-          __vbds.collect {|vbd| service.vbds.get vbd }
+          __vbds.map {|vbd| service.vbds.get vbd }
         end
 
         def affinity
@@ -98,7 +97,7 @@ module Fog
         end
 
         def consoles
-          __consoles.collect {|console| service.consoles.get console }
+          __consoles.map {|console| service.consoles.get console }
         end
 
         def destroy
@@ -131,12 +130,12 @@ module Fog
         end
 
         def vifs
-          __vifs.collect { |vif| service.vifs.get vif }
+          __vifs.map { |vif| service.vifs.get vif }
         end
 
         # associations
         def networks
-          vifs.collect { |v| v.network }
+          vifs.map { |v| v.network }
         end
 
         def resident_on
@@ -244,7 +243,6 @@ module Fog
           service.snapshot_revert(snapshot_ref)
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/servers.rb b/lib/fog/xenserver/models/compute/servers.rb
index a62af7e..3fe1f9c 100644
--- a/lib/fog/xenserver/models/compute/servers.rb
+++ b/lib/fog/xenserver/models/compute/servers.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/server'
 module Fog
   module Compute
     class XenServer
-
       class Servers < Fog::Collection
-
         model Fog::Compute::XenServer::Server
 
         def templates
@@ -60,9 +58,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/storage_repositories.rb b/lib/fog/xenserver/models/compute/storage_repositories.rb
index e3be7b9..59c73b9 100644
--- a/lib/fog/xenserver/models/compute/storage_repositories.rb
+++ b/lib/fog/xenserver/models/compute/storage_repositories.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/storage_repository'
 module Fog
   module Compute
     class XenServer
-
       class StorageRepositories < Fog::Collection
-
         model Fog::Compute::XenServer::StorageRepository
 
         def all
@@ -23,9 +21,7 @@ module Fog
             nil
           end
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/storage_repository.rb b/lib/fog/xenserver/models/compute/storage_repository.rb
index d882365..b4a727c 100644
--- a/lib/fog/xenserver/models/compute/storage_repository.rb
+++ b/lib/fog/xenserver/models/compute/storage_repository.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class StorageRepository < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=SR
@@ -31,11 +30,11 @@ module Fog
         attribute :virtual_allocation
 
         def vdis
-          __vdis.collect { |vdi| service.vdis.get vdi }
+          __vdis.map { |vdi| service.vdis.get vdi }
         end
 
         def pbds
-          __pbds.collect { |pbd| service.pbds.get pbd }
+          __pbds.map { |pbd| service.pbds.get pbd }
         end
 
         def scan
@@ -85,9 +84,7 @@ module Fog
           # then reload manually
           #reload
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vbd.rb b/lib/fog/xenserver/models/compute/vbd.rb
index e79f6b7..637d5e3 100644
--- a/lib/fog/xenserver/models/compute/vbd.rb
+++ b/lib/fog/xenserver/models/compute/vbd.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class VBD < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VBD
@@ -83,9 +82,7 @@ module Fog
           rec = service.get_record( __metrics, 'VBD_metrics' )
           Fog::Compute::XenServer::VbdMetrics.new(rec)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vbd_metrics.rb b/lib/fog/xenserver/models/compute/vbd_metrics.rb
index 53933d6..224d79e 100644
--- a/lib/fog/xenserver/models/compute/vbd_metrics.rb
+++ b/lib/fog/xenserver/models/compute/vbd_metrics.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class VbdMetrics < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VBD_metrics
@@ -21,7 +20,6 @@ module Fog
           self.last_updated = attributes[:last_updated].to_time
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vbds.rb b/lib/fog/xenserver/models/compute/vbds.rb
index 0e9eb95..5fb7282 100644
--- a/lib/fog/xenserver/models/compute/vbds.rb
+++ b/lib/fog/xenserver/models/compute/vbds.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/vbd'
 module Fog
   module Compute
     class XenServer
-
       class Vbds < Fog::Collection
-
         model Fog::Compute::XenServer::VBD
 
         def initialize(attributes)
@@ -25,9 +23,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vdi.rb b/lib/fog/xenserver/models/compute/vdi.rb
index 739e613..36e917f 100644
--- a/lib/fog/xenserver/models/compute/vdi.rb
+++ b/lib/fog/xenserver/models/compute/vdi.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class VDI < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VDI
@@ -69,13 +68,13 @@ module Fog
         end
 
         def snapshots
-          __snapshots.collect do |ref|
+          __snapshots.map do |ref|
             service.vdis.get ref
           end
         end
 
         def vbds
-          __vbds.collect do |ref|
+          __vbds.map do |ref|
             service.vbds.get ref
           end
         end
@@ -97,9 +96,7 @@ module Fog
         def sr
           storage_repository
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vdis.rb b/lib/fog/xenserver/models/compute/vdis.rb
index abe8f73..18ba41e 100644
--- a/lib/fog/xenserver/models/compute/vdis.rb
+++ b/lib/fog/xenserver/models/compute/vdis.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/vdi'
 module Fog
   module Compute
     class XenServer
-
       class Vdis < Fog::Collection
-
         model Fog::Compute::XenServer::VDI
 
         def all(options = {})
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vif.rb b/lib/fog/xenserver/models/compute/vif.rb
index 7523a9d..dc46cca 100644
--- a/lib/fog/xenserver/models/compute/vif.rb
+++ b/lib/fog/xenserver/models/compute/vif.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class VIF < Fog::Model
         # API Reference here:
         # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VIF
@@ -32,7 +31,6 @@ module Fog
         attribute :status_detail
         attribute :__vm,               :aliases => :VM
 
-
         def destroy
           service.destroy_vif reference
         end
@@ -52,9 +50,7 @@ module Fog
           ref = service.create_vif attributes[:server], attributes[:__network]
           merge_attributes service.vifs.get(ref).attributes
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vifs.rb b/lib/fog/xenserver/models/compute/vifs.rb
index 1b95551..59baae7 100644
--- a/lib/fog/xenserver/models/compute/vifs.rb
+++ b/lib/fog/xenserver/models/compute/vifs.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/vif'
 module Fog
   module Compute
     class XenServer
-
       class Vifs < Fog::Collection
-
         model Fog::Compute::XenServer::VIF
 
         def all(options = {})
@@ -21,9 +19,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vlan.rb b/lib/fog/xenserver/models/compute/vlan.rb
index 80d6fcf..e44e979 100644
--- a/lib/fog/xenserver/models/compute/vlan.rb
+++ b/lib/fog/xenserver/models/compute/vlan.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module Compute
     class XenServer
-
       class VLAN < Fog::Model
         # API Reference here:
         # @see http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VLAN
@@ -73,9 +72,7 @@ module Fog
           service.destroy_vlan reference
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/models/compute/vlans.rb b/lib/fog/xenserver/models/compute/vlans.rb
index fba9fbb..576250b 100644
--- a/lib/fog/xenserver/models/compute/vlans.rb
+++ b/lib/fog/xenserver/models/compute/vlans.rb
@@ -4,9 +4,7 @@ require 'fog/xenserver/models/compute/vlan'
 module Fog
   module Compute
     class XenServer
-
       class Vlans < Fog::Collection
-
         model Fog::Compute::XenServer::VLAN
 
         # Return the list of VLANs available
@@ -31,9 +29,7 @@ module Fog
         rescue Fog::XenServer::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parser.rb b/lib/fog/xenserver/parser.rb
index c5e0925..414b7c2 100644
--- a/lib/fog/xenserver/parser.rb
+++ b/lib/fog/xenserver/parser.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class Base
-
         attr_reader :response
 
         def initialize
@@ -29,7 +28,6 @@ module Fog
 
           @response
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/parsers/get_hosts.rb b/lib/fog/xenserver/parsers/get_hosts.rb
index cea3bce..78785e8 100644
--- a/lib/fog/xenserver/parsers/get_hosts.rb
+++ b/lib/fog/xenserver/parsers/get_hosts.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetHosts < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, host_hash| @response << parser.parse( host_hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_networks.rb b/lib/fog/xenserver/parsers/get_networks.rb
index 0c4a320..60e2fe2 100644
--- a/lib/fog/xenserver/parsers/get_networks.rb
+++ b/lib/fog/xenserver/parsers/get_networks.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetNetworks < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, network_hash| @response << parser.parse( network_hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_pools.rb b/lib/fog/xenserver/parsers/get_pools.rb
index 3ff4573..5c39cd1 100644
--- a/lib/fog/xenserver/parsers/get_pools.rb
+++ b/lib/fog/xenserver/parsers/get_pools.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetPools < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, pool_hash| @response << parser.parse( pool_hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_records.rb b/lib/fog/xenserver/parsers/get_records.rb
index 6ba1874..c8a34c7 100644
--- a/lib/fog/xenserver/parsers/get_records.rb
+++ b/lib/fog/xenserver/parsers/get_records.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetRecords < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, hash| @response << parser.parse( hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_storage_repositories.rb b/lib/fog/xenserver/parsers/get_storage_repositories.rb
index d1b1a8a..379f241 100644
--- a/lib/fog/xenserver/parsers/get_storage_repositories.rb
+++ b/lib/fog/xenserver/parsers/get_storage_repositories.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetStorageRepositories < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, sr_hash| @response << parser.parse( sr_hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_vbds.rb b/lib/fog/xenserver/parsers/get_vbds.rb
index 7b5a59c..d5e4ef9 100644
--- a/lib/fog/xenserver/parsers/get_vbds.rb
+++ b/lib/fog/xenserver/parsers/get_vbds.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetVBDs < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, hash| @response << parser.parse( hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_vifs.rb b/lib/fog/xenserver/parsers/get_vifs.rb
index 6e83ad6..bc61117 100644
--- a/lib/fog/xenserver/parsers/get_vifs.rb
+++ b/lib/fog/xenserver/parsers/get_vifs.rb
@@ -2,7 +2,6 @@ module Fog
   module Parsers
     module XenServer
       class GetVIFs < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -11,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, vif_hash| @response << parser.parse( vif_hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/parsers/get_vms.rb b/lib/fog/xenserver/parsers/get_vms.rb
index f91c483..ce03579 100644
--- a/lib/fog/xenserver/parsers/get_vms.rb
+++ b/lib/fog/xenserver/parsers/get_vms.rb
@@ -1,9 +1,7 @@
 module Fog
   module Parsers
     module XenServer
-
       class GetVms < Fog::Parsers::XenServer::Base
-
         def reset
           @response = []
         end
@@ -12,9 +10,7 @@ module Fog
           parser = Fog::Parsers::XenServer::Base.new
           data.each_pair {|reference, vm_hash| @response << parser.parse( vm_hash ).merge(:reference => reference) }
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/clone_server.rb b/lib/fog/xenserver/requests/compute/clone_server.rb
index 0c926fe..50a18ea 100644
--- a/lib/fog/xenserver/requests/compute/clone_server.rb
+++ b/lib/fog/xenserver/requests/compute/clone_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class XenServer
       class Real
-
         def clone_server( server_name, template_ref )
           # Clone the VM template
           if template_ref.kind_of? Fog::Compute::XenServer::Server
@@ -16,16 +15,13 @@ module Fog
             template_ref, server_name
           )
         end
-
       end
 
       class Mock
-
         def clone_server( server_name, template_ref )
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_network.rb b/lib/fog/xenserver/requests/compute/create_network.rb
index 265efde..3cfb844 100644
--- a/lib/fog/xenserver/requests/compute/create_network.rb
+++ b/lib/fog/xenserver/requests/compute/create_network.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         # Create a Network
         #
         # @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=network
@@ -30,13 +28,10 @@ module Fog
       end
 
       class Mock
-
         def create_network( name, description = '', config = {} )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_server.rb b/lib/fog/xenserver/requests/compute/create_server.rb
index 2daadf2..2bceb09 100644
--- a/lib/fog/xenserver/requests/compute/create_server.rb
+++ b/lib/fog/xenserver/requests/compute/create_server.rb
@@ -2,7 +2,6 @@ module Fog
   module Compute
     class XenServer
       class Real
-
         def get_vm_by_name(label)
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.get_by_name_label' }, label)
         end
@@ -22,7 +21,7 @@ module Fog
             if not config[:affinity]
           config[:affinity] = config[:affinity].reference \
             if config[:affinity].kind_of? Fog::Compute::XenServer::Host
-          config.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
+          config.reduce({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
           %w{ VCPUs_at_startup
               VCPUs_max
               VCPUs_params
@@ -56,8 +55,7 @@ module Fog
             :actions_after_shutdown =>  'Destroy',
             :actions_after_reboot =>    'Restart',
             :actions_after_crash =>     'Restart',
-            :platform =>                { 'nx' => false, 'acpi' => true, 'apic' => 'true', 'pae' => true, 'viridian' => true},
-            :platform =>                {},
+            :platform =>                { :'nx' => 'true', :'acpi' => 'true', :'apic' => 'true', :'pae' => 'true', :'viridian' => 'true' },
             :other_config =>            {},
             :pool_name =>               '',
             :PV_bootloader =>           'pygrub', #pvgrub, eliloader
@@ -110,11 +108,9 @@ module Fog
 
           ref
         end
-
       end
 
       class Mock
-
         def create_server( name_label, template = nil, network = nil, extra_args = {})
           Fog::Mock.not_implemented
         end
@@ -122,9 +118,7 @@ module Fog
         def create_server_raw(config = {})
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_sr.rb b/lib/fog/xenserver/requests/compute/create_sr.rb
index 54530c6..7887685 100644
--- a/lib/fog/xenserver/requests/compute/create_sr.rb
+++ b/lib/fog/xenserver/requests/compute/create_sr.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         #
         # Create a storage repository (SR)
         #
@@ -48,11 +46,9 @@ module Fog
             sm_config || {}
           )
         end
-
       end
 
       class Mock
-
         def create_sr( host_ref,
                        name_label,
                        type,
@@ -64,9 +60,7 @@ module Fog
                        sm_config        = {} )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_vbd.rb b/lib/fog/xenserver/requests/compute/create_vbd.rb
index e54a733..c7af83c 100644
--- a/lib/fog/xenserver/requests/compute/create_vbd.rb
+++ b/lib/fog/xenserver/requests/compute/create_vbd.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def create_vbd( vm_ref, vdi_ref, config = {} )
           raise ArgumentError.new('Invalid config') if config.nil?
           vm_ref = vm_ref.reference if vm_ref.kind_of? Fog::Compute::XenServer::Server
@@ -28,13 +26,10 @@ module Fog
       end
 
       class Mock
-
         def create_vbd( config )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_vdi.rb b/lib/fog/xenserver/requests/compute/create_vdi.rb
index cf28541..9e8c3b1 100644
--- a/lib/fog/xenserver/requests/compute/create_vdi.rb
+++ b/lib/fog/xenserver/requests/compute/create_vdi.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def create_vdi( config )
           raise ArgumentError.new('Invalid config') if config.nil?
           raise ArgumentError.new('Missing virtual_size attribute') if config[:virtual_size].nil?
@@ -21,13 +19,10 @@ module Fog
       end
 
       class Mock
-
         def create_vdi( ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_vif.rb b/lib/fog/xenserver/requests/compute/create_vif.rb
index b1d5d39..9c8b025 100644
--- a/lib/fog/xenserver/requests/compute/create_vif.rb
+++ b/lib/fog/xenserver/requests/compute/create_vif.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def create_vif( vm_ref, network_ref, device = -1)
           raise ArgumentError.new('Invalid vm_ref') if vm_ref.nil?
           raise ArgumentError.new('Invalid network_ref') if network_ref.nil?
@@ -45,13 +43,10 @@ module Fog
       end
 
       class Mock
-
         def create_vif( vm_ref, network_ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/create_vlan.rb b/lib/fog/xenserver/requests/compute/create_vlan.rb
index 19dfc1a..2ab5c29 100644
--- a/lib/fog/xenserver/requests/compute/create_vlan.rb
+++ b/lib/fog/xenserver/requests/compute/create_vlan.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         #
         # Create a VLAN
         #
@@ -23,13 +21,10 @@ module Fog
       end
 
       class Mock
-
         def create_vlan( pif_ref, vlan_id, network_ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/destroy_network.rb b/lib/fog/xenserver/requests/compute/destroy_network.rb
index 87b38e5..bc43633 100644
--- a/lib/fog/xenserver/requests/compute/destroy_network.rb
+++ b/lib/fog/xenserver/requests/compute/destroy_network.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         #
         # Destroy a Network
         #
@@ -18,15 +16,12 @@ module Fog
             ref
           )
         end
-
       end
 
       class Mock
-
         def destroy_network( ref )
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/destroy_server.rb b/lib/fog/xenserver/requests/compute/destroy_server.rb
index 45c1111..909279b 100644
--- a/lib/fog/xenserver/requests/compute/destroy_server.rb
+++ b/lib/fog/xenserver/requests/compute/destroy_server.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def destroy_server( vm_ref , extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.destroy'}, vm_ref)
         end
-
       end
 
       class Mock
-
         def destroy_server()
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/destroy_sr.rb b/lib/fog/xenserver/requests/compute/destroy_sr.rb
index 67cc35a..b17979c 100644
--- a/lib/fog/xenserver/requests/compute/destroy_sr.rb
+++ b/lib/fog/xenserver/requests/compute/destroy_sr.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         #
         # Destroy a Storage Repository
         #
@@ -15,15 +13,12 @@ module Fog
             sr_ref
           )
         end
-
       end
 
       class Mock
-
         def destroy_sr( sr_ref )
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/destroy_vdi.rb b/lib/fog/xenserver/requests/compute/destroy_vdi.rb
index ac4f428..82f66b8 100644
--- a/lib/fog/xenserver/requests/compute/destroy_vdi.rb
+++ b/lib/fog/xenserver/requests/compute/destroy_vdi.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def destroy_vdi( vdi_ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VDI.destroy'}, vdi_ref)
         end
-
       end
 
       class Mock
-
         def destroy_vdi()
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/destroy_vif.rb b/lib/fog/xenserver/requests/compute/destroy_vif.rb
index d709209..2861400 100644
--- a/lib/fog/xenserver/requests/compute/destroy_vif.rb
+++ b/lib/fog/xenserver/requests/compute/destroy_vif.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def destroy_vif( ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VIF.destroy'}, ref)
         end
-
       end
 
       class Mock
-
         def destroy_vif()
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/destroy_vlan.rb b/lib/fog/xenserver/requests/compute/destroy_vlan.rb
index 809584e..62d0df5 100644
--- a/lib/fog/xenserver/requests/compute/destroy_vlan.rb
+++ b/lib/fog/xenserver/requests/compute/destroy_vlan.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         # Destroy a VLAN
         #
         # @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VLAN
@@ -17,15 +15,12 @@ module Fog
             ref
           )
         end
-
       end
 
       class Mock
-
         def destroy_vlan( ref )
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/disable_host.rb b/lib/fog/xenserver/requests/compute/disable_host.rb
index 989a8f4..80248e7 100644
--- a/lib/fog/xenserver/requests/compute/disable_host.rb
+++ b/lib/fog/xenserver/requests/compute/disable_host.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         #
         # Puts the host into a state in which no new VMs can be started.
         # Currently active VMs on the host continue to execute.
@@ -13,17 +11,13 @@ module Fog
         def disable_host( ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.disable"}, ref)
         end
-
       end
 
       class Mock
-
         def disable_host( ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/eject_vbd.rb b/lib/fog/xenserver/requests/compute/eject_vbd.rb
index 5412da2..f3be5f3 100644
--- a/lib/fog/xenserver/requests/compute/eject_vbd.rb
+++ b/lib/fog/xenserver/requests/compute/eject_vbd.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def eject_vbd(ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.eject'}, ref)
         end
-
       end
 
       class Mock
-
         def eject_vbd(ref, extra_args = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/enable_host.rb b/lib/fog/xenserver/requests/compute/enable_host.rb
index d77b7cb..818f844 100644
--- a/lib/fog/xenserver/requests/compute/enable_host.rb
+++ b/lib/fog/xenserver/requests/compute/enable_host.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         #
         # Puts the host into a state in which VMs can be started.
         #
@@ -12,17 +10,13 @@ module Fog
         def enable_host( ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.enable"}, ref)
         end
-
       end
 
       class Mock
-
         def enable_host( ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/get_record.rb b/lib/fog/xenserver/requests/compute/get_record.rb
index 2585b73..254eaba 100644
--- a/lib/fog/xenserver/requests/compute/get_record.rb
+++ b/lib/fog/xenserver/requests/compute/get_record.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         require 'fog/xenserver/parser'
 
         def get_record( ref, klass, options = {} )
@@ -13,17 +11,13 @@ module Fog
         def get_record_by_ref( ref, klass, options = {} )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "#{klass}.get_record"}, ref).merge(:reference => ref)
         end
-
       end
 
       class Mock
-
         def get_record_by_ref
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/get_records.rb b/lib/fog/xenserver/requests/compute/get_records.rb
index 2d4ca7a..a8dc8ed 100644
--- a/lib/fog/xenserver/requests/compute/get_records.rb
+++ b/lib/fog/xenserver/requests/compute/get_records.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
    class XenServer
-
       class Real
-
         require 'fog/xenserver/parsers/get_records'
 
         def get_records( klass, options = {} )
@@ -14,17 +12,13 @@ module Fog
             []
           end
         end
-
       end
 
       class Mock
-
         def get_vms
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/insert_vbd.rb b/lib/fog/xenserver/requests/compute/insert_vbd.rb
index 383181b..a80ad47 100644
--- a/lib/fog/xenserver/requests/compute/insert_vbd.rb
+++ b/lib/fog/xenserver/requests/compute/insert_vbd.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def insert_vbd(ref, vdi_ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.insert'}, ref, vdi_ref)
         end
-
       end
 
       class Mock
-
         def insert_vbd(ref, vdi_ref, extra_args = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/provision_server.rb b/lib/fog/xenserver/requests/compute/provision_server.rb
index a8ab8a3..3d57f57 100644
--- a/lib/fog/xenserver/requests/compute/provision_server.rb
+++ b/lib/fog/xenserver/requests/compute/provision_server.rb
@@ -2,20 +2,16 @@ module Fog
   module Compute
     class XenServer
       class Real
-
         def provision_server( ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.provision'}, ref)
         end
-
       end
 
       class Mock
-
         def provision_server( ref )
           Fog::Mock.not_implemented
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/reboot_host.rb b/lib/fog/xenserver/requests/compute/reboot_host.rb
index 45ddf36..394c27d 100644
--- a/lib/fog/xenserver/requests/compute/reboot_host.rb
+++ b/lib/fog/xenserver/requests/compute/reboot_host.rb
@@ -1,23 +1,17 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         def reboot_host( ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.reboot"}, ref)
         end
-
       end
 
       class Mock
-
         def reboot_host( ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/reboot_server.rb b/lib/fog/xenserver/requests/compute/reboot_server.rb
index 7030e06..e999bd3 100644
--- a/lib/fog/xenserver/requests/compute/reboot_server.rb
+++ b/lib/fog/xenserver/requests/compute/reboot_server.rb
@@ -1,23 +1,17 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         def reboot_server( ref, stype = 'clean' )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "VM.#{stype}_reboot"}, ref)
         end
-
       end
 
       class Mock
-
         def reboot_server( ref, stype )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/scan_sr.rb b/lib/fog/xenserver/requests/compute/scan_sr.rb
index 05db41d..a661873 100644
--- a/lib/fog/xenserver/requests/compute/scan_sr.rb
+++ b/lib/fog/xenserver/requests/compute/scan_sr.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def scan_sr( ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'SR.scan'}, ref)
         end
-
       end
 
       class Mock
-
         def scan_sr(ref, extra_args = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/set_affinity.rb b/lib/fog/xenserver/requests/compute/set_affinity.rb
index 0ce91a9..09e8585 100644
--- a/lib/fog/xenserver/requests/compute/set_affinity.rb
+++ b/lib/fog/xenserver/requests/compute/set_affinity.rb
@@ -1,25 +1,19 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         require 'fog/xenserver/parser'
 
         def set_affinity( host_ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.set_affinity'}, host_ref)
         end
-
       end
 
       class Mock
-
         def set_affinity( uuid )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/set_attribute.rb b/lib/fog/xenserver/requests/compute/set_attribute.rb
index adaa1d7..42b1578 100644
--- a/lib/fog/xenserver/requests/compute/set_attribute.rb
+++ b/lib/fog/xenserver/requests/compute/set_attribute.rb
@@ -1,25 +1,19 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         require 'fog/xenserver/parser'
 
         def set_attribute( klass, ref, attr_name, *value )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "#{klass}.set_#{attr_name.gsub('-','_')}"}, ref, *value)
         end
-
       end
 
       class Mock
-
         def set_attribute( klass, ref, attr_name, value )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/shutdown_host.rb b/lib/fog/xenserver/requests/compute/shutdown_host.rb
index 4a1aef9..115809f 100644
--- a/lib/fog/xenserver/requests/compute/shutdown_host.rb
+++ b/lib/fog/xenserver/requests/compute/shutdown_host.rb
@@ -1,23 +1,17 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         def shutdown_host( ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "host.shutdown"}, ref)
         end
-
       end
 
       class Mock
-
         def shutdown_host( ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/shutdown_server.rb b/lib/fog/xenserver/requests/compute/shutdown_server.rb
index 9aa806e..5912346 100644
--- a/lib/fog/xenserver/requests/compute/shutdown_server.rb
+++ b/lib/fog/xenserver/requests/compute/shutdown_server.rb
@@ -1,23 +1,17 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         def shutdown_server( vm_ref, stype = 'clean' )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => "VM.#{stype}_shutdown"}, vm_ref)
         end
-
       end
 
       class Mock
-
         def shutdown_server( vm_ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/snapshot_revert.rb b/lib/fog/xenserver/requests/compute/snapshot_revert.rb
index c6b7186..01aa668 100644
--- a/lib/fog/xenserver/requests/compute/snapshot_revert.rb
+++ b/lib/fog/xenserver/requests/compute/snapshot_revert.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def snapshot_revert( snapshot_ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.revert'}, snapshot_ref)
         end
-
       end
 
       class Mock
-
         def snapshot_revert()
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/snapshot_server.rb b/lib/fog/xenserver/requests/compute/snapshot_server.rb
index 197ea09..f2e8014 100644
--- a/lib/fog/xenserver/requests/compute/snapshot_server.rb
+++ b/lib/fog/xenserver/requests/compute/snapshot_server.rb
@@ -1,21 +1,16 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def snapshot_server( vm_ref , name, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.snapshot'}, vm_ref, name)
         end
-
       end
 
       class Mock
-
         def snapshot_server()
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/start_server.rb b/lib/fog/xenserver/requests/compute/start_server.rb
index e756d99..93e934b 100644
--- a/lib/fog/xenserver/requests/compute/start_server.rb
+++ b/lib/fog/xenserver/requests/compute/start_server.rb
@@ -1,23 +1,17 @@
 module Fog
   module Compute
-
     class XenServer
       class Real
-
         def start_server( vm_ref )
           start_vm( vm_ref )
         end
-
       end
 
       class Mock
-
         def start_server( vm_ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/start_vm.rb b/lib/fog/xenserver/requests/compute/start_vm.rb
index 4b26315..0910812 100644
--- a/lib/fog/xenserver/requests/compute/start_vm.rb
+++ b/lib/fog/xenserver/requests/compute/start_vm.rb
@@ -1,25 +1,19 @@
 module Fog
   module Compute
     class  XenServer
-
       class Real
-
         # http://bit.ly/8ZPyCN
         # VM.start( session, VM_ref, start_paused, force)
         def start_vm( vm_ref )
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.start'}, vm_ref, false, false)
         end
-
       end
 
       class Mock
-
         def start_vm( vm_ref )
           Fog::Mock.not_implemented
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/xenserver/requests/compute/unplug_pbd.rb b/lib/fog/xenserver/requests/compute/unplug_pbd.rb
index 94e8e52..0bb2c60 100644
--- a/lib/fog/xenserver/requests/compute/unplug_pbd.rb
+++ b/lib/fog/xenserver/requests/compute/unplug_pbd.rb
@@ -1,24 +1,19 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def unplug_pbd( ref )
           @connection.request(
             {:parser => Fog::Parsers::XenServer::Base.new, :method => 'PBD.unplug'},
             ref
           )
         end
-
       end
 
       class Mock
-
         def unplug_pbd( ref )
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xenserver/requests/compute/unplug_vbd.rb b/lib/fog/xenserver/requests/compute/unplug_vbd.rb
index 4bae72d..658392d 100644
--- a/lib/fog/xenserver/requests/compute/unplug_vbd.rb
+++ b/lib/fog/xenserver/requests/compute/unplug_vbd.rb
@@ -1,9 +1,7 @@
 module Fog
   module Compute
     class XenServer
-
       class Real
-
         def unplug_vbd( vbd_ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.unplug'}, vbd_ref)
         end
@@ -11,11 +9,9 @@ module Fog
         def unplug_force_vbd(ref, extra_args = {})
           @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VBD.unplug_force'}, ref)
         end
-
       end
 
       class Mock
-
         def unplug_vbd(ref, extra_args = {})
           Fog::Mock.not_implemented
         end
@@ -23,7 +19,6 @@ module Fog
         def unplug_force_vbd(ref, extra_args = {})
           Fog::Mock.not_implemented
         end
-
       end
     end
   end
diff --git a/lib/fog/xml.rb b/lib/fog/xml.rb
index 13d3c88..2fea6aa 100644
--- a/lib/fog/xml.rb
+++ b/lib/fog/xml.rb
@@ -1,29 +1,4 @@
 require "nokogiri"
 require "fog/core/parser"
 require "fog/xml/sax_parser_connection"
-
-module Fog
-
-  # @note Extracting XML components out of core is a work in progress.
-  #
-  # The {XML} module includes functionality that is common between APIs using
-  # XML to send and receive data.
-  #
-  # The intent is to provide common code for provider APIs using XML but not
-  # require it for those using JSON.
-  #
-  # @todo Add +require "fog/xml"+ and/or +include Fog::XML+ to providers using
-  #   its services
-  #
-  module XML
-    class Connection < Fog::XML::SAXParserConnection
-      def request(params, &block)
-        if (parser = params.delete(:parser))
-          super(parser, params)
-        else
-          original_request(params)
-        end
-      end
-    end
-  end
-end
+require "fog/xml/connection"
diff --git a/lib/fog/xml/connection.rb b/lib/fog/xml/connection.rb
index fedcc4b..32fd7d9 100644
--- a/lib/fog/xml/connection.rb
+++ b/lib/fog/xml/connection.rb
@@ -1,6 +1,17 @@
 module Fog
+  # @note Extracting XML components out of core is a work in progress.
+  #
+  # The {XML} module includes functionality that is common between APIs using
+  # XML to send and receive data.
+  #
+  # The intent is to provide common code for provider APIs using XML but not
+  # require it for those using JSON.
+  #
+  # @todo Add +require "fog/xml"+ and/or +include Fog::XML+ to providers using
+  #   its services
+  #
   module XML
-    class Connection < SAXParserConnection
+    class Connection < Fog::XML::SAXParserConnection
       def request(params, &block)
         if (parser = params.delete(:parser))
           super(parser, params)
diff --git a/lib/fog/xml/sax_parser_connection.rb b/lib/fog/xml/sax_parser_connection.rb
index a5065bc..f80f98f 100644
--- a/lib/fog/xml/sax_parser_connection.rb
+++ b/lib/fog/xml/sax_parser_connection.rb
@@ -1,7 +1,6 @@
 module Fog
   module XML
     class SAXParserConnection < Fog::Core::Connection
-
       # Makes a request using the connection using Excon
       #
       # @param [Hash] params
diff --git a/lib/fog/zerigo/core.rb b/lib/fog/zerigo/core.rb
index 0b82845..b5e6f53 100644
--- a/lib/fog/zerigo/core.rb
+++ b/lib/fog/zerigo/core.rb
@@ -3,10 +3,8 @@ require 'fog/xml'
 
 module Fog
   module Zerigo
-
     extend Fog::Provider
 
     service(:dns, 'DNS')
-
   end
 end
diff --git a/lib/fog/zerigo/dns.rb b/lib/fog/zerigo/dns.rb
index ca80c59..9ce50ae 100644
--- a/lib/fog/zerigo/dns.rb
+++ b/lib/fog/zerigo/dns.rb
@@ -3,7 +3,6 @@ require 'fog/zerigo/core'
 module Fog
   module DNS
     class Zerigo < Fog::Service
-
       requires :zerigo_email, :zerigo_token
       recognizes :host, :persistent, :port, :scheme, :timeout
 
@@ -30,7 +29,6 @@ module Fog
       request :update_zone
 
       class Mock
-
         def self.data
           @data ||= Hash.new do |hash, key|
             hash[key] = key == :zones ? [] : {}
@@ -63,12 +61,11 @@ module Fog
         end
 
         def find_host(host_id)
-          self.data[:zones].collect { |z| z['hosts'].find { |h| h['id'] == host_id } }.compact.first
+          self.data[:zones].map { |z| z['hosts'].find { |h| h['id'] == host_id } }.compact.first
         end
       end
 
       class Real
-
         def initialize(options={})
           require 'fog/core/parser'
 
@@ -100,7 +97,7 @@ module Fog
           end
 
           begin
-            response = @connection.request(params.merge!({:host => @host}))
+            response = @connection.request(params)
           rescue Excon::Errors::HTTPStatusError => error
             raise case error
             when Excon::Errors::NotFound
@@ -112,7 +109,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/models/dns/record.rb b/lib/fog/zerigo/models/dns/record.rb
index 8223714..ae22769 100644
--- a/lib/fog/zerigo/models/dns/record.rb
+++ b/lib/fog/zerigo/models/dns/record.rb
@@ -3,7 +3,6 @@ require 'fog/core/model'
 module Fog
   module DNS
     class Zerigo
-
       class Record < Fog::Model
         extend Fog::Deprecation
         deprecate :ip, :value
@@ -61,9 +60,7 @@ module Fog
         def zone=(new_zone)
           @zone = new_zone
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/zerigo/models/dns/records.rb b/lib/fog/zerigo/models/dns/records.rb
index a43071c..4874fc1 100644
--- a/lib/fog/zerigo/models/dns/records.rb
+++ b/lib/fog/zerigo/models/dns/records.rb
@@ -4,9 +4,7 @@ require 'fog/zerigo/models/dns/record'
 module Fog
   module DNS
     class Zerigo
-
       class Records < Fog::Collection
-
         attribute :zone
 
         model Fog::DNS::Zerigo::Record
@@ -41,9 +39,7 @@ module Fog
           requires :zone
           super({ :zone => zone }.merge!(attributes))
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/zerigo/models/dns/zone.rb b/lib/fog/zerigo/models/dns/zone.rb
index d55c5c1..046f46f 100644
--- a/lib/fog/zerigo/models/dns/zone.rb
+++ b/lib/fog/zerigo/models/dns/zone.rb
@@ -4,9 +4,7 @@ require 'fog/zerigo/models/dns/records'
 module Fog
   module DNS
     class Zerigo
-
       class Zone < Fog::Model
-
         identity :id
 
         attribute :created_at,  :aliases => 'created-at'
@@ -80,9 +78,7 @@ module Fog
           merge_attributes(data.body)
           true
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/zerigo/models/dns/zones.rb b/lib/fog/zerigo/models/dns/zones.rb
index ab44de7..96c79ef 100644
--- a/lib/fog/zerigo/models/dns/zones.rb
+++ b/lib/fog/zerigo/models/dns/zones.rb
@@ -4,9 +4,7 @@ require 'fog/zerigo/models/dns/zone'
 module Fog
   module DNS
     class Zerigo
-
       class Zones < Fog::Collection
-
         model Fog::DNS::Zerigo::Zone
 
         def all(options = {})
@@ -22,9 +20,7 @@ module Fog
         rescue Fog::Service::NotFound
           nil
         end
-
       end
-
     end
   end
 end
diff --git a/lib/fog/zerigo/parsers/dns/count_hosts.rb b/lib/fog/zerigo/parsers/dns/count_hosts.rb
index 95fc7ec..54873d0 100644
--- a/lib/fog/zerigo/parsers/dns/count_hosts.rb
+++ b/lib/fog/zerigo/parsers/dns/count_hosts.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class CountHosts < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/count_zones.rb b/lib/fog/zerigo/parsers/dns/count_zones.rb
index 3c58956..9ce14dd 100644
--- a/lib/fog/zerigo/parsers/dns/count_zones.rb
+++ b/lib/fog/zerigo/parsers/dns/count_zones.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class CountZones < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -15,9 +13,7 @@ module Fog
               @response[name] = value.to_i
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/create_host.rb b/lib/fog/zerigo/parsers/dns/create_host.rb
index 2a93d70..285cb8b 100644
--- a/lib/fog/zerigo/parsers/dns/create_host.rb
+++ b/lib/fog/zerigo/parsers/dns/create_host.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class CreateHost < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -19,9 +17,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/create_zone.rb b/lib/fog/zerigo/parsers/dns/create_zone.rb
index 77bcb14..0667377 100644
--- a/lib/fog/zerigo/parsers/dns/create_zone.rb
+++ b/lib/fog/zerigo/parsers/dns/create_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class CreateZone < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/find_hosts.rb b/lib/fog/zerigo/parsers/dns/find_hosts.rb
index 03ca761..b476613 100644
--- a/lib/fog/zerigo/parsers/dns/find_hosts.rb
+++ b/lib/fog/zerigo/parsers/dns/find_hosts.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class FindHosts < Fog::Parsers::Base
-
           def reset
             @host = {}
             @response = { 'hosts' => [] }
@@ -23,9 +21,7 @@ module Fog
               @host = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/get_host.rb b/lib/fog/zerigo/parsers/dns/get_host.rb
index 74188d3..d85c8b2 100644
--- a/lib/fog/zerigo/parsers/dns/get_host.rb
+++ b/lib/fog/zerigo/parsers/dns/get_host.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class GetHost < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -19,9 +17,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/get_zone.rb b/lib/fog/zerigo/parsers/dns/get_zone.rb
index c0fb480..8230454 100644
--- a/lib/fog/zerigo/parsers/dns/get_zone.rb
+++ b/lib/fog/zerigo/parsers/dns/get_zone.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class GetZone < Fog::Parsers::Base
-
           def reset
             @host = {}
             @hosts = []
@@ -47,11 +45,8 @@ module Fog
                 @response[name] = value
               end
             end
-
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/get_zone_stats.rb b/lib/fog/zerigo/parsers/dns/get_zone_stats.rb
index c542481..2bda876 100644
--- a/lib/fog/zerigo/parsers/dns/get_zone_stats.rb
+++ b/lib/fog/zerigo/parsers/dns/get_zone_stats.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class GetZoneStats < Fog::Parsers::Base
-
           def reset
             @response = {}
           end
@@ -17,9 +15,7 @@ module Fog
               @response[name] = value
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/list_hosts.rb b/lib/fog/zerigo/parsers/dns/list_hosts.rb
index 326935c..4d12a7b 100644
--- a/lib/fog/zerigo/parsers/dns/list_hosts.rb
+++ b/lib/fog/zerigo/parsers/dns/list_hosts.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class ListHosts < Fog::Parsers::Base
-
           def reset
             @host = {}
             @response = { 'hosts' => [] }
@@ -23,9 +21,7 @@ module Fog
               @host = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/parsers/dns/list_zones.rb b/lib/fog/zerigo/parsers/dns/list_zones.rb
index 73359f8..5fcec25 100644
--- a/lib/fog/zerigo/parsers/dns/list_zones.rb
+++ b/lib/fog/zerigo/parsers/dns/list_zones.rb
@@ -2,9 +2,7 @@ module Fog
   module Parsers
     module DNS
       module Zerigo
-
         class ListZones < Fog::Parsers::Base
-
           def reset
             @zone = {}
             @response = { 'zones' => [] }
@@ -21,9 +19,7 @@ module Fog
               @zone = {}
             end
           end
-
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/requests/dns/count_hosts.rb b/lib/fog/zerigo/requests/dns/count_hosts.rb
index 7b3c642..f8f051e 100644
--- a/lib/fog/zerigo/requests/dns/count_hosts.rb
+++ b/lib/fog/zerigo/requests/dns/count_hosts.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/count_hosts'
 
         # total number of hosts available for the specified zone. It is the same value as provided
@@ -21,7 +20,6 @@ module Fog
             :path     => "/api/1.1/zones/#{zone_id}/hosts/count.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/count_zones.rb b/lib/fog/zerigo/requests/dns/count_zones.rb
index 76b83d7..7d5b6f3 100644
--- a/lib/fog/zerigo/requests/dns/count_zones.rb
+++ b/lib/fog/zerigo/requests/dns/count_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/count_zones'
 
         # Total number of zones hosted Zerigo for this account. It is the same value as provided
@@ -21,7 +20,6 @@ module Fog
             :path     => "/api/1.1/zones/count.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/create_host.rb b/lib/fog/zerigo/requests/dns/create_host.rb
index 668b444..e6f87e3 100644
--- a/lib/fog/zerigo/requests/dns/create_host.rb
+++ b/lib/fog/zerigo/requests/dns/create_host.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/create_host'
 
         # Create a new host in the specified zone
@@ -32,7 +31,6 @@ module Fog
         #     * 'zone-id'<~String>
         #   * 'status'<~Integer> - 201 if successful
         def create_host(zone_id, host_type, data, options = {})
-
           optional_tags= ''
           options.each { |option, value|
             case option
@@ -55,7 +53,6 @@ module Fog
             :path     => "/api/1.1/zones/#{zone_id}/hosts.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/create_zone.rb b/lib/fog/zerigo/requests/dns/create_zone.rb
index 67f2889..1849209 100644
--- a/lib/fog/zerigo/requests/dns/create_zone.rb
+++ b/lib/fog/zerigo/requests/dns/create_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/create_zone'
 
         # Create a new zone for Zerigo's DNS servers to serve/host
@@ -47,7 +46,6 @@ module Fog
         #   * 'status'<~Integer> - 201 if successful
 
         def create_zone(domain, default_ttl, ns_type, options = {})
-
           optional_tags= ''
           options.each { |option, value|
             case option
@@ -82,7 +80,6 @@ module Fog
             :path     => '/api/1.1/zones.xml'
           )
         end
-
       end
 
       class Mock # :nodoc:all
@@ -126,7 +123,6 @@ module Fog
           response
         end
       end
-
     end
   end
 end
diff --git a/lib/fog/zerigo/requests/dns/delete_host.rb b/lib/fog/zerigo/requests/dns/delete_host.rb
index 5eed49a..8c374f3 100644
--- a/lib/fog/zerigo/requests/dns/delete_host.rb
+++ b/lib/fog/zerigo/requests/dns/delete_host.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         # Delete a host record
         #
         # ==== Parameters
@@ -17,7 +16,6 @@ module Fog
             :path     => "/api/1.1/hosts/#{host_id}.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/delete_zone.rb b/lib/fog/zerigo/requests/dns/delete_zone.rb
index 8a0a2d5..0eb3d32 100644
--- a/lib/fog/zerigo/requests/dns/delete_zone.rb
+++ b/lib/fog/zerigo/requests/dns/delete_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         # Delete a zone from Zerigo
         #
         # ==== Parameters
@@ -18,7 +17,6 @@ module Fog
             :path     => "/api/1.1/zones/#{zone_id}.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/find_hosts.rb b/lib/fog/zerigo/requests/dns/find_hosts.rb
index cd2f074..8b0c3b7 100644
--- a/lib/fog/zerigo/requests/dns/find_hosts.rb
+++ b/lib/fog/zerigo/requests/dns/find_hosts.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/find_hosts'
 
         # Get list of all the host records that match the FQDN.  If desired, can limit
@@ -48,7 +47,6 @@ module Fog
             )
           end
         end
-
       end
 
       class Mock # :nodoc:all
@@ -60,7 +58,7 @@ module Fog
             response.status = 404
           else
             hosts = zone ? zone['hosts'].select { |z| z['fqdn'] == fqdn } :
-                           self.data[:zones].collect { |z| z['hosts'].find { |h| h['fqdn'] == fqdn } }.compact
+                           self.data[:zones].map { |z| z['hosts'].find { |h| h['fqdn'] == fqdn } }.compact
 
             response.status = 200
             response.body = {
diff --git a/lib/fog/zerigo/requests/dns/get_host.rb b/lib/fog/zerigo/requests/dns/get_host.rb
index 7e914d8..9e4f1fc 100644
--- a/lib/fog/zerigo/requests/dns/get_host.rb
+++ b/lib/fog/zerigo/requests/dns/get_host.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/get_host'
 
         # get details about a given host record
@@ -32,7 +31,6 @@ module Fog
             :path     => "/api/1.1/hosts/#{host_id}.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/get_zone.rb b/lib/fog/zerigo/requests/dns/get_zone.rb
index 933aaa5..1f4d298 100644
--- a/lib/fog/zerigo/requests/dns/get_zone.rb
+++ b/lib/fog/zerigo/requests/dns/get_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/get_zone'
 
         # Get details of a DNS zone. The response is similar to list_zones, with the
@@ -42,7 +41,6 @@ module Fog
             :path     => "/api/1.1/zones/#{zone_id_or_domain}.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/get_zone_stats.rb b/lib/fog/zerigo/requests/dns/get_zone_stats.rb
index f21fdb0..b9656a9 100644
--- a/lib/fog/zerigo/requests/dns/get_zone_stats.rb
+++ b/lib/fog/zerigo/requests/dns/get_zone_stats.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/get_zone_stats'
 
         # returns current traffic statistics about this zone. Queries is measured from the
@@ -29,7 +28,6 @@ module Fog
             :path     => "/api/1.1/zones/#{zone_id}/stats.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/list_hosts.rb b/lib/fog/zerigo/requests/dns/list_hosts.rb
index 1751f8b..6c14478 100644
--- a/lib/fog/zerigo/requests/dns/list_hosts.rb
+++ b/lib/fog/zerigo/requests/dns/list_hosts.rb
@@ -2,13 +2,16 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
-        require 'fog/zerigo/parsers/dns/list_hosts'
+        require "fog/zerigo/parsers/dns/list_hosts"
 
         # Get list of all DNS zones hosted on Slicehost (for this account)
         #
         # ==== Parameters
         # * zone_id<~Integer> - the zone ID of the zone from which to get the host records for
+        # * 'options'<~Hash> - optional parameters
+        #   * 'page' <~Integer>
+        #   * 'per_page' <~Integer>
+        #   * 'fqdn' <~String>
         # ==== Returns
         # * response<~Excon::Response>:
         #   * body<~Hash>:
@@ -25,28 +28,39 @@ module Fog
         #       * 'updated-at'<~String>
         #       * 'zone-id'<~String>
         # * 'status'<~Integer> - 200 indicates success
-        def list_hosts(zone_id)
+        def list_hosts(zone_id, options={})
           request(
+            :query    => options,
             :expects  => 200,
-            :method   => 'GET',
+            :method   => "GET",
             :parser   => Fog::Parsers::DNS::Zerigo::ListHosts.new,
             :path     => "/api/1.1/zones/#{zone_id}/hosts.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
-        def list_hosts(zone_id)
+        def list_hosts(zone_id, options={})
           zone = find_by_zone_id(zone_id)
 
           response = Excon::Response.new
 
           if zone
-            response.status = 200
-            response.body = {
-              'hosts' => zone['hosts']
-            }
+            if options.empty?
+              response.status = 200
+              response.body = {
+                "hosts" => zone["hosts"]
+              }
+            else
+              hosts = zone["hosts"]
+              hosts = hosts.select {|h| h["fqdn"] == options["fqdn"]} if options["fqdn"]
+              hosts = options["per_page"] ? hosts.each_slice(options["per_page"] - 1).to_a : hosts.each_slice(100).to_a
+              hosts = options["page"] ? hosts[options["page"]] : hosts[0]
+              response.status = 200
+              response.body = {
+                "hosts" => hosts
+              }
+            end
           else
             response.status = 404
           end
diff --git a/lib/fog/zerigo/requests/dns/list_zones.rb b/lib/fog/zerigo/requests/dns/list_zones.rb
index 3a4a34f..2d11a64 100644
--- a/lib/fog/zerigo/requests/dns/list_zones.rb
+++ b/lib/fog/zerigo/requests/dns/list_zones.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         require 'fog/zerigo/parsers/dns/list_zones'
 
         # Get list of all DNS zones hosted on Slicehost (for this account)
@@ -44,11 +43,9 @@ module Fog
             :path     => '/api/1.1/zones.xml'
           )
         end
-
       end
 
       class Mock # :nodoc:all
-
         def list_zones
           response = Excon::Response.new
 
@@ -59,7 +56,6 @@ module Fog
 
           response
         end
-
       end
     end
   end
diff --git a/lib/fog/zerigo/requests/dns/update_host.rb b/lib/fog/zerigo/requests/dns/update_host.rb
index 3f0b1e5..c0dc6f9 100644
--- a/lib/fog/zerigo/requests/dns/update_host.rb
+++ b/lib/fog/zerigo/requests/dns/update_host.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         # Update a host record
         #
         # ==== Parameters
@@ -19,7 +18,6 @@ module Fog
         #   * 'status'<~Integer> - 200 for success
         #
         def update_host(host_id, options = {})
-
           optional_tags= ''
           options.each { |option, value|
             case option
@@ -45,7 +43,6 @@ module Fog
             :path     => "/api/1.1/hosts/#{host_id}.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/fog/zerigo/requests/dns/update_zone.rb b/lib/fog/zerigo/requests/dns/update_zone.rb
index bfcf313..75aa91b 100644
--- a/lib/fog/zerigo/requests/dns/update_zone.rb
+++ b/lib/fog/zerigo/requests/dns/update_zone.rb
@@ -2,7 +2,6 @@ module Fog
   module DNS
     class Zerigo
       class Real
-
         # Update the parameters of a zone
         # ==== Parameters
         #
@@ -25,7 +24,6 @@ module Fog
         # * response<~Excon::Response>:
         #   * 'status'<~Integer> - 200 for success
         def update_zone(zone_id, options = {})
-
           optional_tags= ''
           options.each { |option, value|
             case option
@@ -63,7 +61,6 @@ module Fog
             :path     => "/api/1.1/zones/#{zone_id}.xml"
           )
         end
-
       end
 
       class Mock # :nodoc:all
diff --git a/lib/tasks/changelog_task.rb b/lib/tasks/changelog_task.rb
index 4ec317a..db5ef3d 100644
--- a/lib/tasks/changelog_task.rb
+++ b/lib/tasks/changelog_task.rb
@@ -4,7 +4,6 @@ require "rake/tasklib"
 module Fog
   module Rake
     class ChangelogTask < ::Rake::TaskLib
-
       def initialize
         desc "Update the changelog since the last release"
         task(:changelog) do
@@ -99,12 +98,13 @@ Watchers      | #{watchers}
       def committers_sorted_by_commits
         committer_pairs = @committers.to_a.sort {|x,y| y[1] <=> x[1]}
         committer_pairs.reject! {|pair| pair.last < 1 }
-        committer_pairs.collect {|pair| pair.first }
+        committer_pairs.map {|pair| pair.first }
       end
 
       def former_mvp?(committer)
          [
            'Aaron Suggs',
+           'ller', #"Achim Ledermüller" UTF-8 fail?
            'Ash Wilson',
            'Benson Kalahar',
            'Brian Hartsock',
@@ -122,6 +122,7 @@ Watchers      | #{watchers}
            'Kyle Rames',
            'Lincoln Stoll',
            'Luqman Amjad',
+           'Michael Hale',
            'Michael Zeng',
            'Mike Hagedorn',
            'Mike Pountney',
@@ -206,7 +207,6 @@ Watchers      | #{watchers}
       def timestamp
         @time ||= Time.now.utc.strftime('%m/%d/%Y')
       end
-
     end
   end
 end
diff --git a/lib/tasks/github_release_task.rb b/lib/tasks/github_release_task.rb
index ee7ad79..0e94749 100644
--- a/lib/tasks/github_release_task.rb
+++ b/lib/tasks/github_release_task.rb
@@ -6,7 +6,6 @@ require 'netrc'
 module Fog
   module Rake
     class GithubReleaseTask < ::Rake::TaskLib
-
       def initialize
         desc "Update the changelog since the last release"
         task(:github_release) do
@@ -36,7 +35,7 @@ module Fog
       def releases
         return @releases if @releases
         response = github.releases("fog/fog")
-        @releases = response.collect {|r| r.tag_name }
+        @releases = response.map {|r| r.tag_name }
       end
 
       def release_exists?
@@ -64,4 +63,4 @@ module Fog
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/metadata.yml b/metadata.yml
index f90ab11..3fe2753 100644
--- a/metadata.yml
+++ b/metadata.yml
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: fog
 version: !ruby/object:Gem::Version
-  version: 1.22.0
+  version: 1.24.0
 platform: ruby
 authors:
 - geemus (Wesley Beary)
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2014-04-17 00:00:00.000000000 Z
+date: 2014-10-09 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: fog-core
@@ -16,20 +16,14 @@ dependencies:
     requirements:
     - - ~>
       - !ruby/object:Gem::Version
-        version: '1.21'
-    - - ! '>='
-      - !ruby/object:Gem::Version
-        version: 1.21.1
+        version: '1.23'
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - ~>
       - !ruby/object:Gem::Version
-        version: '1.21'
-    - - ! '>='
-      - !ruby/object:Gem::Version
-        version: 1.21.1
+        version: '1.23'
 - !ruby/object:Gem::Dependency
   name: fog-json
   requirement: !ruby/object:Gem::Requirement
@@ -65,6 +59,20 @@ dependencies:
       - !ruby/object:Gem::Version
         version: 1.5.11
 - !ruby/object:Gem::Dependency
+  name: ipaddress
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ~>
+      - !ruby/object:Gem::Version
+        version: '0.5'
+  type: :runtime
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ~>
+      - !ruby/object:Gem::Version
+        version: '0.5'
+- !ruby/object:Gem::Dependency
   name: fog-brightbox
   requirement: !ruby/object:Gem::Requirement
     requirements:
@@ -79,13 +87,13 @@ dependencies:
       - !ruby/object:Gem::Version
         version: '0'
 - !ruby/object:Gem::Dependency
-  name: minitest
+  name: fog-softlayer
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - ! '>='
       - !ruby/object:Gem::Version
         version: '0'
-  type: :development
+  type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
@@ -93,7 +101,35 @@ dependencies:
       - !ruby/object:Gem::Version
         version: '0'
 - !ruby/object:Gem::Dependency
-  name: jekyll
+  name: fog-sakuracloud
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 0.0.4
+  type: :runtime
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 0.0.4
+- !ruby/object:Gem::Dependency
+  name: fog-radosgw
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 0.0.2
+  type: :runtime
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 0.0.2
+- !ruby/object:Gem::Dependency
+  name: minitest
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - ! '>='
@@ -219,6 +255,20 @@ dependencies:
       - !ruby/object:Gem::Version
         version: '0'
 - !ruby/object:Gem::Dependency
+  name: opennebula
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 4.4.0
+  type: :development
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 4.4.0
+- !ruby/object:Gem::Dependency
   name: google-api-client
   requirement: !ruby/object:Gem::Requirement
     requirements:
@@ -238,6 +288,34 @@ dependencies:
     - - ! '>='
       - !ruby/object:Gem::Version
         version: 0.6.2
+- !ruby/object:Gem::Dependency
+  name: docker-api
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 1.8.0
+  type: :development
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: 1.8.0
+- !ruby/object:Gem::Dependency
+  name: rubocop
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: '0'
+  type: :development
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ! '>='
+      - !ruby/object:Gem::Version
+        version: '0'
 description: The Ruby cloud services library. Supports all major cloud providers including
   AWS, Rackspace, Linode, Blue Box, StormOnDemand, and many others. Full support for
   most AWS services including EC2, S3, CloudWatch, SimpleDB, ELB, and RDS.
@@ -251,6 +329,8 @@ files:
 - .document
 - .gitignore
 - .irbrc
+- .rubocop.yml
+- .rubocop_todo.yml
 - .travis.yml
 - .yardopts
 - CHANGELOG.md
@@ -547,11 +627,13 @@ files:
 - lib/fog/aws/parsers/compute/describe_tags.rb
 - lib/fog/aws/parsers/compute/describe_volume_status.rb
 - lib/fog/aws/parsers/compute/describe_volumes.rb
+- lib/fog/aws/parsers/compute/describe_vpc_attribute.rb
 - lib/fog/aws/parsers/compute/describe_vpcs.rb
 - lib/fog/aws/parsers/compute/detach_volume.rb
 - lib/fog/aws/parsers/compute/get_console_output.rb
 - lib/fog/aws/parsers/compute/get_password_data.rb
 - lib/fog/aws/parsers/compute/import_key_pair.rb
+- lib/fog/aws/parsers/compute/modify_subnet_attribute.rb
 - lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb
 - lib/fog/aws/parsers/compute/network_acl_parser.rb
 - lib/fog/aws/parsers/compute/network_interface_parser.rb
@@ -564,10 +646,13 @@ files:
 - lib/fog/aws/parsers/compute/start_stop_instances.rb
 - lib/fog/aws/parsers/compute/terminate_instances.rb
 - lib/fog/aws/parsers/dns/change_resource_record_sets.rb
+- lib/fog/aws/parsers/dns/create_health_check.rb
 - lib/fog/aws/parsers/dns/create_hosted_zone.rb
 - lib/fog/aws/parsers/dns/delete_hosted_zone.rb
 - lib/fog/aws/parsers/dns/get_change.rb
 - lib/fog/aws/parsers/dns/get_hosted_zone.rb
+- lib/fog/aws/parsers/dns/health_check.rb
+- lib/fog/aws/parsers/dns/list_health_checks.rb
 - lib/fog/aws/parsers/dns/list_hosted_zones.rb
 - lib/fog/aws/parsers/dns/list_resource_record_sets.rb
 - lib/fog/aws/parsers/elasticache/authorize_cache_security_group_ingress.rb
@@ -619,6 +704,7 @@ files:
 - lib/fog/aws/parsers/iam/create_access_key.rb
 - lib/fog/aws/parsers/iam/create_group.rb
 - lib/fog/aws/parsers/iam/create_user.rb
+- lib/fog/aws/parsers/iam/get_account_password_policy.rb
 - lib/fog/aws/parsers/iam/get_account_summary.rb
 - lib/fog/aws/parsers/iam/get_group.rb
 - lib/fog/aws/parsers/iam/get_group_policy.rb
@@ -673,6 +759,7 @@ files:
 - lib/fog/aws/parsers/rds/event_list.rb
 - lib/fog/aws/parsers/rds/modify_db_instance.rb
 - lib/fog/aws/parsers/rds/modify_db_parameter_group.rb
+- lib/fog/aws/parsers/rds/promote_read_replica.rb
 - lib/fog/aws/parsers/rds/reboot_db_instance.rb
 - lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb
 - lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb
@@ -928,6 +1015,7 @@ files:
 - lib/fog/aws/requests/compute/describe_tags.rb
 - lib/fog/aws/requests/compute/describe_volume_status.rb
 - lib/fog/aws/requests/compute/describe_volumes.rb
+- lib/fog/aws/requests/compute/describe_vpc_attribute.rb
 - lib/fog/aws/requests/compute/describe_vpcs.rb
 - lib/fog/aws/requests/compute/detach_internet_gateway.rb
 - lib/fog/aws/requests/compute/detach_network_interface.rb
@@ -941,6 +1029,7 @@ files:
 - lib/fog/aws/requests/compute/modify_instance_attribute.rb
 - lib/fog/aws/requests/compute/modify_network_interface_attribute.rb
 - lib/fog/aws/requests/compute/modify_snapshot_attribute.rb
+- lib/fog/aws/requests/compute/modify_subnet_attribute.rb
 - lib/fog/aws/requests/compute/modify_volume_attribute.rb
 - lib/fog/aws/requests/compute/modify_vpc_attribute.rb
 - lib/fog/aws/requests/compute/monitor_instances.rb
@@ -969,10 +1058,14 @@ files:
 - lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb
 - lib/fog/aws/requests/data_pipeline/query_objects.rb
 - lib/fog/aws/requests/dns/change_resource_record_sets.rb
+- lib/fog/aws/requests/dns/create_health_check.rb
 - lib/fog/aws/requests/dns/create_hosted_zone.rb
+- lib/fog/aws/requests/dns/delete_health_check.rb
 - lib/fog/aws/requests/dns/delete_hosted_zone.rb
 - lib/fog/aws/requests/dns/get_change.rb
+- lib/fog/aws/requests/dns/get_health_check.rb
 - lib/fog/aws/requests/dns/get_hosted_zone.rb
+- lib/fog/aws/requests/dns/list_health_checks.rb
 - lib/fog/aws/requests/dns/list_hosted_zones.rb
 - lib/fog/aws/requests/dns/list_resource_record_sets.rb
 - lib/fog/aws/requests/dynamodb/batch_get_item.rb
@@ -1072,6 +1165,7 @@ files:
 - lib/fog/aws/requests/iam/create_user.rb
 - lib/fog/aws/requests/iam/delete_access_key.rb
 - lib/fog/aws/requests/iam/delete_account_alias.rb
+- lib/fog/aws/requests/iam/delete_account_password_policy.rb
 - lib/fog/aws/requests/iam/delete_group.rb
 - lib/fog/aws/requests/iam/delete_group_policy.rb
 - lib/fog/aws/requests/iam/delete_instance_profile.rb
@@ -1082,6 +1176,7 @@ files:
 - lib/fog/aws/requests/iam/delete_signing_certificate.rb
 - lib/fog/aws/requests/iam/delete_user.rb
 - lib/fog/aws/requests/iam/delete_user_policy.rb
+- lib/fog/aws/requests/iam/get_account_password_policy.rb
 - lib/fog/aws/requests/iam/get_account_summary.rb
 - lib/fog/aws/requests/iam/get_group.rb
 - lib/fog/aws/requests/iam/get_group_policy.rb
@@ -1112,6 +1207,7 @@ files:
 - lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb
 - lib/fog/aws/requests/iam/remove_user_from_group.rb
 - lib/fog/aws/requests/iam/update_access_key.rb
+- lib/fog/aws/requests/iam/update_account_password_policy.rb
 - lib/fog/aws/requests/iam/update_group.rb
 - lib/fog/aws/requests/iam/update_login_profile.rb
 - lib/fog/aws/requests/iam/update_server_certificate.rb
@@ -1147,6 +1243,7 @@ files:
 - lib/fog/aws/requests/rds/list_tags_for_resource.rb
 - lib/fog/aws/requests/rds/modify_db_instance.rb
 - lib/fog/aws/requests/rds/modify_db_parameter_group.rb
+- lib/fog/aws/requests/rds/promote_read_replica.rb
 - lib/fog/aws/requests/rds/reboot_db_instance.rb
 - lib/fog/aws/requests/rds/remove_tags_from_resource.rb
 - lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb
@@ -1258,6 +1355,7 @@ files:
 - lib/fog/aws/requests/storage/get_object_url.rb
 - lib/fog/aws/requests/storage/get_request_payment.rb
 - lib/fog/aws/requests/storage/get_service.rb
+- lib/fog/aws/requests/storage/head_bucket.rb
 - lib/fog/aws/requests/storage/head_object.rb
 - lib/fog/aws/requests/storage/initiate_multipart_upload.rb
 - lib/fog/aws/requests/storage/list_multipart_uploads.rb
@@ -1329,14 +1427,15 @@ files:
 - lib/fog/bin/linode.rb
 - lib/fog/bin/local.rb
 - lib/fog/bin/ninefold.rb
+- lib/fog/bin/opennebula.rb
 - lib/fog/bin/openstack.rb
 - lib/fog/bin/openvz.rb
 - lib/fog/bin/ovirt.rb
 - lib/fog/bin/rackspace.rb
 - lib/fog/bin/rage4.rb
 - lib/fog/bin/riakcs.rb
-- lib/fog/bin/sakuracloud.rb
 - lib/fog/bin/serverlove.rb
+- lib/fog/bin/softlayer.rb
 - lib/fog/bin/stormondemand.rb
 - lib/fog/bin/terremark.rb
 - lib/fog/bin/vcloud.rb
@@ -1527,106 +1626,511 @@ files:
 - lib/fog/cloudstack/models/compute/zone.rb
 - lib/fog/cloudstack/models/compute/zones.rb
 - lib/fog/cloudstack/requests/compute/acquire_ip_address.rb
+- lib/fog/cloudstack/requests/compute/activate_project.rb
+- lib/fog/cloudstack/requests/compute/add_account_to_project.rb
+- lib/fog/cloudstack/requests/compute/add_baremetal_dhcp.rb
+- lib/fog/cloudstack/requests/compute/add_baremetal_host.rb
+- lib/fog/cloudstack/requests/compute/add_baremetal_pxe_kick_start_server.rb
+- lib/fog/cloudstack/requests/compute/add_baremetal_pxe_ping_server.rb
+- lib/fog/cloudstack/requests/compute/add_big_switch_vns_device.rb
+- lib/fog/cloudstack/requests/compute/add_cisco_asa1000v_resource.rb
+- lib/fog/cloudstack/requests/compute/add_cisco_vnmc_resource.rb
+- lib/fog/cloudstack/requests/compute/add_cluster.rb
+- lib/fog/cloudstack/requests/compute/add_external_firewall.rb
+- lib/fog/cloudstack/requests/compute/add_external_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/add_f5_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/add_guest_os.rb
+- lib/fog/cloudstack/requests/compute/add_guest_os_mapping.rb
+- lib/fog/cloudstack/requests/compute/add_host.rb
+- lib/fog/cloudstack/requests/compute/add_image_store.rb
+- lib/fog/cloudstack/requests/compute/add_ip_to_nic.rb
+- lib/fog/cloudstack/requests/compute/add_ldap_configuration.rb
+- lib/fog/cloudstack/requests/compute/add_netscaler_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/add_network_device.rb
+- lib/fog/cloudstack/requests/compute/add_network_service_provider.rb
+- lib/fog/cloudstack/requests/compute/add_nic_to_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/add_nicira_nvp_device.rb
+- lib/fog/cloudstack/requests/compute/add_open_daylight_controller.rb
+- lib/fog/cloudstack/requests/compute/add_palo_alto_firewall.rb
+- lib/fog/cloudstack/requests/compute/add_region.rb
+- lib/fog/cloudstack/requests/compute/add_resource_detail.rb
+- lib/fog/cloudstack/requests/compute/add_s3.rb
+- lib/fog/cloudstack/requests/compute/add_secondary_storage.rb
+- lib/fog/cloudstack/requests/compute/add_srx_firewall.rb
+- lib/fog/cloudstack/requests/compute/add_stratosphere_ssp.rb
+- lib/fog/cloudstack/requests/compute/add_swift.rb
+- lib/fog/cloudstack/requests/compute/add_traffic_monitor.rb
+- lib/fog/cloudstack/requests/compute/add_traffic_type.rb
+- lib/fog/cloudstack/requests/compute/add_ucs_manager.rb
+- lib/fog/cloudstack/requests/compute/add_vmware_dc.rb
+- lib/fog/cloudstack/requests/compute/add_vpn_user.rb
+- lib/fog/cloudstack/requests/compute/archive_alerts.rb
+- lib/fog/cloudstack/requests/compute/archive_events.rb
+- lib/fog/cloudstack/requests/compute/assign_cert_to_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/assign_to_global_load_balancer_rule.rb
 - lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb
 - lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/associate_ip_address.rb
+- lib/fog/cloudstack/requests/compute/associate_lun.rb
+- lib/fog/cloudstack/requests/compute/associate_ucs_profile_to_blade.rb
+- lib/fog/cloudstack/requests/compute/attach_iso.rb
 - lib/fog/cloudstack/requests/compute/attach_volume.rb
 - lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb
 - lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb
+- lib/fog/cloudstack/requests/compute/cancel_host_maintenance.rb
+- lib/fog/cloudstack/requests/compute/cancel_storage_maintenance.rb
+- lib/fog/cloudstack/requests/compute/change_service_for_router.rb
+- lib/fog/cloudstack/requests/compute/change_service_for_system_vm.rb
 - lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/clean_vmreservations.rb
+- lib/fog/cloudstack/requests/compute/configure_f5_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/configure_internal_load_balancer_element.rb
+- lib/fog/cloudstack/requests/compute/configure_netscaler_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/configure_ovs_element.rb
+- lib/fog/cloudstack/requests/compute/configure_palo_alto_firewall.rb
+- lib/fog/cloudstack/requests/compute/configure_srx_firewall.rb
+- lib/fog/cloudstack/requests/compute/configure_virtual_router_element.rb
+- lib/fog/cloudstack/requests/compute/copy_iso.rb
+- lib/fog/cloudstack/requests/compute/copy_template.rb
 - lib/fog/cloudstack/requests/compute/create_account.rb
+- lib/fog/cloudstack/requests/compute/create_affinity_group.rb
+- lib/fog/cloudstack/requests/compute/create_auto_scale_policy.rb
+- lib/fog/cloudstack/requests/compute/create_auto_scale_vm_group.rb
+- lib/fog/cloudstack/requests/compute/create_auto_scale_vm_profile.rb
+- lib/fog/cloudstack/requests/compute/create_condition.rb
+- lib/fog/cloudstack/requests/compute/create_counter.rb
 - lib/fog/cloudstack/requests/compute/create_disk_offering.rb
 - lib/fog/cloudstack/requests/compute/create_domain.rb
+- lib/fog/cloudstack/requests/compute/create_egress_firewall_rule.rb
+- lib/fog/cloudstack/requests/compute/create_firewall_rule.rb
+- lib/fog/cloudstack/requests/compute/create_global_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/create_instance_group.rb
+- lib/fog/cloudstack/requests/compute/create_internal_load_balancer_element.rb
+- lib/fog/cloudstack/requests/compute/create_ip_forwarding_rule.rb
+- lib/fog/cloudstack/requests/compute/create_lb_health_check_policy.rb
+- lib/fog/cloudstack/requests/compute/create_lb_stickiness_policy.rb
+- lib/fog/cloudstack/requests/compute/create_load_balancer.rb
 - lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/create_lun_on_filer.rb
 - lib/fog/cloudstack/requests/compute/create_network.rb
+- lib/fog/cloudstack/requests/compute/create_network_acl.rb
+- lib/fog/cloudstack/requests/compute/create_network_acl_list.rb
+- lib/fog/cloudstack/requests/compute/create_network_offering.rb
+- lib/fog/cloudstack/requests/compute/create_physical_network.rb
+- lib/fog/cloudstack/requests/compute/create_pod.rb
+- lib/fog/cloudstack/requests/compute/create_pool.rb
 - lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb
+- lib/fog/cloudstack/requests/compute/create_portable_ip_range.rb
+- lib/fog/cloudstack/requests/compute/create_private_gateway.rb
+- lib/fog/cloudstack/requests/compute/create_project.rb
+- lib/fog/cloudstack/requests/compute/create_remote_access_vpn.rb
+- lib/fog/cloudstack/requests/compute/create_secondary_staging_store.rb
 - lib/fog/cloudstack/requests/compute/create_security_group.rb
+- lib/fog/cloudstack/requests/compute/create_service_instance.rb
+- lib/fog/cloudstack/requests/compute/create_service_offering.rb
 - lib/fog/cloudstack/requests/compute/create_snapshot.rb
 - lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb
 - lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb
+- lib/fog/cloudstack/requests/compute/create_static_route.rb
+- lib/fog/cloudstack/requests/compute/create_storage_network_ip_range.rb
+- lib/fog/cloudstack/requests/compute/create_storage_pool.rb
+- lib/fog/cloudstack/requests/compute/create_tags.rb
+- lib/fog/cloudstack/requests/compute/create_template.rb
 - lib/fog/cloudstack/requests/compute/create_user.rb
+- lib/fog/cloudstack/requests/compute/create_virtual_router_element.rb
+- lib/fog/cloudstack/requests/compute/create_vlan_ip_range.rb
+- lib/fog/cloudstack/requests/compute/create_vm_snapshot.rb
 - lib/fog/cloudstack/requests/compute/create_volume.rb
+- lib/fog/cloudstack/requests/compute/create_volume_on_filer.rb
+- lib/fog/cloudstack/requests/compute/create_vpc.rb
+- lib/fog/cloudstack/requests/compute/create_vpcoffering.rb
+- lib/fog/cloudstack/requests/compute/create_vpn_connection.rb
+- lib/fog/cloudstack/requests/compute/create_vpn_customer_gateway.rb
+- lib/fog/cloudstack/requests/compute/create_vpn_gateway.rb
 - lib/fog/cloudstack/requests/compute/create_zone.rb
+- lib/fog/cloudstack/requests/compute/dedicate_cluster.rb
+- lib/fog/cloudstack/requests/compute/dedicate_guest_vlan_range.rb
+- lib/fog/cloudstack/requests/compute/dedicate_host.rb
+- lib/fog/cloudstack/requests/compute/dedicate_pod.rb
+- lib/fog/cloudstack/requests/compute/dedicate_public_ip_range.rb
+- lib/fog/cloudstack/requests/compute/dedicate_zone.rb
 - lib/fog/cloudstack/requests/compute/delete_account.rb
+- lib/fog/cloudstack/requests/compute/delete_account_from_project.rb
+- lib/fog/cloudstack/requests/compute/delete_affinity_group.rb
+- lib/fog/cloudstack/requests/compute/delete_alerts.rb
+- lib/fog/cloudstack/requests/compute/delete_auto_scale_policy.rb
+- lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_group.rb
+- lib/fog/cloudstack/requests/compute/delete_auto_scale_vm_profile.rb
+- lib/fog/cloudstack/requests/compute/delete_big_switch_vns_device.rb
+- lib/fog/cloudstack/requests/compute/delete_cisco_asa1000v_resource.rb
+- lib/fog/cloudstack/requests/compute/delete_cisco_nexus_vsm.rb
+- lib/fog/cloudstack/requests/compute/delete_cisco_vnmc_resource.rb
+- lib/fog/cloudstack/requests/compute/delete_cluster.rb
+- lib/fog/cloudstack/requests/compute/delete_condition.rb
+- lib/fog/cloudstack/requests/compute/delete_counter.rb
 - lib/fog/cloudstack/requests/compute/delete_disk_offering.rb
 - lib/fog/cloudstack/requests/compute/delete_domain.rb
+- lib/fog/cloudstack/requests/compute/delete_egress_firewall_rule.rb
+- lib/fog/cloudstack/requests/compute/delete_events.rb
+- lib/fog/cloudstack/requests/compute/delete_external_firewall.rb
+- lib/fog/cloudstack/requests/compute/delete_external_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/delete_f5_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/delete_firewall_rule.rb
+- lib/fog/cloudstack/requests/compute/delete_global_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/delete_host.rb
+- lib/fog/cloudstack/requests/compute/delete_image_store.rb
+- lib/fog/cloudstack/requests/compute/delete_instance_group.rb
+- lib/fog/cloudstack/requests/compute/delete_ip_forwarding_rule.rb
+- lib/fog/cloudstack/requests/compute/delete_iso.rb
+- lib/fog/cloudstack/requests/compute/delete_lb_health_check_policy.rb
+- lib/fog/cloudstack/requests/compute/delete_lb_stickiness_policy.rb
+- lib/fog/cloudstack/requests/compute/delete_ldap_configuration.rb
+- lib/fog/cloudstack/requests/compute/delete_load_balancer.rb
 - lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/delete_netscaler_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/delete_network.rb
+- lib/fog/cloudstack/requests/compute/delete_network_acl.rb
+- lib/fog/cloudstack/requests/compute/delete_network_acl_list.rb
+- lib/fog/cloudstack/requests/compute/delete_network_device.rb
+- lib/fog/cloudstack/requests/compute/delete_network_offering.rb
+- lib/fog/cloudstack/requests/compute/delete_network_service_provider.rb
+- lib/fog/cloudstack/requests/compute/delete_nicira_nvp_device.rb
+- lib/fog/cloudstack/requests/compute/delete_open_daylight_controller.rb
+- lib/fog/cloudstack/requests/compute/delete_palo_alto_firewall.rb
+- lib/fog/cloudstack/requests/compute/delete_physical_network.rb
+- lib/fog/cloudstack/requests/compute/delete_pod.rb
+- lib/fog/cloudstack/requests/compute/delete_pool.rb
 - lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb
+- lib/fog/cloudstack/requests/compute/delete_portable_ip_range.rb
+- lib/fog/cloudstack/requests/compute/delete_private_gateway.rb
+- lib/fog/cloudstack/requests/compute/delete_project.rb
+- lib/fog/cloudstack/requests/compute/delete_project_invitation.rb
+- lib/fog/cloudstack/requests/compute/delete_remote_access_vpn.rb
+- lib/fog/cloudstack/requests/compute/delete_secondary_staging_store.rb
 - lib/fog/cloudstack/requests/compute/delete_security_group.rb
+- lib/fog/cloudstack/requests/compute/delete_service_offering.rb
 - lib/fog/cloudstack/requests/compute/delete_snapshot.rb
 - lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb
+- lib/fog/cloudstack/requests/compute/delete_srx_firewall.rb
 - lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb
+- lib/fog/cloudstack/requests/compute/delete_ssl_cert.rb
+- lib/fog/cloudstack/requests/compute/delete_static_route.rb
+- lib/fog/cloudstack/requests/compute/delete_storage_network_ip_range.rb
+- lib/fog/cloudstack/requests/compute/delete_storage_pool.rb
+- lib/fog/cloudstack/requests/compute/delete_tags.rb
 - lib/fog/cloudstack/requests/compute/delete_template.rb
+- lib/fog/cloudstack/requests/compute/delete_traffic_monitor.rb
+- lib/fog/cloudstack/requests/compute/delete_traffic_type.rb
+- lib/fog/cloudstack/requests/compute/delete_ucs_manager.rb
 - lib/fog/cloudstack/requests/compute/delete_user.rb
+- lib/fog/cloudstack/requests/compute/delete_vlan_ip_range.rb
+- lib/fog/cloudstack/requests/compute/delete_vm_snapshot.rb
 - lib/fog/cloudstack/requests/compute/delete_volume.rb
+- lib/fog/cloudstack/requests/compute/delete_vpc.rb
+- lib/fog/cloudstack/requests/compute/delete_vpcoffering.rb
+- lib/fog/cloudstack/requests/compute/delete_vpn_connection.rb
+- lib/fog/cloudstack/requests/compute/delete_vpn_customer_gateway.rb
+- lib/fog/cloudstack/requests/compute/delete_vpn_gateway.rb
+- lib/fog/cloudstack/requests/compute/delete_zone.rb
 - lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/destroy_lun_on_filer.rb
+- lib/fog/cloudstack/requests/compute/destroy_router.rb
+- lib/fog/cloudstack/requests/compute/destroy_system_vm.rb
 - lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/destroy_volume_on_filer.rb
+- lib/fog/cloudstack/requests/compute/detach_iso.rb
 - lib/fog/cloudstack/requests/compute/detach_volume.rb
 - lib/fog/cloudstack/requests/compute/disable_account.rb
+- lib/fog/cloudstack/requests/compute/disable_auto_scale_vm_group.rb
+- lib/fog/cloudstack/requests/compute/disable_cisco_nexus_vsm.rb
+- lib/fog/cloudstack/requests/compute/disable_static_nat.rb
 - lib/fog/cloudstack/requests/compute/disable_user.rb
+- lib/fog/cloudstack/requests/compute/disassociate_ip_address.rb
+- lib/fog/cloudstack/requests/compute/disassociate_ucs_profile_from_blade.rb
+- lib/fog/cloudstack/requests/compute/dissociate_lun.rb
 - lib/fog/cloudstack/requests/compute/enable_account.rb
+- lib/fog/cloudstack/requests/compute/enable_auto_scale_vm_group.rb
+- lib/fog/cloudstack/requests/compute/enable_cisco_nexus_vsm.rb
+- lib/fog/cloudstack/requests/compute/enable_static_nat.rb
+- lib/fog/cloudstack/requests/compute/enable_storage_maintenance.rb
 - lib/fog/cloudstack/requests/compute/enable_user.rb
+- lib/fog/cloudstack/requests/compute/expunge_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/extract_iso.rb
+- lib/fog/cloudstack/requests/compute/extract_template.rb
+- lib/fog/cloudstack/requests/compute/extract_volume.rb
+- lib/fog/cloudstack/requests/compute/find_hosts_for_migration.rb
+- lib/fog/cloudstack/requests/compute/find_storage_pools_for_migration.rb
+- lib/fog/cloudstack/requests/compute/generate_alert.rb
 - lib/fog/cloudstack/requests/compute/generate_usage_records.rb
+- lib/fog/cloudstack/requests/compute/get_api_limit.rb
+- lib/fog/cloudstack/requests/compute/get_cloud_identifier.rb
+- lib/fog/cloudstack/requests/compute/get_user.rb
+- lib/fog/cloudstack/requests/compute/get_virtual_machine_user_data.rb
 - lib/fog/cloudstack/requests/compute/get_vm_password.rb
+- lib/fog/cloudstack/requests/compute/import_ldap_users.rb
+- lib/fog/cloudstack/requests/compute/instantiate_ucs_template_and_assocaciate_to_blade.rb
+- lib/fog/cloudstack/requests/compute/ldap_config.rb
+- lib/fog/cloudstack/requests/compute/ldap_create_account.rb
+- lib/fog/cloudstack/requests/compute/ldap_remove.rb
 - lib/fog/cloudstack/requests/compute/list_accounts.rb
+- lib/fog/cloudstack/requests/compute/list_affinity_group_types.rb
+- lib/fog/cloudstack/requests/compute/list_affinity_groups.rb
 - lib/fog/cloudstack/requests/compute/list_alerts.rb
+- lib/fog/cloudstack/requests/compute/list_apis.rb
 - lib/fog/cloudstack/requests/compute/list_async_jobs.rb
+- lib/fog/cloudstack/requests/compute/list_auto_scale_policies.rb
+- lib/fog/cloudstack/requests/compute/list_auto_scale_vm_groups.rb
+- lib/fog/cloudstack/requests/compute/list_auto_scale_vm_profiles.rb
+- lib/fog/cloudstack/requests/compute/list_baremetal_dhcp.rb
+- lib/fog/cloudstack/requests/compute/list_baremetal_pxe_servers.rb
+- lib/fog/cloudstack/requests/compute/list_big_switch_vns_devices.rb
 - lib/fog/cloudstack/requests/compute/list_capabilities.rb
 - lib/fog/cloudstack/requests/compute/list_capacity.rb
+- lib/fog/cloudstack/requests/compute/list_cisco_asa1000v_resources.rb
+- lib/fog/cloudstack/requests/compute/list_cisco_nexus_vsms.rb
+- lib/fog/cloudstack/requests/compute/list_cisco_vnmc_resources.rb
 - lib/fog/cloudstack/requests/compute/list_clusters.rb
+- lib/fog/cloudstack/requests/compute/list_conditions.rb
 - lib/fog/cloudstack/requests/compute/list_configurations.rb
+- lib/fog/cloudstack/requests/compute/list_counters.rb
+- lib/fog/cloudstack/requests/compute/list_dedicated_clusters.rb
+- lib/fog/cloudstack/requests/compute/list_dedicated_guest_vlan_ranges.rb
+- lib/fog/cloudstack/requests/compute/list_dedicated_hosts.rb
+- lib/fog/cloudstack/requests/compute/list_dedicated_pods.rb
+- lib/fog/cloudstack/requests/compute/list_dedicated_zones.rb
+- lib/fog/cloudstack/requests/compute/list_deployment_planners.rb
 - lib/fog/cloudstack/requests/compute/list_disk_offerings.rb
 - lib/fog/cloudstack/requests/compute/list_domain_children.rb
 - lib/fog/cloudstack/requests/compute/list_domains.rb
+- lib/fog/cloudstack/requests/compute/list_egress_firewall_rules.rb
+- lib/fog/cloudstack/requests/compute/list_event_types.rb
 - lib/fog/cloudstack/requests/compute/list_events.rb
 - lib/fog/cloudstack/requests/compute/list_external_firewalls.rb
 - lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb
+- lib/fog/cloudstack/requests/compute/list_f5_load_balancer_networks.rb
+- lib/fog/cloudstack/requests/compute/list_f5_load_balancers.rb
 - lib/fog/cloudstack/requests/compute/list_firewall_rules.rb
+- lib/fog/cloudstack/requests/compute/list_global_load_balancer_rules.rb
+- lib/fog/cloudstack/requests/compute/list_guest_os_mapping.rb
 - lib/fog/cloudstack/requests/compute/list_hosts.rb
+- lib/fog/cloudstack/requests/compute/list_hypervisor_capabilities.rb
 - lib/fog/cloudstack/requests/compute/list_hypervisors.rb
+- lib/fog/cloudstack/requests/compute/list_image_stores.rb
 - lib/fog/cloudstack/requests/compute/list_instance_groups.rb
+- lib/fog/cloudstack/requests/compute/list_internal_load_balancer_elements.rb
+- lib/fog/cloudstack/requests/compute/list_internal_load_balancer_vms.rb
+- lib/fog/cloudstack/requests/compute/list_ip_forwarding_rules.rb
+- lib/fog/cloudstack/requests/compute/list_iso_permissions.rb
 - lib/fog/cloudstack/requests/compute/list_isos.rb
+- lib/fog/cloudstack/requests/compute/list_lb_health_check_policies.rb
+- lib/fog/cloudstack/requests/compute/list_lb_stickiness_policies.rb
+- lib/fog/cloudstack/requests/compute/list_ldap_configurations.rb
+- lib/fog/cloudstack/requests/compute/list_ldap_users.rb
 - lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb
 - lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb
+- lib/fog/cloudstack/requests/compute/list_load_balancers.rb
+- lib/fog/cloudstack/requests/compute/list_luns_on_filer.rb
+- lib/fog/cloudstack/requests/compute/list_netscaler_load_balancer_networks.rb
+- lib/fog/cloudstack/requests/compute/list_netscaler_load_balancers.rb
+- lib/fog/cloudstack/requests/compute/list_network_acl_lists.rb
+- lib/fog/cloudstack/requests/compute/list_network_acls.rb
+- lib/fog/cloudstack/requests/compute/list_network_device.rb
+- lib/fog/cloudstack/requests/compute/list_network_isolation_methods.rb
 - lib/fog/cloudstack/requests/compute/list_network_offerings.rb
+- lib/fog/cloudstack/requests/compute/list_network_service_providers.rb
 - lib/fog/cloudstack/requests/compute/list_networks.rb
+- lib/fog/cloudstack/requests/compute/list_nicira_nvp_device_networks.rb
+- lib/fog/cloudstack/requests/compute/list_nicira_nvp_devices.rb
+- lib/fog/cloudstack/requests/compute/list_nics.rb
+- lib/fog/cloudstack/requests/compute/list_open_daylight_controllers.rb
 - lib/fog/cloudstack/requests/compute/list_os_categories.rb
 - lib/fog/cloudstack/requests/compute/list_os_types.rb
+- lib/fog/cloudstack/requests/compute/list_ovs_elements.rb
+- lib/fog/cloudstack/requests/compute/list_palo_alto_firewall_networks.rb
+- lib/fog/cloudstack/requests/compute/list_palo_alto_firewalls.rb
+- lib/fog/cloudstack/requests/compute/list_physical_networks.rb
 - lib/fog/cloudstack/requests/compute/list_pods.rb
+- lib/fog/cloudstack/requests/compute/list_pools.rb
 - lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb
+- lib/fog/cloudstack/requests/compute/list_portable_ip_ranges.rb
+- lib/fog/cloudstack/requests/compute/list_private_gateways.rb
+- lib/fog/cloudstack/requests/compute/list_project_accounts.rb
+- lib/fog/cloudstack/requests/compute/list_project_invitations.rb
+- lib/fog/cloudstack/requests/compute/list_projects.rb
 - lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb
+- lib/fog/cloudstack/requests/compute/list_regions.rb
+- lib/fog/cloudstack/requests/compute/list_remote_access_vpns.rb
+- lib/fog/cloudstack/requests/compute/list_resource_details.rb
 - lib/fog/cloudstack/requests/compute/list_resource_limits.rb
+- lib/fog/cloudstack/requests/compute/list_routers.rb
+- lib/fog/cloudstack/requests/compute/list_s3s.rb
+- lib/fog/cloudstack/requests/compute/list_secondary_staging_stores.rb
 - lib/fog/cloudstack/requests/compute/list_security_groups.rb
 - lib/fog/cloudstack/requests/compute/list_service_offerings.rb
 - lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb
 - lib/fog/cloudstack/requests/compute/list_snapshots.rb
+- lib/fog/cloudstack/requests/compute/list_srx_firewall_networks.rb
+- lib/fog/cloudstack/requests/compute/list_srx_firewalls.rb
 - lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb
+- lib/fog/cloudstack/requests/compute/list_ssl_certs.rb
+- lib/fog/cloudstack/requests/compute/list_static_routes.rb
+- lib/fog/cloudstack/requests/compute/list_storage_network_ip_range.rb
 - lib/fog/cloudstack/requests/compute/list_storage_pools.rb
+- lib/fog/cloudstack/requests/compute/list_storage_providers.rb
+- lib/fog/cloudstack/requests/compute/list_supported_network_services.rb
+- lib/fog/cloudstack/requests/compute/list_swifts.rb
+- lib/fog/cloudstack/requests/compute/list_system_vms.rb
+- lib/fog/cloudstack/requests/compute/list_tags.rb
+- lib/fog/cloudstack/requests/compute/list_template_permissions.rb
 - lib/fog/cloudstack/requests/compute/list_templates.rb
+- lib/fog/cloudstack/requests/compute/list_traffic_monitors.rb
+- lib/fog/cloudstack/requests/compute/list_traffic_type_implementors.rb
+- lib/fog/cloudstack/requests/compute/list_traffic_types.rb
+- lib/fog/cloudstack/requests/compute/list_ucs_blades.rb
+- lib/fog/cloudstack/requests/compute/list_ucs_managers.rb
+- lib/fog/cloudstack/requests/compute/list_ucs_profiles.rb
+- lib/fog/cloudstack/requests/compute/list_ucs_templates.rb
 - lib/fog/cloudstack/requests/compute/list_usage_records.rb
+- lib/fog/cloudstack/requests/compute/list_usage_types.rb
 - lib/fog/cloudstack/requests/compute/list_users.rb
 - lib/fog/cloudstack/requests/compute/list_virtual_machines.rb
+- lib/fog/cloudstack/requests/compute/list_virtual_router_elements.rb
+- lib/fog/cloudstack/requests/compute/list_vlan_ip_ranges.rb
+- lib/fog/cloudstack/requests/compute/list_vm_snapshot.rb
+- lib/fog/cloudstack/requests/compute/list_vmware_dcs.rb
 - lib/fog/cloudstack/requests/compute/list_volumes.rb
+- lib/fog/cloudstack/requests/compute/list_volumes_on_filer.rb
+- lib/fog/cloudstack/requests/compute/list_vpc_offerings.rb
+- lib/fog/cloudstack/requests/compute/list_vpcs.rb
+- lib/fog/cloudstack/requests/compute/list_vpn_connections.rb
+- lib/fog/cloudstack/requests/compute/list_vpn_customer_gateways.rb
+- lib/fog/cloudstack/requests/compute/list_vpn_gateways.rb
+- lib/fog/cloudstack/requests/compute/list_vpn_users.rb
 - lib/fog/cloudstack/requests/compute/list_zones.rb
+- lib/fog/cloudstack/requests/compute/lock_account.rb
+- lib/fog/cloudstack/requests/compute/lock_user.rb
+- lib/fog/cloudstack/requests/compute/mark_default_zone_for_account.rb
+- lib/fog/cloudstack/requests/compute/migrate_system_vm.rb
 - lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/migrate_virtual_machine_with_volume.rb
+- lib/fog/cloudstack/requests/compute/migrate_volume.rb
+- lib/fog/cloudstack/requests/compute/modify_pool.rb
+- lib/fog/cloudstack/requests/compute/prepare_host_for_maintenance.rb
+- lib/fog/cloudstack/requests/compute/prepare_template.rb
 - lib/fog/cloudstack/requests/compute/query_async_job_result.rb
+- lib/fog/cloudstack/requests/compute/reboot_router.rb
+- lib/fog/cloudstack/requests/compute/reboot_system_vm.rb
 - lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/reconnect_host.rb
 - lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/refresh_ucs_blades.rb
+- lib/fog/cloudstack/requests/compute/register_iso.rb
 - lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb
 - lib/fog/cloudstack/requests/compute/register_template.rb
 - lib/fog/cloudstack/requests/compute/register_user_keys.rb
+- lib/fog/cloudstack/requests/compute/release_dedicated_cluster.rb
+- lib/fog/cloudstack/requests/compute/release_dedicated_guest_vlan_range.rb
+- lib/fog/cloudstack/requests/compute/release_dedicated_host.rb
+- lib/fog/cloudstack/requests/compute/release_dedicated_pod.rb
+- lib/fog/cloudstack/requests/compute/release_dedicated_zone.rb
+- lib/fog/cloudstack/requests/compute/release_host_reservation.rb
+- lib/fog/cloudstack/requests/compute/release_public_ip_range.rb
+- lib/fog/cloudstack/requests/compute/remove_cert_from_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/remove_from_global_load_balancer_rule.rb
 - lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/remove_guest_os.rb
+- lib/fog/cloudstack/requests/compute/remove_guest_os_mapping.rb
+- lib/fog/cloudstack/requests/compute/remove_ip_from_nic.rb
+- lib/fog/cloudstack/requests/compute/remove_nic_from_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/remove_region.rb
+- lib/fog/cloudstack/requests/compute/remove_resource_detail.rb
+- lib/fog/cloudstack/requests/compute/remove_vmware_dc.rb
+- lib/fog/cloudstack/requests/compute/remove_vpn_user.rb
+- lib/fog/cloudstack/requests/compute/replace_network_acl_list.rb
+- lib/fog/cloudstack/requests/compute/reset_api_limit.rb
 - lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/reset_ssh_key_for_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/reset_vpn_connection.rb
+- lib/fog/cloudstack/requests/compute/resize_volume.rb
+- lib/fog/cloudstack/requests/compute/restart_network.rb
+- lib/fog/cloudstack/requests/compute/restart_vpc.rb
+- lib/fog/cloudstack/requests/compute/restore_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/revert_snapshot.rb
+- lib/fog/cloudstack/requests/compute/revert_to_vm_snapshot.rb
 - lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb
 - lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb
+- lib/fog/cloudstack/requests/compute/scale_system_vm.rb
+- lib/fog/cloudstack/requests/compute/scale_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/start_internal_load_balancer_vm.rb
+- lib/fog/cloudstack/requests/compute/start_router.rb
+- lib/fog/cloudstack/requests/compute/start_system_vm.rb
 - lib/fog/cloudstack/requests/compute/start_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/stop_internal_load_balancer_vm.rb
+- lib/fog/cloudstack/requests/compute/stop_router.rb
+- lib/fog/cloudstack/requests/compute/stop_system_vm.rb
 - lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/suspend_project.rb
 - lib/fog/cloudstack/requests/compute/update_account.rb
+- lib/fog/cloudstack/requests/compute/update_auto_scale_policy.rb
+- lib/fog/cloudstack/requests/compute/update_auto_scale_vm_group.rb
+- lib/fog/cloudstack/requests/compute/update_auto_scale_vm_profile.rb
+- lib/fog/cloudstack/requests/compute/update_cloud_to_use_object_store.rb
+- lib/fog/cloudstack/requests/compute/update_cluster.rb
+- lib/fog/cloudstack/requests/compute/update_configuration.rb
+- lib/fog/cloudstack/requests/compute/update_default_nic_for_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/update_disk_offering.rb
 - lib/fog/cloudstack/requests/compute/update_domain.rb
+- lib/fog/cloudstack/requests/compute/update_egress_firewall_rule.rb
+- lib/fog/cloudstack/requests/compute/update_firewall_rule.rb
+- lib/fog/cloudstack/requests/compute/update_global_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/update_guest_os.rb
+- lib/fog/cloudstack/requests/compute/update_guest_os_mapping.rb
+- lib/fog/cloudstack/requests/compute/update_host.rb
+- lib/fog/cloudstack/requests/compute/update_host_password.rb
+- lib/fog/cloudstack/requests/compute/update_hypervisor_capabilities.rb
+- lib/fog/cloudstack/requests/compute/update_instance_group.rb
+- lib/fog/cloudstack/requests/compute/update_ip_address.rb
+- lib/fog/cloudstack/requests/compute/update_iso.rb
+- lib/fog/cloudstack/requests/compute/update_iso_permissions.rb
+- lib/fog/cloudstack/requests/compute/update_lb_health_check_policy.rb
+- lib/fog/cloudstack/requests/compute/update_lb_stickiness_policy.rb
+- lib/fog/cloudstack/requests/compute/update_load_balancer.rb
+- lib/fog/cloudstack/requests/compute/update_load_balancer_rule.rb
+- lib/fog/cloudstack/requests/compute/update_network.rb
+- lib/fog/cloudstack/requests/compute/update_network_acl_item.rb
+- lib/fog/cloudstack/requests/compute/update_network_acl_list.rb
+- lib/fog/cloudstack/requests/compute/update_network_offering.rb
+- lib/fog/cloudstack/requests/compute/update_network_service_provider.rb
+- lib/fog/cloudstack/requests/compute/update_physical_network.rb
+- lib/fog/cloudstack/requests/compute/update_pod.rb
+- lib/fog/cloudstack/requests/compute/update_port_forwarding_rule.rb
+- lib/fog/cloudstack/requests/compute/update_project.rb
+- lib/fog/cloudstack/requests/compute/update_project_invitation.rb
+- lib/fog/cloudstack/requests/compute/update_region.rb
+- lib/fog/cloudstack/requests/compute/update_remote_access_vpn.rb
 - lib/fog/cloudstack/requests/compute/update_resource_count.rb
+- lib/fog/cloudstack/requests/compute/update_resource_limit.rb
+- lib/fog/cloudstack/requests/compute/update_service_offering.rb
+- lib/fog/cloudstack/requests/compute/update_storage_network_ip_range.rb
+- lib/fog/cloudstack/requests/compute/update_storage_pool.rb
+- lib/fog/cloudstack/requests/compute/update_template.rb
+- lib/fog/cloudstack/requests/compute/update_template_permissions.rb
+- lib/fog/cloudstack/requests/compute/update_traffic_type.rb
 - lib/fog/cloudstack/requests/compute/update_user.rb
 - lib/fog/cloudstack/requests/compute/update_virtual_machine.rb
+- lib/fog/cloudstack/requests/compute/update_vm_affinity_group.rb
+- lib/fog/cloudstack/requests/compute/update_volume.rb
+- lib/fog/cloudstack/requests/compute/update_vpc.rb
+- lib/fog/cloudstack/requests/compute/update_vpcoffering.rb
+- lib/fog/cloudstack/requests/compute/update_vpn_connection.rb
+- lib/fog/cloudstack/requests/compute/update_vpn_customer_gateway.rb
+- lib/fog/cloudstack/requests/compute/update_vpn_gateway.rb
+- lib/fog/cloudstack/requests/compute/update_zone.rb
+- lib/fog/cloudstack/requests/compute/upgrade_router_template.rb
+- lib/fog/cloudstack/requests/compute/upload_custom_certificate.rb
+- lib/fog/cloudstack/requests/compute/upload_ssl_cert.rb
+- lib/fog/cloudstack/requests/compute/upload_volume.rb
 - lib/fog/core/deprecated/connection.rb
-- lib/fog/core/deprecated_connection_accessors.rb
 - lib/fog/core/parser.rb
 - lib/fog/digitalocean.rb
 - lib/fog/digitalocean/CHANGELOG.md
@@ -2038,6 +2542,8 @@ files:
 - lib/fog/google/Rakefile
 - lib/fog/google/compute.rb
 - lib/fog/google/core.rb
+- lib/fog/google/dns.rb
+- lib/fog/google/examples/backend_services.rb
 - lib/fog/google/examples/bootstrap.rb
 - lib/fog/google/examples/create.rb
 - lib/fog/google/examples/eric-fail.rb
@@ -2045,14 +2551,27 @@ files:
 - lib/fog/google/examples/get_list_snapshots.rb
 - lib/fog/google/examples/image_all.rb
 - lib/fog/google/examples/image_create.rb
+- lib/fog/google/examples/l7_load_balance.rb
 - lib/fog/google/examples/launch_micro_instance.rb
 - lib/fog/google/examples/load-balance.rb
 - lib/fog/google/examples/metadata.rb
+- lib/fog/google/examples/monitoring/metric_descriptors.rb
+- lib/fog/google/examples/monitoring/timeseries_collection.rb
+- lib/fog/google/examples/monitoring/timeseries_descriptors.rb
 - lib/fog/google/examples/network.rb
 - lib/fog/google/examples/precreated_client.rb
+- lib/fog/google/examples/sql/flags.rb
+- lib/fog/google/examples/sql/instances.rb
+- lib/fog/google/examples/sql/operations.rb
+- lib/fog/google/examples/sql/ssl_certs.rb
+- lib/fog/google/examples/sql/tiers.rb
 - lib/fog/google/models/compute/address.rb
 - lib/fog/google/models/compute/addresses.rb
+- lib/fog/google/models/compute/backend_service.rb
+- lib/fog/google/models/compute/backend_services.rb
 - lib/fog/google/models/compute/disk.rb
+- lib/fog/google/models/compute/disk_type.rb
+- lib/fog/google/models/compute/disk_types.rb
 - lib/fog/google/models/compute/disks.rb
 - lib/fog/google/models/compute/firewall.rb
 - lib/fog/google/models/compute/firewalls.rb
@@ -2060,6 +2579,8 @@ files:
 - lib/fog/google/models/compute/flavors.rb
 - lib/fog/google/models/compute/forwarding_rule.rb
 - lib/fog/google/models/compute/forwarding_rules.rb
+- lib/fog/google/models/compute/global_forwarding_rule.rb
+- lib/fog/google/models/compute/global_forwarding_rules.rb
 - lib/fog/google/models/compute/http_health_check.rb
 - lib/fog/google/models/compute/http_health_checks.rb
 - lib/fog/google/models/compute/image.rb
@@ -2072,20 +2593,47 @@ files:
 - lib/fog/google/models/compute/projects.rb
 - lib/fog/google/models/compute/region.rb
 - lib/fog/google/models/compute/regions.rb
+- lib/fog/google/models/compute/resource_view.rb
+- lib/fog/google/models/compute/resource_views.rb
 - lib/fog/google/models/compute/route.rb
 - lib/fog/google/models/compute/routes.rb
 - lib/fog/google/models/compute/server.rb
 - lib/fog/google/models/compute/servers.rb
 - lib/fog/google/models/compute/snapshot.rb
 - lib/fog/google/models/compute/snapshots.rb
+- lib/fog/google/models/compute/target_http_proxies.rb
+- lib/fog/google/models/compute/target_http_proxy.rb
+- lib/fog/google/models/compute/target_instance.rb
+- lib/fog/google/models/compute/target_instances.rb
 - lib/fog/google/models/compute/target_pool.rb
 - lib/fog/google/models/compute/target_pools.rb
+- lib/fog/google/models/compute/url_map.rb
+- lib/fog/google/models/compute/url_maps.rb
 - lib/fog/google/models/compute/zone.rb
 - lib/fog/google/models/compute/zones.rb
+- lib/fog/google/models/monitoring/metric_descriptor.rb
+- lib/fog/google/models/monitoring/metric_descriptors.rb
+- lib/fog/google/models/monitoring/timeseries.rb
+- lib/fog/google/models/monitoring/timeseries_collection.rb
+- lib/fog/google/models/monitoring/timeseries_descriptor.rb
+- lib/fog/google/models/monitoring/timeseries_descriptors.rb
+- lib/fog/google/models/sql/backup_run.rb
+- lib/fog/google/models/sql/backup_runs.rb
+- lib/fog/google/models/sql/flag.rb
+- lib/fog/google/models/sql/flags.rb
+- lib/fog/google/models/sql/instance.rb
+- lib/fog/google/models/sql/instances.rb
+- lib/fog/google/models/sql/operation.rb
+- lib/fog/google/models/sql/operations.rb
+- lib/fog/google/models/sql/ssl_cert.rb
+- lib/fog/google/models/sql/ssl_certs.rb
+- lib/fog/google/models/sql/tier.rb
+- lib/fog/google/models/sql/tiers.rb
 - lib/fog/google/models/storage/directories.rb
 - lib/fog/google/models/storage/directory.rb
 - lib/fog/google/models/storage/file.rb
 - lib/fog/google/models/storage/files.rb
+- lib/fog/google/monitoring.rb
 - lib/fog/google/parsers/storage/access_control_list.rb
 - lib/fog/google/parsers/storage/copy_object.rb
 - lib/fog/google/parsers/storage/get_bucket.rb
@@ -2094,28 +2642,47 @@ files:
 - lib/fog/google/parsers/storage/get_bucket_versioning.rb
 - lib/fog/google/parsers/storage/get_request_payment.rb
 - lib/fog/google/parsers/storage/get_service.rb
+- lib/fog/google/requests/compute/add_backend_service_backends.rb
+- lib/fog/google/requests/compute/add_region_view_resources.rb
+- lib/fog/google/requests/compute/add_server_access_config.rb
 - lib/fog/google/requests/compute/add_target_pool_health_checks.rb
 - lib/fog/google/requests/compute/add_target_pool_instances.rb
+- lib/fog/google/requests/compute/add_url_map_host_rules.rb
+- lib/fog/google/requests/compute/add_url_map_path_matchers.rb
+- lib/fog/google/requests/compute/add_zone_view_resources.rb
 - lib/fog/google/requests/compute/attach_disk.rb
 - lib/fog/google/requests/compute/delete_address.rb
+- lib/fog/google/requests/compute/delete_backend_service.rb
 - lib/fog/google/requests/compute/delete_disk.rb
 - lib/fog/google/requests/compute/delete_firewall.rb
 - lib/fog/google/requests/compute/delete_forwarding_rule.rb
+- lib/fog/google/requests/compute/delete_global_forwarding_rule.rb
 - lib/fog/google/requests/compute/delete_global_operation.rb
 - lib/fog/google/requests/compute/delete_http_health_check.rb
 - lib/fog/google/requests/compute/delete_image.rb
 - lib/fog/google/requests/compute/delete_network.rb
 - lib/fog/google/requests/compute/delete_region_operation.rb
+- lib/fog/google/requests/compute/delete_region_view.rb
 - lib/fog/google/requests/compute/delete_route.rb
 - lib/fog/google/requests/compute/delete_server.rb
+- lib/fog/google/requests/compute/delete_server_access_config.rb
 - lib/fog/google/requests/compute/delete_snapshot.rb
+- lib/fog/google/requests/compute/delete_target_http_proxy.rb
+- lib/fog/google/requests/compute/delete_target_instance.rb
 - lib/fog/google/requests/compute/delete_target_pool.rb
+- lib/fog/google/requests/compute/delete_url_map.rb
 - lib/fog/google/requests/compute/delete_zone_operation.rb
+- lib/fog/google/requests/compute/delete_zone_view.rb
 - lib/fog/google/requests/compute/detach_disk.rb
 - lib/fog/google/requests/compute/get_address.rb
+- lib/fog/google/requests/compute/get_backend_service.rb
+- lib/fog/google/requests/compute/get_backend_service_health.rb
+- lib/fog/google/requests/compute/get_backend_services.rb
 - lib/fog/google/requests/compute/get_disk.rb
+- lib/fog/google/requests/compute/get_disk_type.rb
 - lib/fog/google/requests/compute/get_firewall.rb
 - lib/fog/google/requests/compute/get_forwarding_rule.rb
+- lib/fog/google/requests/compute/get_global_forwarding_rule.rb
 - lib/fog/google/requests/compute/get_global_operation.rb
 - lib/fog/google/requests/compute/get_http_health_check.rb
 - lib/fog/google/requests/compute/get_image.rb
@@ -2124,50 +2691,112 @@ files:
 - lib/fog/google/requests/compute/get_project.rb
 - lib/fog/google/requests/compute/get_region.rb
 - lib/fog/google/requests/compute/get_region_operation.rb
+- lib/fog/google/requests/compute/get_region_view.rb
 - lib/fog/google/requests/compute/get_route.rb
 - lib/fog/google/requests/compute/get_server.rb
+- lib/fog/google/requests/compute/get_server_serial_port_output.rb
 - lib/fog/google/requests/compute/get_snapshot.rb
+- lib/fog/google/requests/compute/get_target_http_proxy.rb
+- lib/fog/google/requests/compute/get_target_instance.rb
 - lib/fog/google/requests/compute/get_target_pool.rb
 - lib/fog/google/requests/compute/get_target_pool_health.rb
+- lib/fog/google/requests/compute/get_url_map.rb
 - lib/fog/google/requests/compute/get_zone.rb
 - lib/fog/google/requests/compute/get_zone_operation.rb
+- lib/fog/google/requests/compute/get_zone_view.rb
 - lib/fog/google/requests/compute/insert_address.rb
+- lib/fog/google/requests/compute/insert_backend_service.rb
 - lib/fog/google/requests/compute/insert_disk.rb
 - lib/fog/google/requests/compute/insert_firewall.rb
 - lib/fog/google/requests/compute/insert_forwarding_rule.rb
+- lib/fog/google/requests/compute/insert_global_forwarding_rule.rb
 - lib/fog/google/requests/compute/insert_http_health_check.rb
 - lib/fog/google/requests/compute/insert_image.rb
 - lib/fog/google/requests/compute/insert_network.rb
+- lib/fog/google/requests/compute/insert_region_view.rb
 - lib/fog/google/requests/compute/insert_route.rb
 - lib/fog/google/requests/compute/insert_server.rb
 - lib/fog/google/requests/compute/insert_snapshot.rb
+- lib/fog/google/requests/compute/insert_target_http_proxy.rb
+- lib/fog/google/requests/compute/insert_target_instance.rb
 - lib/fog/google/requests/compute/insert_target_pool.rb
+- lib/fog/google/requests/compute/insert_url_map.rb
+- lib/fog/google/requests/compute/insert_zone_view.rb
 - lib/fog/google/requests/compute/list_addresses.rb
 - lib/fog/google/requests/compute/list_aggregated_addresses.rb
+- lib/fog/google/requests/compute/list_aggregated_disk_types.rb
+- lib/fog/google/requests/compute/list_aggregated_disks.rb
 - lib/fog/google/requests/compute/list_aggregated_machine_types.rb
+- lib/fog/google/requests/compute/list_aggregated_servers.rb
+- lib/fog/google/requests/compute/list_backend_services.rb
+- lib/fog/google/requests/compute/list_disk_types.rb
 - lib/fog/google/requests/compute/list_disks.rb
 - lib/fog/google/requests/compute/list_firewalls.rb
 - lib/fog/google/requests/compute/list_forwarding_rules.rb
+- lib/fog/google/requests/compute/list_global_forwarding_rules.rb
 - lib/fog/google/requests/compute/list_global_operations.rb
 - lib/fog/google/requests/compute/list_http_health_checks.rb
 - lib/fog/google/requests/compute/list_images.rb
 - lib/fog/google/requests/compute/list_machine_types.rb
 - lib/fog/google/requests/compute/list_networks.rb
 - lib/fog/google/requests/compute/list_region_operations.rb
+- lib/fog/google/requests/compute/list_region_view_resources.rb
+- lib/fog/google/requests/compute/list_region_views.rb
 - lib/fog/google/requests/compute/list_regions.rb
 - lib/fog/google/requests/compute/list_routes.rb
 - lib/fog/google/requests/compute/list_servers.rb
 - lib/fog/google/requests/compute/list_snapshots.rb
+- lib/fog/google/requests/compute/list_target_http_proxies.rb
+- lib/fog/google/requests/compute/list_target_instances.rb
 - lib/fog/google/requests/compute/list_target_pools.rb
+- lib/fog/google/requests/compute/list_url_maps.rb
 - lib/fog/google/requests/compute/list_zone_operations.rb
+- lib/fog/google/requests/compute/list_zone_view_resources.rb
+- lib/fog/google/requests/compute/list_zone_views.rb
 - lib/fog/google/requests/compute/list_zones.rb
 - lib/fog/google/requests/compute/remove_target_pool_health_checks.rb
 - lib/fog/google/requests/compute/remove_target_pool_instance.rb
 - lib/fog/google/requests/compute/remove_target_pool_instances.rb
+- lib/fog/google/requests/compute/reset_server.rb
 - lib/fog/google/requests/compute/set_common_instance_metadata.rb
 - lib/fog/google/requests/compute/set_forwarding_rule_target.rb
+- lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb
 - lib/fog/google/requests/compute/set_metadata.rb
+- lib/fog/google/requests/compute/set_server_disk_auto_delete.rb
+- lib/fog/google/requests/compute/set_server_scheduling.rb
 - lib/fog/google/requests/compute/set_tags.rb
+- lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb
+- lib/fog/google/requests/compute/update_url_map.rb
+- lib/fog/google/requests/compute/validate_url_map.rb
+- lib/fog/google/requests/dns/create_managed_zone.rb
+- lib/fog/google/requests/dns/delete_managed_zone.rb
+- lib/fog/google/requests/dns/get_managed_zone.rb
+- lib/fog/google/requests/dns/list_managed_zones.rb
+- lib/fog/google/requests/monitoring/list_metric_descriptors.rb
+- lib/fog/google/requests/monitoring/list_timeseries.rb
+- lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb
+- lib/fog/google/requests/sql/clone_instance.rb
+- lib/fog/google/requests/sql/delete_instance.rb
+- lib/fog/google/requests/sql/delete_ssl_cert.rb
+- lib/fog/google/requests/sql/export_instance.rb
+- lib/fog/google/requests/sql/get_backup_run.rb
+- lib/fog/google/requests/sql/get_instance.rb
+- lib/fog/google/requests/sql/get_operation.rb
+- lib/fog/google/requests/sql/get_ssl_cert.rb
+- lib/fog/google/requests/sql/import_instance.rb
+- lib/fog/google/requests/sql/insert_instance.rb
+- lib/fog/google/requests/sql/insert_ssl_cert.rb
+- lib/fog/google/requests/sql/list_backup_runs.rb
+- lib/fog/google/requests/sql/list_flags.rb
+- lib/fog/google/requests/sql/list_instances.rb
+- lib/fog/google/requests/sql/list_operations.rb
+- lib/fog/google/requests/sql/list_ssl_certs.rb
+- lib/fog/google/requests/sql/list_tiers.rb
+- lib/fog/google/requests/sql/reset_instance_ssl_config.rb
+- lib/fog/google/requests/sql/restart_instance.rb
+- lib/fog/google/requests/sql/restore_instance_backup.rb
+- lib/fog/google/requests/sql/set_instance_root_password.rb
+- lib/fog/google/requests/sql/update_instance.rb
 - lib/fog/google/requests/storage/copy_object.rb
 - lib/fog/google/requests/storage/delete_bucket.rb
 - lib/fog/google/requests/storage/delete_object.rb
@@ -2186,6 +2815,7 @@ files:
 - lib/fog/google/requests/storage/put_object.rb
 - lib/fog/google/requests/storage/put_object_acl.rb
 - lib/fog/google/requests/storage/put_object_url.rb
+- lib/fog/google/sql.rb
 - lib/fog/google/storage.rb
 - lib/fog/hp.rb
 - lib/fog/hp/CHANGELOG.hp
@@ -2776,7 +3406,9 @@ files:
 - lib/fog/linode/requests/compute/avail_stackscripts.rb
 - lib/fog/linode/requests/compute/linode_boot.rb
 - lib/fog/linode/requests/compute/linode_config_create.rb
+- lib/fog/linode/requests/compute/linode_config_delete.rb
 - lib/fog/linode/requests/compute/linode_config_list.rb
+- lib/fog/linode/requests/compute/linode_config_update.rb
 - lib/fog/linode/requests/compute/linode_create.rb
 - lib/fog/linode/requests/compute/linode_delete.rb
 - lib/fog/linode/requests/compute/linode_disk_create.rb
@@ -2857,6 +3489,30 @@ files:
 - lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb
 - lib/fog/ninefold/requests/compute/update_virtual_machine.rb
 - lib/fog/ninefold/storage.rb
+- lib/fog/opennebula.rb
+- lib/fog/opennebula/README.md
+- lib/fog/opennebula/compute.rb
+- lib/fog/opennebula/core.rb
+- lib/fog/opennebula/models/compute/flavor.rb
+- lib/fog/opennebula/models/compute/flavors.rb
+- lib/fog/opennebula/models/compute/group.rb
+- lib/fog/opennebula/models/compute/groups.rb
+- lib/fog/opennebula/models/compute/interface.rb
+- lib/fog/opennebula/models/compute/interfaces.rb
+- lib/fog/opennebula/models/compute/network.rb
+- lib/fog/opennebula/models/compute/networks.rb
+- lib/fog/opennebula/models/compute/server.rb
+- lib/fog/opennebula/models/compute/servers.rb
+- lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb
+- lib/fog/opennebula/requests/compute/get_vnc_console.rb
+- lib/fog/opennebula/requests/compute/list_groups.rb
+- lib/fog/opennebula/requests/compute/list_networks.rb
+- lib/fog/opennebula/requests/compute/list_vms.rb
+- lib/fog/opennebula/requests/compute/template_pool.rb
+- lib/fog/opennebula/requests/compute/vm_allocate.rb
+- lib/fog/opennebula/requests/compute/vm_destroy.rb
+- lib/fog/opennebula/requests/compute/vm_resume.rb
+- lib/fog/opennebula/requests/compute/vm_stop.rb
 - lib/fog/openstack.rb
 - lib/fog/openstack/CHANGELOG.md
 - lib/fog/openstack/compute.rb
@@ -3032,6 +3688,8 @@ files:
 - lib/fog/openstack/requests/compute/server_diagnostics.rb
 - lib/fog/openstack/requests/compute/set_metadata.rb
 - lib/fog/openstack/requests/compute/set_tenant.rb
+- lib/fog/openstack/requests/compute/start_server.rb
+- lib/fog/openstack/requests/compute/stop_server.rb
 - lib/fog/openstack/requests/compute/suspend_server.rb
 - lib/fog/openstack/requests/compute/unpause_server.rb
 - lib/fog/openstack/requests/compute/update_meta.rb
@@ -3545,6 +4203,7 @@ files:
 - lib/fog/rackspace/requests/databases/enable_root_user.rb
 - lib/fog/rackspace/requests/databases/get_flavor.rb
 - lib/fog/rackspace/requests/databases/get_instance.rb
+- lib/fog/rackspace/requests/databases/grant_user_access.rb
 - lib/fog/rackspace/requests/databases/list_databases.rb
 - lib/fog/rackspace/requests/databases/list_flavors.rb
 - lib/fog/rackspace/requests/databases/list_instances.rb
@@ -3552,6 +4211,7 @@ files:
 - lib/fog/rackspace/requests/databases/resize_instance.rb
 - lib/fog/rackspace/requests/databases/resize_instance_volume.rb
 - lib/fog/rackspace/requests/databases/restart_instance.rb
+- lib/fog/rackspace/requests/databases/revoke_user_access.rb
 - lib/fog/rackspace/requests/dns/add_records.rb
 - lib/fog/rackspace/requests/dns/callback.rb
 - lib/fog/rackspace/requests/dns/create_domains.rb
@@ -3733,40 +4393,6 @@ files:
 - lib/fog/riakcs/requests/provisioning/update_user.rb
 - lib/fog/riakcs/requests/usage/get_usage.rb
 - lib/fog/riakcs/usage.rb
-- lib/fog/sakuracloud.rb
-- lib/fog/sakuracloud/compute.rb
-- lib/fog/sakuracloud/docs/getting_started.md
-- lib/fog/sakuracloud/models/compute/plan.rb
-- lib/fog/sakuracloud/models/compute/plans.rb
-- lib/fog/sakuracloud/models/compute/server.rb
-- lib/fog/sakuracloud/models/compute/servers.rb
-- lib/fog/sakuracloud/models/compute/ssh_key.rb
-- lib/fog/sakuracloud/models/compute/ssh_keys.rb
-- lib/fog/sakuracloud/models/compute/zone.rb
-- lib/fog/sakuracloud/models/compute/zones.rb
-- lib/fog/sakuracloud/models/volume/archive.rb
-- lib/fog/sakuracloud/models/volume/archives.rb
-- lib/fog/sakuracloud/models/volume/disk.rb
-- lib/fog/sakuracloud/models/volume/disks.rb
-- lib/fog/sakuracloud/models/volume/plan.rb
-- lib/fog/sakuracloud/models/volume/plans.rb
-- lib/fog/sakuracloud/requests/compute/boot_server.rb
-- lib/fog/sakuracloud/requests/compute/create_server.rb
-- lib/fog/sakuracloud/requests/compute/delete_server.rb
-- lib/fog/sakuracloud/requests/compute/list_plans.rb
-- lib/fog/sakuracloud/requests/compute/list_servers.rb
-- lib/fog/sakuracloud/requests/compute/list_ssh_keys.rb
-- lib/fog/sakuracloud/requests/compute/list_zones.rb
-- lib/fog/sakuracloud/requests/compute/stop_server.rb
-- lib/fog/sakuracloud/requests/volume/attach_disk.rb
-- lib/fog/sakuracloud/requests/volume/configure_disk.rb
-- lib/fog/sakuracloud/requests/volume/create_disk.rb
-- lib/fog/sakuracloud/requests/volume/delete_disk.rb
-- lib/fog/sakuracloud/requests/volume/list_archives.rb
-- lib/fog/sakuracloud/requests/volume/list_disks.rb
-- lib/fog/sakuracloud/requests/volume/list_plans.rb
-- lib/fog/sakuracloud/volume.rb
-- lib/fog/schema/data_validator.rb
 - lib/fog/serverlove.rb
 - lib/fog/serverlove/compute.rb
 - lib/fog/serverlove/core.rb
@@ -4144,6 +4770,8 @@ files:
 - lib/fog/vcloud_director/models/compute/catalog_item.rb
 - lib/fog/vcloud_director/models/compute/catalog_items.rb
 - lib/fog/vcloud_director/models/compute/catalogs.rb
+- lib/fog/vcloud_director/models/compute/custom_field.rb
+- lib/fog/vcloud_director/models/compute/custom_fields.rb
 - lib/fog/vcloud_director/models/compute/disk.rb
 - lib/fog/vcloud_director/models/compute/disks.rb
 - lib/fog/vcloud_director/models/compute/media.rb
@@ -4174,6 +4802,7 @@ files:
 - lib/fog/vcloud_director/parsers/compute/vm_network.rb
 - lib/fog/vcloud_director/parsers/compute/vms.rb
 - lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb
+- lib/fog/vcloud_director/query.rb
 - lib/fog/vcloud_director/requests/compute/delete_catalog_item.rb
 - lib/fog/vcloud_director/requests/compute/delete_catalog_item_metadata_item_metadata.rb
 - lib/fog/vcloud_director/requests/compute/delete_disk.rb
@@ -4301,6 +4930,7 @@ files:
 - lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb
 - lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp.rb
 - lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp_template.rb
+- lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb
 - lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb
 - lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb
 - lib/fog/vcloud_director/requests/compute/post_detach_disk.rb
@@ -4342,7 +4972,9 @@ files:
 - lib/fog/vcloud_director/requests/compute/put_media_metadata_item_metadata.rb
 - lib/fog/vcloud_director/requests/compute/put_memory.rb
 - lib/fog/vcloud_director/requests/compute/put_metadata_value.rb
+- lib/fog/vcloud_director/requests/compute/put_network.rb
 - lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb
+- lib/fog/vcloud_director/requests/compute/put_product_sections.rb
 - lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb
 - lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb
 - lib/fog/vcloud_director/requests/compute/put_vapp_template_metadata_item_metadata.rb
@@ -4607,6 +5239,7 @@ files:
 - tests/aws/models/auto_scaling/configurations_tests.rb
 - tests/aws/models/auto_scaling/groups_test.rb
 - tests/aws/models/auto_scaling/helper.rb
+- tests/aws/models/auto_scaling/instance_tests.rb
 - tests/aws/models/auto_scaling/instances_tests.rb
 - tests/aws/models/beanstalk/application_tests.rb
 - tests/aws/models/beanstalk/applications_tests.rb
@@ -4722,6 +5355,7 @@ files:
 - tests/aws/requests/data_pipeline/helper.rb
 - tests/aws/requests/data_pipeline/pipeline_tests.rb
 - tests/aws/requests/dns/dns_tests.rb
+- tests/aws/requests/dns/health_check_tests.rb
 - tests/aws/requests/dns/helper.rb
 - tests/aws/requests/dynamodb/item_tests.rb
 - tests/aws/requests/dynamodb/table_tests.rb
@@ -4744,6 +5378,7 @@ files:
 - tests/aws/requests/glacier/tree_hash_tests.rb
 - tests/aws/requests/glacier/vault_tests.rb
 - tests/aws/requests/iam/access_key_tests.rb
+- tests/aws/requests/iam/account_policy_tests.rb
 - tests/aws/requests/iam/account_tests.rb
 - tests/aws/requests/iam/group_policy_tests.rb
 - tests/aws/requests/iam/group_tests.rb
@@ -4945,18 +5580,69 @@ files:
 - tests/glesys/requests/compute/server_tests.rb
 - tests/glesys/requests/compute/template_tests.rb
 - tests/go_grid/requests/compute/image_tests.rb
-- tests/google/helpers/disk_helper.rb
+- tests/google/helpers/google_tests_helper.rb
+- tests/google/models/compute/backend_service_tests.rb
+- tests/google/models/compute/backend_services_tests.rb
 - tests/google/models/compute/disk_tests.rb
+- tests/google/models/compute/disk_types_tests.rb
 - tests/google/models/compute/disks_tests.rb
+- tests/google/models/compute/forwarding_rule_tests.rb
+- tests/google/models/compute/forwarding_rules_tests.rb
+- tests/google/models/compute/global_forwarding_rule_tests.rb
+- tests/google/models/compute/global_forwarding_rules_tests.rb
+- tests/google/models/compute/http_health_check_tests.rb
+- tests/google/models/compute/http_health_checks_tests.rb
+- tests/google/models/compute/image_tests.rb
+- tests/google/models/compute/images_tests.rb
+- tests/google/models/compute/region_tests.rb
+- tests/google/models/compute/regions_tests.rb
 - tests/google/models/compute/server_tests.rb
 - tests/google/models/compute/servers_tests.rb
+- tests/google/models/compute/target_http_proxies_tests.rb
+- tests/google/models/compute/target_http_proxy_test.rb
+- tests/google/models/compute/target_instance_tests.rb
+- tests/google/models/compute/target_instances_tests.rb
+- tests/google/models/compute/target_pool_tests.rb
+- tests/google/models/compute/target_pools_tests.rb
+- tests/google/models/compute/url_map_tests.rb
+- tests/google/models/compute/url_maps_tests.rb
+- tests/google/models/monitoring/metric_descriptors_tests.rb
+- tests/google/models/monitoring/timeseries_collection_tests.rb
+- tests/google/models/monitoring/timeseries_descriptors_tests.rb
+- tests/google/models/sql/flags_tests.rb
+- tests/google/models/sql/instance_tests.rb
+- tests/google/models/sql/instances_tests.rb
+- tests/google/models/sql/operation_tests.rb
+- tests/google/models/sql/operations_tests.rb
+- tests/google/models/sql/ssl_cert_tests.rb
+- tests/google/models/sql/ssl_certs_tests.rb
+- tests/google/models/sql/tiers_tests.rb
+- tests/google/requests/compute/backend_service_tests.rb
 - tests/google/requests/compute/disk_tests.rb
+- tests/google/requests/compute/disk_type_tests.rb
 - tests/google/requests/compute/firewall_tests.rb
+- tests/google/requests/compute/forwarding_rules_tests.rb
+- tests/google/requests/compute/global_forwarding_rules_tests.rb
+- tests/google/requests/compute/http_health_checks_tests.rb
 - tests/google/requests/compute/image_tests.rb
 - tests/google/requests/compute/network_tests.rb
 - tests/google/requests/compute/operation_tests.rb
+- tests/google/requests/compute/region_tests.rb
 - tests/google/requests/compute/server_tests.rb
+- tests/google/requests/compute/target_http_proxies_test.rb
+- tests/google/requests/compute/target_instances_tests.rb
+- tests/google/requests/compute/target_pools_tests.rb
+- tests/google/requests/compute/url_maps_tests.rb
 - tests/google/requests/compute/zone_tests.rb
+- tests/google/requests/dns/managed_zone_tests.rb
+- tests/google/requests/monitoring/metric_descriptor_tests.rb
+- tests/google/requests/monitoring/timeseries_collection_tests.rb
+- tests/google/requests/monitoring/timeseries_descriptor_tests.rb
+- tests/google/requests/sql/flag_tests.rb
+- tests/google/requests/sql/instance_tests.rb
+- tests/google/requests/sql/operation_tests.rb
+- tests/google/requests/sql/ssl_cert_tests.rb
+- tests/google/requests/sql/tier_tests.rb
 - tests/google/requests/storage/bucket_tests.rb
 - tests/google/requests/storage/object_tests.rb
 - tests/helper.rb
@@ -5164,6 +5850,12 @@ files:
 - tests/ninefold/requests/compute/network_tests.rb
 - tests/ninefold/requests/compute/template_tests.rb
 - tests/ninefold/requests/compute/virtual_machine_tests.rb
+- tests/opennebula/compute_tests.rb
+- tests/opennebula/models/compute/group_tests.rb
+- tests/opennebula/models/compute/groups_tests.rb
+- tests/opennebula/models/compute/network_tests.rb
+- tests/opennebula/models/compute/networks_tests.rb
+- tests/opennebula/requests/compute/vm_allocate_tests.rb
 - tests/openstack/authenticate_tests.rb
 - tests/openstack/models/compute/images_tests.rb
 - tests/openstack/models/compute/security_group_tests.rb
@@ -5418,14 +6110,6 @@ files:
 - tests/rage4/requests/dns/dns_tests.rb
 - tests/riakcs/requests/provisioning/provisioning_tests.rb
 - tests/riakcs/requests/usage/usage_tests.rb
-- tests/sakuracloud/helper.rb
-- tests/sakuracloud/requests/compute/plans_tests.rb
-- tests/sakuracloud/requests/compute/servers_tests.rb
-- tests/sakuracloud/requests/compute/ssh_keys_tests.rb
-- tests/sakuracloud/requests/compute/zones_tests.rb
-- tests/sakuracloud/requests/volume/archives_tests.rb
-- tests/sakuracloud/requests/volume/disks_tests.rb
-- tests/sakuracloud/requests/volume/plans_tests.rb
 - tests/serverlove/requests/compute/image_tests.rb
 - tests/serverlove/requests/compute/server_tests.rb
 - tests/serverlove/util/compute/password_generator_tests.rb
@@ -5583,7 +6267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
       version: '0'
 requirements: []
 rubyforge_project: fog
-rubygems_version: 2.2.2
+rubygems_version: 2.3.0
 signing_key: 
 specification_version: 2
 summary: brings clouds to you
@@ -5597,6 +6281,7 @@ test_files:
 - tests/aws/models/auto_scaling/configurations_tests.rb
 - tests/aws/models/auto_scaling/groups_test.rb
 - tests/aws/models/auto_scaling/helper.rb
+- tests/aws/models/auto_scaling/instance_tests.rb
 - tests/aws/models/auto_scaling/instances_tests.rb
 - tests/aws/models/beanstalk/application_tests.rb
 - tests/aws/models/beanstalk/applications_tests.rb
@@ -5712,6 +6397,7 @@ test_files:
 - tests/aws/requests/data_pipeline/helper.rb
 - tests/aws/requests/data_pipeline/pipeline_tests.rb
 - tests/aws/requests/dns/dns_tests.rb
+- tests/aws/requests/dns/health_check_tests.rb
 - tests/aws/requests/dns/helper.rb
 - tests/aws/requests/dynamodb/item_tests.rb
 - tests/aws/requests/dynamodb/table_tests.rb
@@ -5734,6 +6420,7 @@ test_files:
 - tests/aws/requests/glacier/tree_hash_tests.rb
 - tests/aws/requests/glacier/vault_tests.rb
 - tests/aws/requests/iam/access_key_tests.rb
+- tests/aws/requests/iam/account_policy_tests.rb
 - tests/aws/requests/iam/account_tests.rb
 - tests/aws/requests/iam/group_policy_tests.rb
 - tests/aws/requests/iam/group_tests.rb
@@ -5935,18 +6622,69 @@ test_files:
 - tests/glesys/requests/compute/server_tests.rb
 - tests/glesys/requests/compute/template_tests.rb
 - tests/go_grid/requests/compute/image_tests.rb
-- tests/google/helpers/disk_helper.rb
+- tests/google/helpers/google_tests_helper.rb
+- tests/google/models/compute/backend_service_tests.rb
+- tests/google/models/compute/backend_services_tests.rb
 - tests/google/models/compute/disk_tests.rb
+- tests/google/models/compute/disk_types_tests.rb
 - tests/google/models/compute/disks_tests.rb
+- tests/google/models/compute/forwarding_rule_tests.rb
+- tests/google/models/compute/forwarding_rules_tests.rb
+- tests/google/models/compute/global_forwarding_rule_tests.rb
+- tests/google/models/compute/global_forwarding_rules_tests.rb
+- tests/google/models/compute/http_health_check_tests.rb
+- tests/google/models/compute/http_health_checks_tests.rb
+- tests/google/models/compute/image_tests.rb
+- tests/google/models/compute/images_tests.rb
+- tests/google/models/compute/region_tests.rb
+- tests/google/models/compute/regions_tests.rb
 - tests/google/models/compute/server_tests.rb
 - tests/google/models/compute/servers_tests.rb
+- tests/google/models/compute/target_http_proxies_tests.rb
+- tests/google/models/compute/target_http_proxy_test.rb
+- tests/google/models/compute/target_instance_tests.rb
+- tests/google/models/compute/target_instances_tests.rb
+- tests/google/models/compute/target_pool_tests.rb
+- tests/google/models/compute/target_pools_tests.rb
+- tests/google/models/compute/url_map_tests.rb
+- tests/google/models/compute/url_maps_tests.rb
+- tests/google/models/monitoring/metric_descriptors_tests.rb
+- tests/google/models/monitoring/timeseries_collection_tests.rb
+- tests/google/models/monitoring/timeseries_descriptors_tests.rb
+- tests/google/models/sql/flags_tests.rb
+- tests/google/models/sql/instance_tests.rb
+- tests/google/models/sql/instances_tests.rb
+- tests/google/models/sql/operation_tests.rb
+- tests/google/models/sql/operations_tests.rb
+- tests/google/models/sql/ssl_cert_tests.rb
+- tests/google/models/sql/ssl_certs_tests.rb
+- tests/google/models/sql/tiers_tests.rb
+- tests/google/requests/compute/backend_service_tests.rb
 - tests/google/requests/compute/disk_tests.rb
+- tests/google/requests/compute/disk_type_tests.rb
 - tests/google/requests/compute/firewall_tests.rb
+- tests/google/requests/compute/forwarding_rules_tests.rb
+- tests/google/requests/compute/global_forwarding_rules_tests.rb
+- tests/google/requests/compute/http_health_checks_tests.rb
 - tests/google/requests/compute/image_tests.rb
 - tests/google/requests/compute/network_tests.rb
 - tests/google/requests/compute/operation_tests.rb
+- tests/google/requests/compute/region_tests.rb
 - tests/google/requests/compute/server_tests.rb
+- tests/google/requests/compute/target_http_proxies_test.rb
+- tests/google/requests/compute/target_instances_tests.rb
+- tests/google/requests/compute/target_pools_tests.rb
+- tests/google/requests/compute/url_maps_tests.rb
 - tests/google/requests/compute/zone_tests.rb
+- tests/google/requests/dns/managed_zone_tests.rb
+- tests/google/requests/monitoring/metric_descriptor_tests.rb
+- tests/google/requests/monitoring/timeseries_collection_tests.rb
+- tests/google/requests/monitoring/timeseries_descriptor_tests.rb
+- tests/google/requests/sql/flag_tests.rb
+- tests/google/requests/sql/instance_tests.rb
+- tests/google/requests/sql/operation_tests.rb
+- tests/google/requests/sql/ssl_cert_tests.rb
+- tests/google/requests/sql/tier_tests.rb
 - tests/google/requests/storage/bucket_tests.rb
 - tests/google/requests/storage/object_tests.rb
 - tests/helper.rb
@@ -6154,6 +6892,12 @@ test_files:
 - tests/ninefold/requests/compute/network_tests.rb
 - tests/ninefold/requests/compute/template_tests.rb
 - tests/ninefold/requests/compute/virtual_machine_tests.rb
+- tests/opennebula/compute_tests.rb
+- tests/opennebula/models/compute/group_tests.rb
+- tests/opennebula/models/compute/groups_tests.rb
+- tests/opennebula/models/compute/network_tests.rb
+- tests/opennebula/models/compute/networks_tests.rb
+- tests/opennebula/requests/compute/vm_allocate_tests.rb
 - tests/openstack/authenticate_tests.rb
 - tests/openstack/models/compute/images_tests.rb
 - tests/openstack/models/compute/security_group_tests.rb
@@ -6408,14 +7152,6 @@ test_files:
 - tests/rage4/requests/dns/dns_tests.rb
 - tests/riakcs/requests/provisioning/provisioning_tests.rb
 - tests/riakcs/requests/usage/usage_tests.rb
-- tests/sakuracloud/helper.rb
-- tests/sakuracloud/requests/compute/plans_tests.rb
-- tests/sakuracloud/requests/compute/servers_tests.rb
-- tests/sakuracloud/requests/compute/ssh_keys_tests.rb
-- tests/sakuracloud/requests/compute/zones_tests.rb
-- tests/sakuracloud/requests/volume/archives_tests.rb
-- tests/sakuracloud/requests/volume/disks_tests.rb
-- tests/sakuracloud/requests/volume/plans_tests.rb
 - tests/serverlove/requests/compute/image_tests.rb
 - tests/serverlove/requests/compute/server_tests.rb
 - tests/serverlove/util/compute/password_generator_tests.rb
diff --git a/tests/aws/credentials_tests.rb b/tests/aws/credentials_tests.rb
index 225505d..54e0869 100644
--- a/tests/aws/credentials_tests.rb
+++ b/tests/aws/credentials_tests.rb
@@ -17,11 +17,10 @@ Shindo.tests('AWS | credentials', ['aws']) do
 
     Excon.stub({:method => :get, :path => "/latest/meta-data/iam/security-credentials/arole"}, {:status => 200, :body => Fog::JSON.encode(credentials)})
 
-
     tests("#fetch_credentials") do
-      returns({:aws_access_key_id => 'dummykey', 
-                :aws_secret_access_key => 'dummysecret', 
-                :aws_session_token => 'dummytoken', 
+      returns({:aws_access_key_id => 'dummykey',
+                :aws_secret_access_key => 'dummysecret',
+                :aws_session_token => 'dummytoken',
                 :aws_credentials_expire_at => expires_at}) { Fog::Compute::AWS.fetch_credentials(:use_iam_profile => true) }
     end
 
@@ -44,7 +43,6 @@ Shindo.tests('AWS | credentials', ['aws']) do
     end
     Fog::Time.now = Time.now
 
-
     tests("#fetch_credentials when the url 404s") do
       Excon.stub({:method => :get, :path => "/latest/meta-data/iam/security-credentials/"}, {:status => 404, :body => 'not bound'})
       returns(default_credentials) {Fog::Compute::AWS.fetch_credentials(:use_iam_profile => true)}
diff --git a/tests/aws/models/auto_scaling/groups_test.rb b/tests/aws/models/auto_scaling/groups_test.rb
index cf09f7a..6cec9e7 100644
--- a/tests/aws/models/auto_scaling/groups_test.rb
+++ b/tests/aws/models/auto_scaling/groups_test.rb
@@ -14,11 +14,11 @@ Shindo.tests('AWS::AutoScaling | group', ['aws', 'auto_scaling_m']) do
   }
 
   Fog::AWS[:auto_scaling].configurations.new(lc_params).save
-  
+
   model_tests(Fog::AWS[:auto_scaling].groups, params, true) do
     @instance.update
   end
-  
+
   test("setting attributes in the constructor") do
     group = Fog::AWS[:auto_scaling].groups.new(:min_size => 1, :max_size => 2)
     group.min_size == 1 && group.max_size == 2
diff --git a/tests/aws/models/auto_scaling/instance_tests.rb b/tests/aws/models/auto_scaling/instance_tests.rb
new file mode 100644
index 0000000..2d280df
--- /dev/null
+++ b/tests/aws/models/auto_scaling/instance_tests.rb
@@ -0,0 +1,15 @@
+require 'fog/aws/models/auto_scaling/instance'
+
+Shindo.tests("Fog::AWS::AutoScaling::Instance", 'aws') do
+  @instance = Fog::AWS::AutoScaling::Instance.new
+
+  test('#healthy? = true') do
+    @instance.health_status = 'Healthy'
+    @instance.healthy? == true
+  end
+
+  test('#heatlhy? = false') do
+    @instance.health_status = 'Unhealthy'
+    @instance.healthy? == false
+  end
+end
diff --git a/tests/aws/models/beanstalk/application_tests.rb b/tests/aws/models/beanstalk/application_tests.rb
index 724c8ad..980077b 100644
--- a/tests/aws/models/beanstalk/application_tests.rb
+++ b/tests/aws/models/beanstalk/application_tests.rb
@@ -66,5 +66,4 @@ Shindo.tests("Fog::AWS[:beanstalk] | application", ['aws', 'beanstalk']) do
 
   end
 
-
 end
diff --git a/tests/aws/models/beanstalk/environment_tests.rb b/tests/aws/models/beanstalk/environment_tests.rb
index 8f919cc..44caf3f 100644
--- a/tests/aws/models/beanstalk/environment_tests.rb
+++ b/tests/aws/models/beanstalk/environment_tests.rb
@@ -90,7 +90,6 @@ Shindo.tests("Fog::AWS[:beanstalk] | environment", ['aws', 'beanstalk']) do
       @instance.wait_for { ready? }
     end
 
-
     test('#restart_app_server') do
       @instance.restart_app_server
 
diff --git a/tests/aws/models/beanstalk/environments_tests.rb b/tests/aws/models/beanstalk/environments_tests.rb
index e791fd4..3f87059 100644
--- a/tests/aws/models/beanstalk/environments_tests.rb
+++ b/tests/aws/models/beanstalk/environments_tests.rb
@@ -31,4 +31,4 @@ Shindo.tests("Fog::AWS[:beanstalk] | environments", ['aws', 'beanstalk']) do
   # delete application
   @application.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/beanstalk/templates_tests.rb b/tests/aws/models/beanstalk/templates_tests.rb
index ef8f72a..600e329 100644
--- a/tests/aws/models/beanstalk/templates_tests.rb
+++ b/tests/aws/models/beanstalk/templates_tests.rb
@@ -59,4 +59,4 @@ Shindo.tests("Fog::AWS[:beanstalk] | templates", ['aws', 'beanstalk']) do
   # delete application
   @application.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/beanstalk/versions_tests.rb b/tests/aws/models/beanstalk/versions_tests.rb
index f841a51..5845bcd 100644
--- a/tests/aws/models/beanstalk/versions_tests.rb
+++ b/tests/aws/models/beanstalk/versions_tests.rb
@@ -55,7 +55,6 @@ Shindo.tests("Fog::AWS[:beanstalk] | versions", ['aws', 'beanstalk']) do
 
   end
 
-
   # delete application
   @application.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/cdn/invalidation_tests.rb b/tests/aws/models/cdn/invalidation_tests.rb
index 6cad9e6..3bc94a0 100644
--- a/tests/aws/models/cdn/invalidation_tests.rb
+++ b/tests/aws/models/cdn/invalidation_tests.rb
@@ -29,4 +29,3 @@ Shindo.tests("Fog::CDN[:aws] | invalidation", ['aws', 'cdn']) do
   end
 
 end
-
diff --git a/tests/aws/models/cdn/invalidations_tests.rb b/tests/aws/models/cdn/invalidations_tests.rb
index 823811a..dee9ab5 100644
--- a/tests/aws/models/cdn/invalidations_tests.rb
+++ b/tests/aws/models/cdn/invalidations_tests.rb
@@ -12,4 +12,3 @@ Shindo.tests("Fog::CDN[:aws] | invalidations", ['aws', 'cdn']) do
     @distribution.destroy
   end
 end
-
diff --git a/tests/aws/models/cloud_watch/metric_statistics_tests.rb b/tests/aws/models/cloud_watch/metric_statistics_tests.rb
index 48d3111..e84b24c 100644
--- a/tests/aws/models/cloud_watch/metric_statistics_tests.rb
+++ b/tests/aws/models/cloud_watch/metric_statistics_tests.rb
@@ -2,7 +2,7 @@ Shindo.tests("AWS::CloudWatch | metric_statistics", ['aws', 'cloudwatch']) do
 
   tests('success') do
     pending if Fog.mocking?
-    
+
     instanceId = 'i-420c352f'
     metricName = 'DiskReadBytes'
     namespace = 'AWS/EC2'
@@ -10,15 +10,15 @@ Shindo.tests("AWS::CloudWatch | metric_statistics", ['aws', 'cloudwatch']) do
     endTime = Time.now.iso8601
     period = 60
     statisticTypes = ['Minimum','Maximum','Sum','SampleCount','Average']
-    
+
     tests("#all").succeeds do
       @statistics = Fog::AWS[:cloud_watch].metric_statistics.all({'Statistics' => statisticTypes, 'StartTime' => startTime, 'EndTime' => endTime, 'Period' => period, 'MetricName' => metricName, 'Namespace' => namespace, 'Dimensions' => [{'Name' => 'InstanceId', 'Value' => instanceId}]})
     end
-    
+
     tests("#all_not_empty").returns(true) do
       @statistics.length > 0
     end
-    
+
     new_attributes = {
       :namespace => 'Custom/Test',
       :metric_name => 'ModelTest',
@@ -28,11 +28,11 @@ Shindo.tests("AWS::CloudWatch | metric_statistics", ['aws', 'cloudwatch']) do
     tests('#new').returns(new_attributes) do
       Fog::AWS[:cloud_watch].metric_statistics.new(new_attributes).attributes
     end
-    
+
     tests('#create').returns(new_attributes) do
       Fog::AWS[:cloud_watch].metric_statistics.create(new_attributes).attributes
     end
-    
+
     stats_set_attributes = {
       :namespace => 'Custom/Test',
       :metric_name => 'ModelTest',
@@ -48,4 +48,4 @@ Shindo.tests("AWS::CloudWatch | metric_statistics", ['aws', 'cloudwatch']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/cloud_watch/metrics_tests.rb b/tests/aws/models/cloud_watch/metrics_tests.rb
index 59609ee..4fc7b1e 100644
--- a/tests/aws/models/cloud_watch/metrics_tests.rb
+++ b/tests/aws/models/cloud_watch/metrics_tests.rb
@@ -11,13 +11,13 @@ Shindo.tests("AWS::CloudWatch | metrics", ['aws', 'cloudwatch']) do
     tests("#get").returns({:dimensions=>[{"Name"=>"InstanceId", "Value"=>instanceId}], :name=>metricName, :namespace=>namespace}) do
       Fog::AWS[:cloud_watch].metrics.get(namespace, metricName, {'InstanceId' => instanceId}).attributes
     end
-    
+
   end
 
   tests('#each') do
     Fog.mock!
     tests("handle NextToken").returns(1001) do
-      count = 0      
+      count = 0
       Fog::AWS[:cloud_watch].metrics.each {|e| count += 1 }
       count
     end
diff --git a/tests/aws/models/compute/addresses_tests.rb b/tests/aws/models/compute/addresses_tests.rb
index 78a4ff9..c12dbbf 100644
--- a/tests/aws/models/compute/addresses_tests.rb
+++ b/tests/aws/models/compute/addresses_tests.rb
@@ -2,4 +2,4 @@ Shindo.tests("Fog::Compute[:aws] | addresses", ['aws']) do
 
   collection_tests(Fog::Compute[:aws].addresses, {}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/compute/dhcp_option_tests.rb b/tests/aws/models/compute/dhcp_option_tests.rb
index a9a627d..2a649a1 100644
--- a/tests/aws/models/compute/dhcp_option_tests.rb
+++ b/tests/aws/models/compute/dhcp_option_tests.rb
@@ -1,4 +1,3 @@
 Shindo.tests("Fog::Compute[:aws] | dhcp_options", ['aws']) do
   model_tests(Fog::Compute[:aws].dhcp_options, {'dhcp_configuration_set' => {'domain-name' => 'example.com', 'domain-name-servers' => '10.10.10.10'}}, true)
 end
-
diff --git a/tests/aws/models/compute/dhcp_options_tests.rb b/tests/aws/models/compute/dhcp_options_tests.rb
index 3237f32..273309a 100644
--- a/tests/aws/models/compute/dhcp_options_tests.rb
+++ b/tests/aws/models/compute/dhcp_options_tests.rb
@@ -1,4 +1,3 @@
 Shindo.tests("Fog::Compute[:aws] | dhcp_options", ['aws']) do
   collection_tests(Fog::Compute[:aws].dhcp_options, {'dhcp_configuration_set' => {'domain-name' => 'example.com', 'domain-name-servers' => '10.10.10.10'}}, true)
 end
-
diff --git a/tests/aws/models/compute/internet_gateways_tests.rb b/tests/aws/models/compute/internet_gateways_tests.rb
index d2022e9..868c0b6 100644
--- a/tests/aws/models/compute/internet_gateways_tests.rb
+++ b/tests/aws/models/compute/internet_gateways_tests.rb
@@ -1,4 +1,3 @@
 Shindo.tests("Fog::Compute[:aws] | internet_gateways", ['aws']) do
   collection_tests(Fog::Compute[:aws].internet_gateways, {}, true)
 end
-
diff --git a/tests/aws/models/compute/key_pair_tests.rb b/tests/aws/models/compute/key_pair_tests.rb
index 9e4b28e..1a46806 100644
--- a/tests/aws/models/compute/key_pair_tests.rb
+++ b/tests/aws/models/compute/key_pair_tests.rb
@@ -23,5 +23,4 @@ Shindo.tests("Fog::Compute[:aws] | key_pair", ['aws']) do
     end
   end
 
-
 end
diff --git a/tests/aws/models/compute/key_pairs_tests.rb b/tests/aws/models/compute/key_pairs_tests.rb
index 5f43671..3924418 100644
--- a/tests/aws/models/compute/key_pairs_tests.rb
+++ b/tests/aws/models/compute/key_pairs_tests.rb
@@ -2,4 +2,4 @@ Shindo.tests("Fog::Compute[:aws] | key_pairs", ['aws']) do
 
   collection_tests(Fog::Compute[:aws].key_pairs, {:name => 'fogkeyname'}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/compute/network_acl_tests.rb b/tests/aws/models/compute/network_acl_tests.rb
index a90d83a..05d16b8 100644
--- a/tests/aws/models/compute/network_acl_tests.rb
+++ b/tests/aws/models/compute/network_acl_tests.rb
@@ -15,7 +15,7 @@ Shindo.tests("Fog::Compute[:aws] | network_acl", ['aws']) do
     @new_nacl.reload
 
     test("associate_with correctly updates new_nacl") do
-      @new_nacl.associations.collect { |a| a['subnetId'] } == [@subnet.subnet_id]
+      @new_nacl.associations.map { |a| a['subnetId'] } == [@subnet.subnet_id]
     end
 
     @default_nacl.associate_with(@subnet)
@@ -23,11 +23,11 @@ Shindo.tests("Fog::Compute[:aws] | network_acl", ['aws']) do
     @default_nacl.reload
 
     test("associate_with correctly updates new_nacl after removal") do
-      @new_nacl.associations.collect { |a| a['subnetId'] } == []
+      @new_nacl.associations.map { |a| a['subnetId'] } == []
     end
 
     test("associate_with correctly updates default_nacl after removal") do
-      @default_nacl.associations.collect { |a| a['subnetId'] } == [@subnet.subnet_id]
+      @default_nacl.associations.map { |a| a['subnetId'] } == [@subnet.subnet_id]
     end
 
     @new_nacl.destroy
@@ -105,5 +105,5 @@ Shindo.tests("Fog::Compute[:aws] | network_acl", ['aws']) do
   end
 
   @subnet.destroy
-  @vpc.destroy 
+  @vpc.destroy
 end
diff --git a/tests/aws/models/compute/network_acls_tests.rb b/tests/aws/models/compute/network_acls_tests.rb
index ffad2f5..c8fc1bf 100644
--- a/tests/aws/models/compute/network_acls_tests.rb
+++ b/tests/aws/models/compute/network_acls_tests.rb
@@ -2,6 +2,19 @@ Shindo.tests("Fog::Compute[:aws] | network_acls", ['aws']) do
   @vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
 
   collection_tests(Fog::Compute[:aws].network_acls, { :vpc_id => @vpc.id }, true)
-  
+
+  tests('tags') do
+    test_tags = {'foo' => 'bar'}
+    @acl = Fog::Compute[:aws].network_acls.create(:vpc_id => @vpc.id, :tags => test_tags)
+
+    tests('@acl.tags').returns(test_tags) do
+      @acl.reload.tags
+    end
+
+    unless Fog.mocking?
+      Fog::Compute[:aws].tags.all('resource-id' => @acl.identity).each {|tag| tag.destroy}
+    end
+  end
+
   @vpc.destroy
 end
diff --git a/tests/aws/models/compute/network_interfaces_test.rb b/tests/aws/models/compute/network_interfaces_test.rb
index 3aef421..6fdfa59 100644
--- a/tests/aws/models/compute/network_interfaces_test.rb
+++ b/tests/aws/models/compute/network_interfaces_test.rb
@@ -6,7 +6,7 @@ Shindo.tests("Fog::Compute[:aws] | network_interfaces", ['aws']) do
   collection_tests(Fog::Compute[:aws].network_interfaces,
                    {:description => 'nic_desc', :name => 'nic_name', :subnet_id => @subnet_id},
                    true)
-  
+
   @subnet.destroy
   @vpc.destroy
 end
diff --git a/tests/aws/models/compute/security_group_tests.rb b/tests/aws/models/compute/security_group_tests.rb
index 0c19740..9c0c492 100644
--- a/tests/aws/models/compute/security_group_tests.rb
+++ b/tests/aws/models/compute/security_group_tests.rb
@@ -8,6 +8,9 @@ Shindo.tests("Fog::Compute[:aws] | security_group", ['aws']) do
     @other_group = Fog::Compute[:aws].security_groups.create(:name => 'fog other group', :description => 'another fog group')
     @other_group.reload
 
+    @other_user_id = Fog::AWS::Mock.owner_id
+    @other_users_group_id = Fog::AWS::Mock.security_group_id
+
     test("authorize access by another security group") do
       @group.authorize_group_and_owner(@other_group.name)
       @group.reload
@@ -35,7 +38,8 @@ Shindo.tests("Fog::Compute[:aws] | security_group", ['aws']) do
     group_forms = [
       "#{@other_group.owner_id}:#{@other_group.group_id}", # deprecated form
       @other_group.group_id,
-      {@other_group.owner_id => @other_group.group_id}
+      {@other_group.owner_id => @other_group.group_id},
+      {@other_user_id => @other_users_group_id}
     ]
 
     group_forms.each do |group_arg|
diff --git a/tests/aws/models/compute/server_tests.rb b/tests/aws/models/compute/server_tests.rb
index 1da42fc..6ed0189 100644
--- a/tests/aws/models/compute/server_tests.rb
+++ b/tests/aws/models/compute/server_tests.rb
@@ -26,7 +26,7 @@ Shindo.tests("Fog::Compute[:aws] | monitor", ['aws']) do
     test('#associate_public_ip = false') do
       @instance.associate_public_ip = false
       @instance.associate_public_ip == false
-    end    
+    end
 
   end
 
diff --git a/tests/aws/models/compute/snapshots_tests.rb b/tests/aws/models/compute/snapshots_tests.rb
index 819a559..13d52c8 100644
--- a/tests/aws/models/compute/snapshots_tests.rb
+++ b/tests/aws/models/compute/snapshots_tests.rb
@@ -7,4 +7,4 @@ Shindo.tests("Fog::Compute[:aws] | snapshots", ['aws']) do
 
   @volume.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/compute/subnets_tests.rb b/tests/aws/models/compute/subnets_tests.rb
index d7846be..81cee46 100644
--- a/tests/aws/models/compute/subnets_tests.rb
+++ b/tests/aws/models/compute/subnets_tests.rb
@@ -3,4 +3,3 @@ Shindo.tests("Fog::Compute[:aws] | subnets", ['aws']) do
   collection_tests(Fog::Compute[:aws].subnets, { :vpc_id => @vpc.id, :cidr_block => '10.0.10.0/28', :availability_zone => 'us-east-1c'}, true)
   @vpc.destroy
 end
-
diff --git a/tests/aws/models/compute/volumes_tests.rb b/tests/aws/models/compute/volumes_tests.rb
index b6b43f2..d2f2269 100644
--- a/tests/aws/models/compute/volumes_tests.rb
+++ b/tests/aws/models/compute/volumes_tests.rb
@@ -2,4 +2,4 @@ Shindo.tests("Fog::Compute[:aws] | volumes", ['aws']) do
 
   collection_tests(Fog::Compute[:aws].volumes, {:availability_zone => 'us-east-1a', :size => 1, :device => '/dev/sdz1'}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/compute/vpcs_tests.rb b/tests/aws/models/compute/vpcs_tests.rb
index 568a19a..05db09c 100644
--- a/tests/aws/models/compute/vpcs_tests.rb
+++ b/tests/aws/models/compute/vpcs_tests.rb
@@ -2,5 +2,18 @@ Shindo.tests("Fog::Compute[:aws] | vpcs", ['aws']) do
 
   collection_tests(Fog::Compute[:aws].vpcs, {:cidr_block => '10.0.10.0/28'}, true)
 
-end
+  tests('tags') do
+    test_tags = {'foo' => 'bar'}
+    @vpc = Fog::Compute[:aws].vpcs.create(:cidr_block => '1.2.3.4/24', :tags => test_tags)
+
+    tests('@vpc.tags').returns(test_tags) do
+      @vpc.reload.tags
+    end
 
+    unless Fog.mocking?
+      Fog::Compute[:aws].tags.all('resource-id' => @vpc.id).each {|tag| tag.destroy}
+    end
+
+    @vpc.destroy
+  end
+end
diff --git a/tests/aws/models/dns/record_tests.rb b/tests/aws/models/dns/record_tests.rb
index 5b649ad..0c695c6 100644
--- a/tests/aws/models/dns/record_tests.rb
+++ b/tests/aws/models/dns/record_tests.rb
@@ -31,4 +31,3 @@ Shindo.tests("Fog::Dns[:aws] | record", ['aws', 'dns']) do
   end
 
 end
-
diff --git a/tests/aws/models/dns/records_tests.rb b/tests/aws/models/dns/records_tests.rb
index 54239b4..d9e9b73 100644
--- a/tests/aws/models/dns/records_tests.rb
+++ b/tests/aws/models/dns/records_tests.rb
@@ -39,4 +39,3 @@ Shindo.tests("Fog::DNS[:aws] | records", ['aws', 'dns']) do
     @zone.destroy
   end
 end
-
diff --git a/tests/aws/models/elasticache/security_groups_tests.rb b/tests/aws/models/elasticache/security_groups_tests.rb
index c3d22d8..1f46859 100644
--- a/tests/aws/models/elasticache/security_groups_tests.rb
+++ b/tests/aws/models/elasticache/security_groups_tests.rb
@@ -20,7 +20,7 @@ Shindo.tests('AWS::Elasticache | security groups', ['aws', 'elasticache']) do
     tests('#authorize_ec2_group') do
       @instance.authorize_ec2_group(ec2_group.name)
       returns('authorizing') do
-        group = @instance.ec2_groups.detect do |g|
+        group = @instance.ec2_groups.find do |g|
           g['EC2SecurityGroupName'] == ec2_group.name
         end
         group['Status']
@@ -33,7 +33,7 @@ Shindo.tests('AWS::Elasticache | security groups', ['aws', 'elasticache']) do
     tests('#revoke_ec2_group') do
       @instance.revoke_ec2_group(ec2_group.name)
       returns('revoking') do
-        group = @instance.ec2_groups.detect do |g|
+        group = @instance.ec2_groups.find do |g|
           g['EC2SecurityGroupName'] == ec2_group.name
         end
         group['Status']
diff --git a/tests/aws/models/elasticache/subnet_groups_tests.rb b/tests/aws/models/elasticache/subnet_groups_tests.rb
index cc508e5..03d5003 100644
--- a/tests/aws/models/elasticache/subnet_groups_tests.rb
+++ b/tests/aws/models/elasticache/subnet_groups_tests.rb
@@ -41,4 +41,4 @@ Shindo.tests('AWS::Elasticache | subnet group', ['aws', 'elasticache']) do
     Fog::Compute[:aws].delete_subnet(sn['subnetId'])
   end
   @vpc.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/elb/model_tests.rb b/tests/aws/models/elb/model_tests.rb
index 5e3d071..dcedb3c 100644
--- a/tests/aws/models/elb/model_tests.rb
+++ b/tests/aws/models/elb/model_tests.rb
@@ -1,18 +1,17 @@
 Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
   require 'fog'
-  @availability_zones = Fog::Compute[:aws].describe_availability_zones('state' => 'available').body['availabilityZoneInfo'].collect{ |az| az['zoneName'] }
+  Fog::Compute::AWS::Mock.reset if Fog.mocking?
+  @availability_zones = Fog::Compute[:aws].describe_availability_zones('state' => 'available').body['availabilityZoneInfo'].map{ |az| az['zoneName'] }
   @key_name = 'fog-test-model'
-  @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
+  @vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
   @vpc_id = @vpc.id
   @subnet = Fog::Compute[:aws].subnets.create({:vpc_id => @vpc_id, :cidr_block => '10.0.10.0/24'})
   @subnet_id = @subnet.subnet_id
   @scheme = 'internal'
-  @igw=Fog::Compute[:aws].internet_gateways.create
+  @igw = Fog::Compute[:aws].internet_gateways.create
   @igw_id = @igw.id
   @igw.attach(@vpc_id)
 
-
-
   tests('success') do
     tests('load_balancers') do
       tests('getting a missing elb') do
@@ -57,10 +56,8 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
         end
       end
       tests('with vpc') do
-        Fog::Compute[:aws].ec2_compatibility_mode(false)
         elb2 = Fog::AWS[:elb].load_balancers.create(:id => "#{elb_id}-2", :subnet_ids => [@subnet_id])
-        tests("elb source group should be default_elb*").returns(true) { !!(elb2.source_group["GroupName"] =~ /default_elb_*/) }
-        tests("should have a 'default_elb_*' security group").returns(true) { Fog::Compute[:aws].security_groups.all.any? { |sg| sg.name =~ /default_elb/ } }
+        tests("elb source group should be default").returns('default') { elb2.source_group["GroupName"] }
         tests("subnet ids are correct").returns(@subnet_id) { elb2.subnet_ids.first }
         elb2.destroy
       end
@@ -69,6 +66,20 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
         tests("scheme is internal").returns(@scheme) { elb2.scheme }
         elb2.destroy
       end
+      tests('with default vpc') do
+        Fog::Compute[:aws].disable_ec2_classic if Fog.mocking?
+
+        if Fog::Compute[:aws].supported_platforms.include?("EC2")
+          Formatador.display_line("[yellow]Skipping test [bold]with default vpc[/][yellow] due to AWS account having EC2 available[/]")
+        else
+          elb2 = Fog::AWS[:elb].load_balancers.create(:id => "#{elb_id}-2", :availability_zones => @availability_zones[0])
+          tests("elb source group should start with default_elb_").returns(true) { !!(elb2.source_group["GroupName"] =~ /default_elb_/) }
+          elb2.destroy
+        end
+
+        Fog::Compute[:aws].enable_ec2_classic if Fog.mocking?
+      end
+
       if !Fog.mocking?
         @igw.detach(@vpc_id)
         @igw.destroy
@@ -78,10 +89,13 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
      end
 
       tests('with availability zones') do
-        Fog::Compute[:aws].ec2_compatibility_mode(true)
         azs = @availability_zones[1..-1]
         elb2 = Fog::AWS[:elb].load_balancers.create(:id => "#{elb_id}-2", :availability_zones => azs)
-        tests("elb source group should be amazon-elb-sg").returns(true) { elb2.source_group["GroupName"] == 'amazon-elb-sg' }
+        if Fog::Compute[:aws].supported_platforms.include?("EC2")
+          tests("elb source group should be amazon-elb-sg").returns('amazon-elb-sg') { elb2.source_group["GroupName"] }
+        else
+          tests("elb source group should match default_elb_").returns(true) { !!(elb2.source_group["GroupName"] =~ /default_elb_/) }
+        end
         tests("availability zones are correct").returns(azs.sort) { elb2.availability_zones.sort }
         elb2.destroy
       end
@@ -171,7 +185,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
 
     tests('instance_health') do
       returns('OutOfService') do
-        elb.instance_health.detect{|hash| hash['InstanceId'] == server.id}['State']
+        elb.instance_health.find{|hash| hash['InstanceId'] == server.id}['State']
       end
 
       returns([server.id]) { elb.instances_out_of_service }
@@ -193,6 +207,14 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
       returns(@availability_zones) { elb.availability_zones.sort }
     end
 
+    tests('connection_draining') do
+      returns(false) { elb.connection_draining? }
+      returns(300) { elb.connection_draining_timeout }
+      elb.set_connection_draining(true, 60)
+      returns(true) { elb.connection_draining? }
+      returns(60) { elb.connection_draining_timeout }
+    end
+
     tests('cross_zone_load_balancing') do
       returns(false) {elb.cross_zone_load_balancing?}
       elb.cross_zone_load_balancing = true
@@ -330,9 +352,5 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
     end
 
     Fog::AWS[:iam].delete_server_certificate(@key_name)
-
-    @igw.destroy
-    @subnet.destroy
-    @vpc.destroy
   end
 end
diff --git a/tests/aws/models/glacier/model_tests.rb b/tests/aws/models/glacier/model_tests.rb
index 45a2b5c..3fd9d41 100644
--- a/tests/aws/models/glacier/model_tests.rb
+++ b/tests/aws/models/glacier/model_tests.rb
@@ -13,7 +13,7 @@ Shindo.tests('AWS::Glacier | models', ['aws', 'glacier']) do
       end
 
       tests('all') do
-        tests('contains vault').returns(true) { Fog::AWS[:glacier].vaults.collect {|vault| vault.id}.include?(vault.id)}
+        tests('contains vault').returns(true) { Fog::AWS[:glacier].vaults.map {|vault| vault.id}.include?(vault.id)}
       end
 
       tests('destroy') do
@@ -44,4 +44,4 @@ Shindo.tests('AWS::Glacier | models', ['aws', 'glacier']) do
     end
     vault.destroy
   end
-end
\ No newline at end of file
+end
diff --git a/tests/aws/models/iam/access_keys_tests.rb b/tests/aws/models/iam/access_keys_tests.rb
index da77ddd..35fca76 100644
--- a/tests/aws/models/iam/access_keys_tests.rb
+++ b/tests/aws/models/iam/access_keys_tests.rb
@@ -2,16 +2,16 @@ Shindo.tests("Fog::Compute[:iam] | access_keys", ['aws','iam']) do
 
   Fog.mock!
   iam = Fog::AWS[:iam]
-  
+
   @username = 'fake_user'
   @user = iam.users.create(:id => @username)
 
-  
+
   tests('#all', 'there are no access keys for a new user').succeeds do
     @user.access_keys.empty?
   end
-  
-  
+
+
   tests('#create','an access key').succeeds do
     access_key = @user.access_keys.create
     access_key.id =~ /[A-Z0-9]{20}/
@@ -20,13 +20,13 @@ Shindo.tests("Fog::Compute[:iam] | access_keys", ['aws','iam']) do
     access_key.username == @username
     @access_key_id = access_key.id
   end
-  
+
   @user.access_keys.create
-  
+
   tests('#all','there are two access keys').succeeds do
     @user.access_keys.size == 2
   end
-  
+
   tests('#get') do
     tests('a valid access key id').succeeds do
       access_key = @user.access_keys.get(@access_key_id)
@@ -35,19 +35,19 @@ Shindo.tests("Fog::Compute[:iam] | access_keys", ['aws','iam']) do
       access_key.status == "Active"
       access_key.username == @username
     end
-    
+
     tests('an invalid access key').succeeds do
       @user.access_keys.get('non-existing') == nil
     end
   end
-  
+
   tests('#destroy', 'decrease by one the number of access keys').succeeds do
     size = @user.access_keys.size
     @user.access_keys.get(@access_key_id).destroy
     @user.access_keys.size == ( size - 1 )
   end
-  
+
   # clean up
   @user.destroy
-  
-end
\ No newline at end of file
+
+end
diff --git a/tests/aws/models/iam/policies_tests.rb b/tests/aws/models/iam/policies_tests.rb
index e92a25a..a50eeda 100644
--- a/tests/aws/models/iam/policies_tests.rb
+++ b/tests/aws/models/iam/policies_tests.rb
@@ -2,55 +2,55 @@ Shindo.tests("Fog::Compute[:iam] | policies", ['aws','iam']) do
 
   Fog.mock!
   iam = Fog::AWS[:iam]
-  
+
   @username = 'fake_user'
   @user = iam.users.create(:id => @username)
   @policy_document = {"Statement"=>[{"Action"=>["sqs:*"], "Effect"=>"Allow", "Resource"=>"*"}]}
   @policy_name = 'fake-sqs-policy'
-  
+
   tests('#all', 'there is no policies').succeeds do
     @user.policies.empty?
   end
-  
-  tests('#create') do 
+
+  tests('#create') do
     tests('a valid policy').succeeds do
       policy = @user.policies.create(:id => @policy_name, :document => @policy_document)
       policy.id == @policy_name
       policy.username == @username
       policy.document == @policy_document
     end
-    
+
     # The mocking doesn't validate the document policy
     #tests('an invalid valid policy').succeeds do
     #  raises(Fog::AWS::IAM::Error) { @user.policies.create(id: 'non-valid-document', document: 'invalid json blob') }
     #end
   end
-  
+
   @user.policies.create(:id => 'another-policy', :document => {})
-  
+
   tests('#all','there are two policies').succeeds do
     @user.policies.size == 2
   end
-  
+
   tests('#get') do
     tests('a valid policy').succeeds do
       policy = @user.policies.get(@policy_name)
       policy.id == @polic_name
       policy.username == @username
-      policy.document == @policy_document   
+      policy.document == @policy_document
     end
-    
+
     tests('an invalid policy').succeeds do
       @user.policies.get('non-existing') == nil
     end
   end
-  
+
   tests('#destroy').succeeds do
     @user.policies.get(@policy_name).destroy
   end
-  
+
   # clean up
   @user.destroy
 
-  
-end
\ No newline at end of file
+
+end
diff --git a/tests/aws/models/iam/roles_tests.rb b/tests/aws/models/iam/roles_tests.rb
index 338a4ce..40da23e 100644
--- a/tests/aws/models/iam/roles_tests.rb
+++ b/tests/aws/models/iam/roles_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests("Fog::Compute[:iam] | roles", ['aws','iam']) do
 
   pending if Fog.mocking?
-  
+
   @iam = Fog::AWS[:iam]
   @role_one_name = 'fake_role_one'
   @role_two_name = 'fake_role_two'
@@ -18,15 +18,15 @@ Shindo.tests("Fog::Compute[:iam] | roles", ['aws','iam']) do
   tests('#all','there is only one role').succeeds do
     @iam.roles.size == 1
   end
-  
+
   tests('#all','the only role should match').succeeds do
     @iam.roles.first.rolename == @role_one_name
   end
-  
+
   tests('#create','a second role').succeeds do
     @role_two = @iam.roles.create(:rolename => @role_two_name)
     @role_two.rolename == @role_two_name
-  end  
+  end
 
   tests('#all','there are two roles').succeeds do
     @iam.roles.size == 2
@@ -39,7 +39,7 @@ Shindo.tests("Fog::Compute[:iam] | roles", ['aws','iam']) do
   tests('#get',"returns nil if the role doesn't exists").succeeds do
     @iam.roles.get('non-exists') == nil
   end
-  
+
   tests('#create', 'assigns path').succeeds do
     @role_three = @iam.roles.create(:rolename => @role_three_name, :path => @role_three_path)
     @role_three.path == @role_three_path
@@ -53,11 +53,11 @@ Shindo.tests("Fog::Compute[:iam] | roles", ['aws','iam']) do
   tests('#destroy','an existing role').succeeds do
     @iam.roles.get(@role_one_name).destroy
   end
-  
+
   tests('#destroy','clean up remaining roles').succeeds do
     @iam.roles.get(@role_two_name).destroy
     @iam.roles.get(@role_three_name).destroy
     @iam.roles.get(@role_four_name).destroy
   end
-  
-end
\ No newline at end of file
+
+end
diff --git a/tests/aws/models/iam/users_tests.rb b/tests/aws/models/iam/users_tests.rb
index 8c93fc4..ea937c6 100644
--- a/tests/aws/models/iam/users_tests.rb
+++ b/tests/aws/models/iam/users_tests.rb
@@ -17,15 +17,15 @@ Shindo.tests("Fog::Compute[:iam] | users", ['aws','iam']) do
   tests('#all','there is only one user').succeeds do
     @iam.users.size == 1
   end
-  
+
   tests('#all','the only user should match').succeeds do
     @iam.users.first.id == @user_one_name
   end
-  
+
   tests('#create','a second user').succeeds do
     @user_two = @iam.users.create(:id => @user_two_name)
     @user_two.id == @user_two_name
-  end  
+  end
 
   tests('#all','there are two users').succeeds do
     @iam.users.size == 2
@@ -38,15 +38,15 @@ Shindo.tests("Fog::Compute[:iam] | users", ['aws','iam']) do
   tests('#get',"returns nil if the user doesn't exists").succeeds do
     @iam.users.get('non-exists') == nil
   end
-  
+
   tests('#policies','it has no policies').succeeds do
     @iam.users.get(@user_one_name).policies.empty?
   end
-  
+
   tests('#access_keys','it has no keys').succeeds do
     @iam.users.get(@user_one_name).access_keys.empty?
   end
-  
+
   tests('#create', 'assigns path').succeeds do
     @user_three = @iam.users.create(:id => @user_three_name, :path => @user_three_path)
     @user_three.path == @user_three_path
@@ -60,9 +60,9 @@ Shindo.tests("Fog::Compute[:iam] | users", ['aws','iam']) do
   tests('#destroy','an existing user').succeeds do
     @iam.users.get(@user_one_name).destroy
   end
-  
+
   tests('#destroy','clean up remaining user').succeeds do
     @iam.users.get(@user_two_name).destroy
   end
-  
-end
\ No newline at end of file
+
+end
diff --git a/tests/aws/models/rds/parameter_group_tests.rb b/tests/aws/models/rds/parameter_group_tests.rb
index 4ee10d9..2cae851 100644
--- a/tests/aws/models/rds/parameter_group_tests.rb
+++ b/tests/aws/models/rds/parameter_group_tests.rb
@@ -16,7 +16,7 @@ Shindo.tests("AWS::RDS | parameter_group", ['aws', 'rds']) do
       @instance.modify([{:name => 'query_cache_size', :value => '6553600', :apply_method => 'immediate'}])
 
       tests 'parameter has changed' do
-        returns('6553600'){@instance.parameters.detect {|p| p.name == 'query_cache_size'}.value}
+        returns('6553600'){@instance.parameters.find {|p| p.name == 'query_cache_size'}.value}
       end
     end
 
diff --git a/tests/aws/models/rds/security_group_tests.rb b/tests/aws/models/rds/security_group_tests.rb
index 821a5ba..cf42f6b 100644
--- a/tests/aws/models/rds/security_group_tests.rb
+++ b/tests/aws/models/rds/security_group_tests.rb
@@ -11,7 +11,7 @@ Shindo.tests("AWS::RDS | security_group", ['aws', 'rds']) do
 
       @instance.authorize_ec2_security_group(@ec2_sec_group.name)
       returns('authorizing') do
-        @instance.ec2_security_groups.detect{|h| h['EC2SecurityGroupName'] == @ec2_sec_group.name}['Status']
+        @instance.ec2_security_groups.find{|h| h['EC2SecurityGroupName'] == @ec2_sec_group.name}['Status']
       end
     end
 
@@ -23,7 +23,7 @@ Shindo.tests("AWS::RDS | security_group", ['aws', 'rds']) do
       @instance.revoke_ec2_security_group(@ec2_sec_group.name)
 
       returns('revoking') do
-        @instance.ec2_security_groups.detect{|h| h['EC2SecurityGroupName'] == @ec2_sec_group.name}['Status']
+        @instance.ec2_security_groups.find{|h| h['EC2SecurityGroupName'] == @ec2_sec_group.name}['Status']
       end
 
       @instance.wait_for { ready? }
@@ -35,7 +35,7 @@ Shindo.tests("AWS::RDS | security_group", ['aws', 'rds']) do
     tests("#authorize_cidrip").succeeds do
       @cidr = '127.0.0.1/32'
       @instance.authorize_cidrip(@cidr)
-      returns('authorizing') { @instance.ip_ranges.detect{|h| h['CIDRIP'] == @cidr}['Status'] }
+      returns('authorizing') { @instance.ip_ranges.find{|h| h['CIDRIP'] == @cidr}['Status'] }
     end
 
     tests("#revoke_cidrip").succeeds do
@@ -43,7 +43,7 @@ Shindo.tests("AWS::RDS | security_group", ['aws', 'rds']) do
 
       @instance.wait_for { ready? }
       @instance.revoke_cidrip(@cidr)
-      returns('revoking') { @instance.ip_ranges.detect{|h| h['CIDRIP'] == @cidr}['Status'] }
+      returns('revoking') { @instance.ip_ranges.find{|h| h['CIDRIP'] == @cidr}['Status'] }
       @instance.wait_for { ready? }
       returns(false) { @instance.ip_ranges.any?{|h| h['CIDRIP'] == @cidr} }
 
diff --git a/tests/aws/models/rds/snapshot_tests.rb b/tests/aws/models/rds/snapshot_tests.rb
index 262c453..66e1e32 100644
--- a/tests/aws/models/rds/snapshot_tests.rb
+++ b/tests/aws/models/rds/snapshot_tests.rb
@@ -10,4 +10,3 @@ Shindo.tests("AWS::RDS | snapshot", ['aws', 'rds']) do
 
   @server.destroy
 end
-
diff --git a/tests/aws/models/rds/snapshots_tests.rb b/tests/aws/models/rds/snapshots_tests.rb
index 10ac42f..0e69ec7 100644
--- a/tests/aws/models/rds/snapshots_tests.rb
+++ b/tests/aws/models/rds/snapshots_tests.rb
@@ -10,4 +10,3 @@ Shindo.tests("AWS::RDS | snapshots", ['aws', 'rds']) do
 
   @server.destroy
 end
-
diff --git a/tests/aws/models/storage/file_tests.rb b/tests/aws/models/storage/file_tests.rb
index 94623b5..4e73c81 100644
--- a/tests/aws/models/storage/file_tests.rb
+++ b/tests/aws/models/storage/file_tests.rb
@@ -34,7 +34,6 @@ Shindo.tests("Storage[:aws] | file", ["aws"]) do
       end
     end
 
-
     @directory.files.create(:key => @instance.key)
     @instance.destroy
 
@@ -75,6 +74,16 @@ Shindo.tests("Storage[:aws] | file", ["aws"]) do
 
     end
 
+    acl = Fog::Storage[:aws].get_object_acl(@directory.key, @instance.key).body["AccessControlList"]
+
+    tests("#acl").returns(acl) do
+      @instance.acl
+    end
+
+    tests("#public?").returns(acl.any? {|grant| grant['Grantee']['URI'] == 'http://acs.amazonaws.com/groups/global/AllUsers' && grant['Permission'] == 'READ'}) do
+      @instance.public?
+    end
+
   end
 
   @directory.versions.each(&:destroy)
diff --git a/tests/aws/models/storage/url_tests.rb b/tests/aws/models/storage/url_tests.rb
index 8f4a1fc..9345b75 100644
--- a/tests/aws/models/storage/url_tests.rb
+++ b/tests/aws/models/storage/url_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests('AWS | url', ["aws"]) do
     :aws_secret_access_key => 'abc',
     :region => 'us-east-1'
   )
-  
+
   @file = @storage.directories.new(:key => 'fognonbucket').files.new(:key => 'test.txt')
 
   if Fog.mock?
diff --git a/tests/aws/models/storage/version_tests.rb b/tests/aws/models/storage/version_tests.rb
index bfe3c1a..cf21aba 100644
--- a/tests/aws/models/storage/version_tests.rb
+++ b/tests/aws/models/storage/version_tests.rb
@@ -40,7 +40,7 @@ Shindo.tests("Storage[:aws] | version", ["aws"]) do
       tests("#destroy removes the specific version").returns(false) do
         @version_instance.destroy
 
-        @instance.versions.all.collect(&:version).include?(@version_instance.version)
+        @instance.versions.all.map(&:version).include?(@version_instance.version)
       end
     end
 
diff --git a/tests/aws/models/storage/versions_tests.rb b/tests/aws/models/storage/versions_tests.rb
index ec1c0f8..fa02fb3 100644
--- a/tests/aws/models/storage/versions_tests.rb
+++ b/tests/aws/models/storage/versions_tests.rb
@@ -32,21 +32,21 @@ Shindo.tests("Storage[:aws] | versions", ["aws"]) do
       end
 
       tests('#versions returns the correct versions').returns(versions) do
-        @instance.versions.all.collect(&:version)
+        @instance.versions.all.map(&:version)
       end
     end
 
     tests("#all") do
       tests("#all for a directory returns all versions, regardless of key").returns(versions) do
-        @instance.versions.all.collect(&:version)
+        @instance.versions.all.map(&:version)
       end
 
       tests("#all for file returns only versions for that file").returns(1) do
-        @instance.files.get('two').versions.all.collect(&:version).size
+        @instance.files.get('two').versions.all.map(&:version).size
       end
 
       tests("#all for file returns only versions for that file").returns(versions.last) do
-        @instance.files.get('two').versions.all.collect(&:version).first
+        @instance.files.get('two').versions.all.map(&:version).first
       end
     end
 
diff --git a/tests/aws/requests/auto_scaling/helper.rb b/tests/aws/requests/auto_scaling/helper.rb
index 1487003..570dbd7 100644
--- a/tests/aws/requests/auto_scaling/helper.rb
+++ b/tests/aws/requests/auto_scaling/helper.rb
@@ -1,7 +1,6 @@
 class AWS
   module AutoScaling
     module Formats
-
       BASIC = {
         'ResponseMetadata' => {'RequestId' => String}
       }
@@ -224,7 +223,6 @@ class AWS
           'Activity' => [ACTIVITY]
         }
       })
-
     end
   end
 end
diff --git a/tests/aws/requests/auto_scaling/tag_tests.rb b/tests/aws/requests/auto_scaling/tag_tests.rb
index 30e205c..f445065 100644
--- a/tests/aws/requests/auto_scaling/tag_tests.rb
+++ b/tests/aws/requests/auto_scaling/tag_tests.rb
@@ -40,7 +40,7 @@ Shindo.tests('AWS::AutoScaling | tag requests', ['aws', 'auto_scaling']) do
     tests("#describe_auto_scaling_groups(#{asg_name}").formats(AWS::AutoScaling::Formats::DESCRIBE_AUTO_SCALING_GROUPS) do
       body = Fog::AWS[:auto_scaling].describe_auto_scaling_groups('AutoScalingGroupNames' => asg_name).body
       auto_scaling_group = body['DescribeAutoScalingGroupsResult']['AutoScalingGroups'].first
-      returns(true) { auto_scaling_group.has_key?('Tags') }
+      returns(true) { auto_scaling_group.key?('Tags') }
       returns(true) { auto_scaling_group['Tags'].size == 1 }
       returns(true) { auto_scaling_group['Tags'].first == asg_tag }
       body
diff --git a/tests/aws/requests/cloud_watch/get_metric_statistics_tests.rb b/tests/aws/requests/cloud_watch/get_metric_statistics_tests.rb
index 64b396d..8379578 100644
--- a/tests/aws/requests/cloud_watch/get_metric_statistics_tests.rb
+++ b/tests/aws/requests/cloud_watch/get_metric_statistics_tests.rb
@@ -12,7 +12,7 @@ Shindo.tests('AWS::CloudWatch | metric requests', ['aws', 'cloudwatch']) do
           'Average' => Float,
           'Sum' => Float,
           'SampleCount' => Float
-        }],    
+        }],
       },
       'ResponseMetadata' => {
         'RequestId' => String
diff --git a/tests/aws/requests/cloud_watch/put_metric_data_tests.rb b/tests/aws/requests/cloud_watch/put_metric_data_tests.rb
index 9165e98..ed0381a 100644
--- a/tests/aws/requests/cloud_watch/put_metric_data_tests.rb
+++ b/tests/aws/requests/cloud_watch/put_metric_data_tests.rb
@@ -22,7 +22,7 @@ Shindo.tests('AWS::CloudWatch | metric requests', ['aws', 'cloudwatch']) do
 
     tests('#puts more than one').succeeds do
       pending if Fog.mocking?
-      datapoints = (0...3).collect do |i|
+      datapoints = (0...3).map do |i|
         dp = {'MetricName' => "#{i}RequestTest", 'Unit' => 'None', 'Value' => i}
         if i%2==0
           dp['Dimensions'] = [{'Name' => 'Ruler', 'Value' => "measurement_#{i}"}]
diff --git a/tests/aws/requests/compute/assign_private_ip_tests.rb b/tests/aws/requests/compute/assign_private_ip_tests.rb
index 3af9507..0ad005e 100644
--- a/tests/aws/requests/compute/assign_private_ip_tests.rb
+++ b/tests/aws/requests/compute/assign_private_ip_tests.rb
@@ -1,6 +1,7 @@
 Shindo.tests('Fog::Compute[:aws] | internet_gateway requests', ['aws']) do
 
   tests('success') do
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
 
     @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
     @vpc_id = @vpc.id
@@ -29,6 +30,8 @@ Shindo.tests('Fog::Compute[:aws] | internet_gateway requests', ['aws']) do
   end
 
   tests('failure') do
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
+
     @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
     @vpc_id = @vpc.id
 
@@ -49,4 +52,4 @@ Shindo.tests('Fog::Compute[:aws] | internet_gateway requests', ['aws']) do
     @subnet.destroy
     @vpc.destroy
   end
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/compute/client_tests.rb b/tests/aws/requests/compute/client_tests.rb
index 919cf27..6ef2bb2 100644
--- a/tests/aws/requests/compute/client_tests.rb
+++ b/tests/aws/requests/compute/client_tests.rb
@@ -3,20 +3,20 @@ Shindo.tests('Fog::Compute[:aws] | account tests', ['aws']) do
     tests('check for vpc') do
       tests('supports both vpc and ec2 in compatibility mode').succeeds do
         client = Fog::Compute[:aws]
-        client.ec2_compatibility_mode(true)
+        client.enable_ec2_classic
         data = Fog::Compute[:aws].describe_account_attributes.body
         data['accountAttributeSet'].any? { |s| [*s["values"]].include?("VPC") && [*s["values"]].include?("EC2") }
       end
       tests('supports VPC in vpc mode').succeeds do
         client = Fog::Compute[:aws]
-        client.ec2_compatibility_mode(true)
+        client.enable_ec2_classic
         data = Fog::Compute[:aws].describe_account_attributes.body
         data['accountAttributeSet'].any? { |s| [*s["values"]].include?("VPC") }
       end
 
       tests('does not support VPC and EC2 in vpc mode').succeeds do
         client = Fog::Compute[:aws]
-        client.ec2_compatibility_mode(false)
+        client.disable_ec2_classic
         data = Fog::Compute[:aws].describe_account_attributes.body
         !data['accountAttributeSet'].any? { |s| [*s["values"]].include?("VPC") && [*s["values"]].include?("EC2") }
       end
diff --git a/tests/aws/requests/compute/dhcp_options_tests.rb b/tests/aws/requests/compute/dhcp_options_tests.rb
index c1ff8c6..f222e25 100644
--- a/tests/aws/requests/compute/dhcp_options_tests.rb
+++ b/tests/aws/requests/compute/dhcp_options_tests.rb
@@ -13,7 +13,6 @@ Shindo.tests('Fog::Compute[:aws] | dhcp_options requests', ['aws']) do
     @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
     @vpc_id = @vpc.id
 
-
     tests('#create_dhcp_options').formats(@dhcp_options_format) do
       data = Fog::Compute[:aws].create_dhcp_options({'domain-name' => 'example.com', 'domain-name-servers' => '10.10.10.10'}).body
       @dopt_id = data['dhcpOptionsSet'].first['dhcpOptionsId']
diff --git a/tests/aws/requests/compute/helper.rb b/tests/aws/requests/compute/helper.rb
index 1f072ef..a6f49fa 100644
--- a/tests/aws/requests/compute/helper.rb
+++ b/tests/aws/requests/compute/helper.rb
@@ -1,16 +1,10 @@
 class AWS
-
   module Compute
-
     module Formats
-
       BASIC = {
         'requestId' => String,
         'return'    => ::Fog::Boolean
       }
-
     end
-
   end
-
 end
diff --git a/tests/aws/requests/compute/image_tests.rb b/tests/aws/requests/compute/image_tests.rb
index 6630f73..2ba422c 100644
--- a/tests/aws/requests/compute/image_tests.rb
+++ b/tests/aws/requests/compute/image_tests.rb
@@ -39,7 +39,7 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
     'requestId'             => String,
     'imageId'               => String
   }
-  
+
   @image_copy_result = {
     'requestId'   => String,
     'imageId'  => String
@@ -73,7 +73,7 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
       Fog::Compute[:aws].images.get(create_image_response.body['imageId']) != nil
       end
       @server.destroy
-      
+
       tests("#copy_image (#{@image_id}, 'eu-west-1')").formats(@image_copy_result) do
         data = Fog::Compute.new(:provider => :aws, :region => "us-west-1", :version => "2013-02-01").copy_image(@image_id, "eu-east-1").body
         @eu_image_id = data['imageId']
@@ -133,7 +133,7 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
         Fog::Compute[:aws].describe_images('Owner' => @other_image['imageOwnerAlias'], 'image-id' => @image_id).body
       end
     end
-    
+
     #NOTE: waiting for the image to complete can sometimes take up to 1 hour
     # for quicker tests: uncomment the rest of this block
     #Fog.wait_for { Fog::Compute.new(:provider => :aws, :region => "us-west-1").snapshots.get(@eu_image_id) }
@@ -141,7 +141,7 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
     #tests("#delete_snapshots(#{@eu_image_id})").formats(AWS::Compute::Formats::BASIC) do
     #  Fog::Compute.new(:provider => :aws, :region => "us-west-1").delete_snapshot(@eu_image_id).body
     #end
-    
+
   end
 
   tests('failure') do
diff --git a/tests/aws/requests/compute/instance_tests.rb b/tests/aws/requests/compute/instance_tests.rb
index 3e2f61b..0302776 100644
--- a/tests/aws/requests/compute/instance_tests.rb
+++ b/tests/aws/requests/compute/instance_tests.rb
@@ -28,6 +28,7 @@ Shindo.tests('Fog::Compute[:aws] | instance requests', ['aws']) do
     'privateDnsName'      => NilClass,
     'productCodes'        => Array,
     'reason'              => Fog::Nullable::String,
+    'rootDeviceName'      => Fog::Nullable::String,
     'rootDeviceType'      => String,
     'sourceDestCheck'     => Fog::Nullable::Boolean,
     'subnetId'            => Fog::Nullable::String,
@@ -80,7 +81,6 @@ Shindo.tests('Fog::Compute[:aws] | instance requests', ['aws']) do
     'timestamp'    => Time
   }
 
-
   @terminate_instances_format = {
     'instancesSet'  => [{
       'currentState' => {'code' => Integer, 'name' => String},
@@ -176,7 +176,7 @@ Shindo.tests('Fog::Compute[:aws] | instance requests', ['aws']) do
     key = Fog::Compute[:aws].key_pairs.create(:name => key_name)
 
     tests("#run_instances").formats(@run_instances_format) do
-      data = Fog::Compute[:aws].run_instances(@ami, 1, 1, 'InstanceType' => 't1.micro', 'KeyName' => key_name).body
+      data = Fog::Compute[:aws].run_instances(@ami, 1, 1, 'InstanceType' => 't1.micro', 'KeyName' => key_name, 'BlockDeviceMapping' => [{"DeviceName" => "/dev/sdp1", "VirtualName" => nil, "Ebs.VolumeSize" => 15}]).body
       @instance_id = data['instancesSet'].first['instanceId']
       data
     end
@@ -204,11 +204,15 @@ Shindo.tests('Fog::Compute[:aws] | instance requests', ['aws']) do
 
     # Test network interface attachment
     tests('#describe_instances networkInterfaces') do
-      data = Fog::Compute[:aws].create_network_interface('subnet-12345678').body
+      vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/16')
+      subnet = Fog::Compute[:aws].subnets.create('vpc_id' => vpc.id, 'cidr_block' => '10.0.10.0/16')
+      data = Fog::Compute[:aws].create_network_interface(subnet.subnet_id).body
       @network_interface_id = data['networkInterface']['networkInterfaceId']
-      Fog::Compute[:aws].attach_network_interface(@network_interface_id, @instance_id, 1)
+      Fog::Compute[:aws].attach_network_interface(@network_interface_id, @instance_id, '1')
       body = Fog::Compute[:aws].describe_instances('instance-id' => "#{@instance_id}").body
       tests("returns 1 attachment").returns(1) { body['reservationSet'].first['instancesSet'].first['networkInterfaces'].size }
+      subnet.destroy
+      vpc.destroy
     end
 
     another_server.destroy
@@ -269,6 +273,9 @@ Shindo.tests('Fog::Compute[:aws] | instance requests', ['aws']) do
 
   tests('failure') do
 
+    tests("#run_instances(nil, 1, 1, {'SubnetId'=>'subnet-00000000'}").raises(::Fog::Compute::AWS::Error) do
+      Fog::Compute[:aws].run_instances(nil, 1, 1, {'SubnetId' => 'subnet-000000'})
+    end
     tests("#get_console_output('i-00000000')").raises(Fog::Compute::AWS::NotFound) do
       Fog::Compute[:aws].get_console_output('i-00000000')
     end
diff --git a/tests/aws/requests/compute/internet_gateway_tests.rb b/tests/aws/requests/compute/internet_gateway_tests.rb
index 92d5ce8..be1c93e 100644
--- a/tests/aws/requests/compute/internet_gateway_tests.rb
+++ b/tests/aws/requests/compute/internet_gateway_tests.rb
@@ -10,13 +10,13 @@ Shindo.tests('Fog::Compute[:aws] | internet_gateway requests', ['aws']) do
   }
 
   tests('success') do
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
     @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
     @vpc_id = @vpc.id
     @subnet=Fog::Compute[:aws].subnets.create('vpc_id' => @vpc_id, 'cidr_block' => '10.0.10.0/24')
     @subnet_id = @subnet.subnet_id
     @igw_id = nil
 
-
     tests('#create_internet_gateway').formats(@internet_gateways_format) do
       data = Fog::Compute[:aws].create_internet_gateway().body
       @igw_id = data['internetGatewaySet'].first['internetGatewayId']
@@ -26,7 +26,7 @@ Shindo.tests('Fog::Compute[:aws] | internet_gateway requests', ['aws']) do
     tests('#describe_internet_gateways').formats(@internet_gateways_format) do
       Fog::Compute[:aws].describe_internet_gateways.body
     end
-    
+
     tests('#describe_internet_gateways with tags').formats(@internet_gateways_format) do
       Fog::Compute[:aws].create_tags @igw_id, {"environment" => "production"}
       Fog::Compute[:aws].describe_internet_gateways.body
diff --git a/tests/aws/requests/compute/network_acl_tests.rb b/tests/aws/requests/compute/network_acl_tests.rb
index 59fedcf..3004cf8 100644
--- a/tests/aws/requests/compute/network_acl_tests.rb
+++ b/tests/aws/requests/compute/network_acl_tests.rb
@@ -34,6 +34,8 @@ Shindo.tests('Fog::Compute[:aws] | network acl requests', ['aws']) do
   }
 
   tests('success') do
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
+
     @vpc         = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
     @subnet      = Fog::Compute[:aws].subnets.create('vpc_id' => @vpc.id, 'cidr_block' => '10.0.10.16/28')
     @network_acl = nil
@@ -75,12 +77,36 @@ Shindo.tests('Fog::Compute[:aws] | network acl requests', ['aws']) do
       Fog::Compute[:aws].replace_network_acl_association(@assoc_id, default_acl['networkAclId']).body
     end
 
+    # Create another network acl to test tag filters
+    test_tags = {'foo' => 'bar'}
+    @another_acl = Fog::Compute[:aws].network_acls.create :vpc_id => @vpc.id, :tags => test_tags
+    tests("#describe_network_acls('tag-key' => 'foo')").formats(@network_acls_format) do
+      body = Fog::Compute[:aws].describe_network_acls('tag-key' => 'foo').body
+      tests("returns 1 acl").returns(1) { body['networkAclSet'].size }
+      body
+    end
+
+    tests("#describe_network_acls('tag-value' => 'bar')").formats(@network_acls_format) do
+      body = Fog::Compute[:aws].describe_network_acls('tag-value' => 'bar').body
+      tests("returns 1 acl").returns(1) { body['networkAclSet'].size }
+      body
+    end
+
+    tests("#describe_network_acls('tag:foo' => 'bar')").formats(@network_acls_format) do
+      body = Fog::Compute[:aws].describe_network_acls('tag:foo' => 'bar').body
+      tests("returns 1 acl").returns(1) { body['networkAclSet'].size }
+      body
+    end
+
     tests('#delete_network_acl').formats(AWS::Compute::Formats::BASIC) do
       Fog::Compute[:aws].delete_network_acl(@network_acl['networkAclId']).body
     end
 
     # Clean up
+    Fog::Compute[:aws].delete_tags(@another_acl.identity, test_tags)
+    @another_acl.destroy
     @subnet.destroy
     @vpc.destroy
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
   end
 end
diff --git a/tests/aws/requests/compute/network_interface_tests.rb b/tests/aws/requests/compute/network_interface_tests.rb
index f08d7d6..db3d927 100644
--- a/tests/aws/requests/compute/network_interface_tests.rb
+++ b/tests/aws/requests/compute/network_interface_tests.rb
@@ -36,6 +36,8 @@ Shindo.tests('Fog::Compute[:aws] | network interface requests', ['aws']) do
   }
 
   tests('success') do
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
+
     # Create environment
     @vpc            = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
     @subnet         = Fog::Compute[:aws].subnets.create('vpc_id' => @vpc.id, 'cidr_block' => '10.0.10.16/28')
@@ -120,11 +122,12 @@ Shindo.tests('Fog::Compute[:aws] | network interface requests', ['aws']) do
 
     @server = Fog::Compute[:aws].servers.create({:flavor_id => 'm1.small', :subnet_id => @subnet_id })
     @server.wait_for { ready? }
-	@instance_id=@server.id
+    @instance_id=@server.id
 
-      # attach
+    # attach
+    @device_index = 1
     tests('#attach_network_interface').formats(@attach_network_interface_format) do
-      data = Fog::Compute[:aws].attach_network_interface(@nic_id, @instance_id, 1).body
+      data = Fog::Compute[:aws].attach_network_interface(@nic_id, @instance_id, @device_index).body
       @attachment_id = data['attachmentId']
       data
     end
@@ -201,4 +204,47 @@ Shindo.tests('Fog::Compute[:aws] | network interface requests', ['aws']) do
     @subnet.destroy
     @vpc.destroy
   end
+
+  tests('failure') do
+
+    # Attempt to attach a nonexistent interface
+    tests("#attach_network_interface('eni-00000000', 'i-00000000', '1')").raises(::Fog::Compute::AWS::NotFound) do
+      Fog::Compute[:aws].attach_network_interface('eni-00000000', 'i-00000000', '1')
+    end
+
+    # Create environment
+    @vpc            = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
+    @subnet         = Fog::Compute[:aws].subnets.create('vpc_id' => @vpc.id, 'cidr_block' => '10.0.10.16/28')
+
+    @subnet_id      = @subnet.subnet_id
+
+    data = Fog::Compute[:aws].create_network_interface(@subnet_id).body
+    @nic_id = data['networkInterface']['networkInterfaceId']
+
+    # Attempt to re-use an existing IP for another ENI
+    tests("#create_network_interface('#{@subnet_id}', " \
+      "{'PrivateIpAddress' => " \
+      "'#{data['networkInterface']['privateIpAddress']}'}").raises(::Fog::Compute::AWS::Error) do
+      Fog::Compute[:aws].create_network_interface(@subnet_id, {'PrivateIpAddress' => data['networkInterface']['privateIpAddress']})
+    end
+
+    # Attempt to attach a valid ENI to a nonexistent instance.
+    tests("#attach_network_interface('#{@nic_id}', 'i-00000000', '0')").raises(::Fog::Compute::AWS::NotFound) do
+      Fog::Compute[:aws].attach_network_interface(@nic_id, 'i-00000000', '0')
+    end
+
+    @server = Fog::Compute[:aws].servers.create({:flavor_id => 'm1.small', :subnet_id => @subnet_id })
+    @server.wait_for { ready? }
+    @instance_id=@server.id
+    @device_index = 1
+    data = Fog::Compute[:aws].attach_network_interface(@nic_id, @instance_id, @device_index).body
+
+    # Attempt to attach two ENIs to the same instance with the same device
+    # index.
+    tests("#attach_network_interface('#{@nic_id}', '#{@instance_id}', '#{@device_index}')").raises(::Fog::Compute::AWS::Error) do
+      Fog::Compute[:aws].attach_network_interface(@nic_id, @instance_id, @device_index)
+    end
+
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
+  end
 end
diff --git a/tests/aws/requests/compute/region_tests.rb b/tests/aws/requests/compute/region_tests.rb
index 06813a1..4a89ca2 100644
--- a/tests/aws/requests/compute/region_tests.rb
+++ b/tests/aws/requests/compute/region_tests.rb
@@ -21,12 +21,30 @@ Shindo.tests('Fog::Compute[:aws] | region requests', ['aws']) do
     tests("#incorrect_region") do
 
       raises(ArgumentError, "Unknown region: world-antarctica-1") do
-        Fog::Compute::AWS.new({:aws_access_key_id => 'dummykey', 
-                :aws_secret_access_key => 'dummysecret', 
+        Fog::Compute::AWS.new({:aws_access_key_id => 'dummykey',
+                :aws_secret_access_key => 'dummysecret',
                 :aws_session_token => 'dummytoken',
-                :region => "world-antarctica-1"})
+                :region => 'world-antarctica-1'})
+      end
+
+    end
+
+    tests("#unknown_endpoint").formats(@regions_format) do
+      Fog::Compute::AWS.new({:aws_access_key_id => 'dummykey',
+                             :aws_secret_access_key => 'dummysecret',
+                             :aws_session_token => 'dummytoken',
+                             :region => 'world-antarctica-1',
+                             :endpoint => 'http://aws-clone.example'}).describe_regions.body
+    end
+
+    tests("#invalid_endpoint") do
+      raises(Fog::Compute::AWS::InvalidURIError) do
+        Fog::Compute::AWS.new({:aws_access_key_id => 'dummykey',
+                             :aws_secret_access_key => 'dummysecret',
+                             :aws_session_token => 'dummytoken',
+                             :region => 'world-antarctica-1',
+                             :endpoint => 'aws-clone.example'})
       end
-      
     end
 
   end
diff --git a/tests/aws/requests/compute/route_tests.rb b/tests/aws/requests/compute/route_tests.rb
index e1e3a41..d6d775f 100644
--- a/tests/aws/requests/compute/route_tests.rb
+++ b/tests/aws/requests/compute/route_tests.rb
@@ -39,6 +39,7 @@ Shindo.tests('Fog::Compute[:aws] | route table requests', ['aws']) do
     'requestId'    => String
   }
 
+  Fog::Compute::AWS::Mock.reset if Fog.mocking?
   vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
   if !Fog.mocking?
     vpc.wait_for { state.eql? "available" }
diff --git a/tests/aws/requests/compute/security_group_tests.rb b/tests/aws/requests/compute/security_group_tests.rb
index ceea99e..fe024c9 100644
--- a/tests/aws/requests/compute/security_group_tests.rb
+++ b/tests/aws/requests/compute/security_group_tests.rb
@@ -1,4 +1,7 @@
 Shindo.tests('Fog::Compute[:aws] | security group requests', ['aws']) do
+  # See https://github.com/fog/fog/issues/2932hj0
+  pending
+
   @create_security_group_format = {
     'requestId' => String,
     'groupId'   => String,
diff --git a/tests/aws/requests/compute/snapshot_tests.rb b/tests/aws/requests/compute/snapshot_tests.rb
index 601afa6..0a904e1 100644
--- a/tests/aws/requests/compute/snapshot_tests.rb
+++ b/tests/aws/requests/compute/snapshot_tests.rb
@@ -2,6 +2,7 @@ Shindo.tests('Fog::Compute[:aws] | snapshot requests', ['aws']) do
 
   @snapshot_format = {
     'description' => Fog::Nullable::String,
+    'encrypted'   => Fog::Boolean,
     'ownerId'     => String,
     'progress'    => String,
     'snapshotId'  => String,
diff --git a/tests/aws/requests/compute/subnet_tests.rb b/tests/aws/requests/compute/subnet_tests.rb
index de9b0a5..201658e 100644
--- a/tests/aws/requests/compute/subnet_tests.rb
+++ b/tests/aws/requests/compute/subnet_tests.rb
@@ -20,17 +20,41 @@ Shindo.tests('Fog::Compute[:aws] | subnet requests', ['aws']) do
     'requestId' => String
   }
 
+  @modify_subnet_format = {
+    'requestId' => String,
+    'return' => Fog::Boolean
+  }
+  
+  @vpc_network = '10.0.10.0/24'
+  @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => @vpc_network)
+  @vpc_id = @vpc.id
+
   tests('success') do
-    @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
-    @vpc_id = @vpc.id
     @subnet_id = nil
+    @subnet_network = '10.0.10.16/28'
 
-    tests('#create_subnet').formats(@single_subnet_format) do
-      data = Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.16/28').body
+    tests("#create_subnet('#{@vpc_id}', '#{@subnet_network}')").formats(@single_subnet_format) do
+      data = Fog::Compute[:aws].create_subnet(@vpc_id, @subnet_network).body
       @subnet_id = data['subnet']['subnetId']
       data
     end
 
+    tests("modify_subnet('#{@subnet_id}'").formats(@modify_subnet_format) do
+      Fog::Compute[:aws].modify_subnet_attribute(@subnet_id, 'MapPublicIpOnLaunch' => true).body
+    end
+
+    @vpc2=Fog::Compute[:aws].vpcs.create('cidr_block' => @vpc_network)
+    @vpc2_id = @vpc2.id
+
+    # Create a second subnet in a second VPC with the same netblock
+    tests("#create_subnet('#{@vpc2_id}', '#{@subnet_network}')").formats(@single_subnet_format) do
+      data = Fog::Compute[:aws].create_subnet(@vpc2_id, @subnet_network).body
+      @subnet2_id = data['subnet']['subnetId']
+      data
+    end
+
+    Fog::Compute[:aws].delete_subnet(@subnet2_id)
+
     tests('#describe_subnets').formats(@subnets_format) do
       Fog::Compute[:aws].describe_subnets.body
     end
@@ -38,6 +62,24 @@ Shindo.tests('Fog::Compute[:aws] | subnet requests', ['aws']) do
     tests("#delete_subnet('#{@subnet_id}')").formats(AWS::Compute::Formats::BASIC) do
       Fog::Compute[:aws].delete_subnet(@subnet_id).body
     end
-    @vpc.destroy
   end
+
+  tests('failure') do
+    tests("#create_subnet('vpc-00000000', '10.0.10.0/16')").raises(Fog::Compute::AWS::NotFound) do
+      Fog::Compute[:aws].create_subnet('vpc-00000000', '10.0.10.0/16')
+    end
+
+    tests("#create_subnet('#{@vpc_id}', '10.0.9.16/28')").raises(Fog::Compute::AWS::Error) do
+      Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.9.16/28')
+    end
+
+    # Attempt to create two subnets with conflicting CIDRs in the same VPC
+    tests("#create_subnet('#{@vpc_id}', '10.0.10.0/24'); " \
+      "#create_subnet('#{@vpc_id}', '10.0.10.64/26'); ").raises(::Fog::Compute::AWS::Error) do
+      Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.0/24')
+      Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.64/26')
+    end
+  end
+
+  @vpc.destroy
 end
diff --git a/tests/aws/requests/compute/tag_tests.rb b/tests/aws/requests/compute/tag_tests.rb
index 8708a93..78a6bb8 100644
--- a/tests/aws/requests/compute/tag_tests.rb
+++ b/tests/aws/requests/compute/tag_tests.rb
@@ -11,6 +11,8 @@ Shindo.tests('Fog::Compute[:aws] | tag requests', ['aws']) do
 
   @volume = Fog::Compute[:aws].volumes.create(:availability_zone => 'us-east-1a', :size => 1)
   @volume.wait_for { ready? }
+  @vpc    = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
+  @network_acl = Fog::Compute[:aws].network_acls.all('vpc-id' => @vpc.id, 'default' => true).first
 
   tests('success') do
     if Fog.mocking?
@@ -26,6 +28,14 @@ Shindo.tests('Fog::Compute[:aws] | tag requests', ['aws']) do
       tests("#create_tags('#{@image_id}', 'foo' => 'baz')").formats(AWS::Compute::Formats::BASIC) do
         Fog::Compute[:aws].create_tags(@image_id, 'foo' => 'baz').body
       end
+
+      tests("#create_tags('#{@vpc.id}', 'type' => 'vpc')").formats(AWS::Compute::Formats::BASIC) do
+        Fog::Compute[:aws].create_tags(@vpc.id, 'type' => 'vpc').body
+      end
+
+      tests("#create_tags('#{@network_acl.network_acl_id}', 'type' => 'network_acl')").formats(AWS::Compute::Formats::BASIC) do
+        Fog::Compute[:aws].create_tags(@network_acl.network_acl_id, 'type' => 'network_acl').body
+      end
     end
 
     tests('#describe_tags').formats(@tags_format) do
@@ -73,6 +83,17 @@ Shindo.tests('Fog::Compute[:aws] | tag requests', ['aws']) do
       Fog::Compute[:aws].create_tags('vol-00000000', 'baz' => 'qux')
     end
 
+    tests("#create_tags('abc-12345678', 'type' => 'fake_type')").raises(Fog::Service::NotFound) do
+      Fog::Compute[:aws].create_tags('abc-12345678', 'type' => 'fake_type')
+    end
+
+    tests("#create_tags('vpc-12345678', 'type' => 'non-existent_vpc)").raises(Fog::Service::NotFound) do
+      Fog::Compute[:aws].create_tags('vpc-12345678', 'type' => 'non-existent_vpc')
+    end
+
+    tests("#create_tags('vpc-123', 'type' => 'bad_resource_id)").raises(Fog::Service::NotFound) do
+      Fog::Compute[:aws].create_tags('vpc-123', 'type' => 'bad_resource_id')
+    end
   end
   Fog::Compute::AWS::Mock.reset if Fog.mocking?
 end
diff --git a/tests/aws/requests/compute/volume_tests.rb b/tests/aws/requests/compute/volume_tests.rb
index f050d4a..8d3824f 100644
--- a/tests/aws/requests/compute/volume_tests.rb
+++ b/tests/aws/requests/compute/volume_tests.rb
@@ -3,6 +3,7 @@ Shindo.tests('Fog::Compute[:aws] | volume requests', ['aws']) do
   @volume_format = {
     'availabilityZone'  => String,
     'createTime'        => Time,
+    'encrypted'         => Fog::Boolean,
     'iops'              => Fog::Nullable::Integer,
     'requestId'         => String,
     'size'              => Integer,
@@ -13,12 +14,12 @@ Shindo.tests('Fog::Compute[:aws] | volume requests', ['aws']) do
   }
 
   @volume_attachment_format = {
-    'attachTime'  => Time,
-    'device'      => String,
-    'instanceId'  => String,
-    'requestId'   => String,
-    'status'      => String,
-    'volumeId'    => String
+    'attachTime'          => Time,
+    'device'              => String,
+    'instanceId'          => String,
+    'requestId'           => String,
+    'status'              => String,
+    'volumeId'            => String
   }
 
   @volume_status_format = {
@@ -54,6 +55,7 @@ Shindo.tests('Fog::Compute[:aws] | volume requests', ['aws']) do
       'availabilityZone'  => String,
       'attachmentSet'     => Array,
       'createTime'        => Time,
+      'encrypted'         => Fog::Boolean,
       'iops'              => Fog::Nullable::Integer,
       'size'              => Integer,
       'snapshotId'        => Fog::Nullable::String,
@@ -183,8 +185,8 @@ Shindo.tests('Fog::Compute[:aws] | volume requests', ['aws']) do
     end
 
     # iops:size ratio too big
-    tests("#create_volume('#{@server.availability_zone}', 10, 'VolumeType' => 'io1', 'Iops' => 101)").raises(Fog::Compute::AWS::Error) do
-      Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1', 'Iops' => 101)
+    tests("#create_volume('#{@server.availability_zone}', 10, 'VolumeType' => 'io1', 'Iops' => 301)").raises(Fog::Compute::AWS::Error) do
+      Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1', 'Iops' => 301)
     end
 
     # iops invalid value (lower than 100)
diff --git a/tests/aws/requests/compute/vpc_tests.rb b/tests/aws/requests/compute/vpc_tests.rb
index c69addb..cbdab35 100644
--- a/tests/aws/requests/compute/vpc_tests.rb
+++ b/tests/aws/requests/compute/vpc_tests.rb
@@ -1,6 +1,17 @@
 Shindo.tests('Fog::Compute[:aws] | vpc requests', ['aws']) do
 
-  @vpcs_format = {
+  @create_vpcs_format = {
+    'vpcSet' => [{
+      'vpcId'           => String,
+      'state'           => String,
+      'cidrBlock'       => String,
+      'dhcpOptionsId'   => String,
+      'tagSet'          => Hash
+    }],
+    'requestId' => String
+  }
+
+  @describe_vpcs_format = {
     'vpcSet' => [{
       'vpcId'           => String,
       'state'           => String,
@@ -16,24 +27,47 @@ Shindo.tests('Fog::Compute[:aws] | vpc requests', ['aws']) do
 
     @vpc_id = nil
 
-    tests('#create_vpc').formats(@vpcs_format) do
+    tests('#create_vpc').formats(@create_vpcs_format) do
       data = Fog::Compute[:aws].create_vpc('10.255.254.0/28').body
       @vpc_id = data['vpcSet'].first['vpcId']
       data
     end
 
-    tests('#describe_vpcs').formats(@vpcs_format) do
+    tests('#describe_vpcs').formats(@describe_vpcs_format) do
       Fog::Compute[:aws].describe_vpcs.body
     end
 
+    [ 'enableDnsSupport', 'enableDnsHostnames'].each do |attrib|
+      tests("#describe_vpc_attribute('#{@vpc_id}', #{attrib})").returns(@vpc_id) do
+        Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, attrib).body['vpcId']
+      end
+    end
 
+    tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsSupport.Value' => false})").formats(AWS::Compute::Formats::BASIC) do
+      Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsSupport.Value' => false}).body
+    end
+    tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsSupport')").returns(false) do
+      Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsSupport').body["enableDnsSupport"]
+    end
     tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsSupport.Value' => true})").formats(AWS::Compute::Formats::BASIC) do
       Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsSupport.Value' => true}).body
     end
+    tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsSupport')").returns(true) do
+      Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsSupport').body["enableDnsSupport"]
+    end
 
     tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsHostnames.Value' => true})").formats(AWS::Compute::Formats::BASIC) do
       Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsHostnames.Value' => true}).body
     end
+    tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsHostnames')").returns(true) do
+      Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsHostnames').body["enableDnsHostnames"]
+    end
+    tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsHostnames.Value' => false})").formats(AWS::Compute::Formats::BASIC) do
+      Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsHostnames.Value' => false}).body
+    end
+    tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsHostnames')").returns(false) do
+      Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsHostnames').body["enableDnsHostnames"]
+    end
 
     tests("#modify_vpc_attribute('#{@vpc_id}')").raises(Fog::Compute::AWS::Error) do
       Fog::Compute[:aws].modify_vpc_attribute(@vpc_id).body
@@ -43,8 +77,35 @@ Shindo.tests('Fog::Compute[:aws] | vpc requests', ['aws']) do
       Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsSupport.Value' => true, 'EnableDnsHostnames.Value' => true}).body
     end
 
+    # Create another vpc to test tag filters
+    test_tags = {'foo' => 'bar'}
+    @another_vpc = Fog::Compute[:aws].vpcs.create :cidr_block => '1.2.3.4/24', :tags => test_tags
+
+    tests("#describe_vpcs('tag-key' => 'foo')").formats(@describe_vpcs_format)do
+      body = Fog::Compute[:aws].describe_vpcs('tag-key' => 'foo').body
+      tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
+      body
+    end
+
+    tests("#describe_vpcs('tag-value' => 'bar')").formats(@describe_vpcs_format)do
+      body = Fog::Compute[:aws].describe_vpcs('tag-value' => 'bar').body
+      tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
+      body
+    end
+
+    tests("#describe_vpcs('tag:foo' => 'bar')").formats(@describe_vpcs_format)do
+      body = Fog::Compute[:aws].describe_vpcs('tag:foo' => 'bar').body
+      tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
+      body
+    end
+
     tests("#delete_vpc('#{@vpc_id}')").formats(AWS::Compute::Formats::BASIC) do
       Fog::Compute[:aws].delete_vpc(@vpc_id).body
     end
+
+    # Clean up
+    Fog::Compute[:aws].delete_tags(@another_vpc.id, test_tags)
+    @another_vpc.destroy
+    Fog::Compute::AWS::Mock.reset if Fog.mocking?
   end
 end
diff --git a/tests/aws/requests/data_pipeline/helper.rb b/tests/aws/requests/data_pipeline/helper.rb
index d8ee6f5..21a8cf7 100644
--- a/tests/aws/requests/data_pipeline/helper.rb
+++ b/tests/aws/requests/data_pipeline/helper.rb
@@ -1,7 +1,6 @@
 class AWS
   module DataPipeline
     module Formats
-
       BASIC = {
         'pipelineId' => String,
       }
@@ -68,7 +67,6 @@ class AWS
           }
         ]
       }
-
     end
   end
 end
diff --git a/tests/aws/requests/data_pipeline/pipeline_tests.rb b/tests/aws/requests/data_pipeline/pipeline_tests.rb
index 0caf79a..ae8194d 100644
--- a/tests/aws/requests/data_pipeline/pipeline_tests.rb
+++ b/tests/aws/requests/data_pipeline/pipeline_tests.rb
@@ -9,7 +9,7 @@ Shindo.tests('AWS::DataPipeline | pipeline_tests', ['aws', 'data_pipeline']) do
       name = 'fog-test-pipeline-name'
       description = 'Fog test pipeline'
 
-      result = Fog::AWS[:data_pipeline].create_pipeline(unique_id, name, description)
+      result = Fog::AWS[:data_pipeline].create_pipeline(unique_id, name, description, {})
       @pipeline_id = result['pipelineId']
       result
     end
diff --git a/tests/aws/requests/dns/dns_tests.rb b/tests/aws/requests/dns/dns_tests.rb
index 34e6936..1f9f68e 100644
--- a/tests/aws/requests/dns/dns_tests.rb
+++ b/tests/aws/requests/dns/dns_tests.rb
@@ -180,8 +180,9 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
       # create an ALIAS record
       host = @domain_name
       alias_target = {
-        :hosted_zone_id => hosted_zone_id,
-        :dns_name       => dns_name
+        :hosted_zone_id         => hosted_zone_id,
+        :dns_name               => dns_name,
+        :evaluate_target_health => false
       }
       resource_record = { :name => host, :type => 'A', :alias_target => alias_target }
       resource_record_set = resource_record.merge(:action => 'CREATE')
@@ -239,14 +240,13 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
 
   end
 
-
   tests('failure') do
     tests('create hosted zone using invalid domain name').raises(Excon::Errors::BadRequest) do
       pending if Fog.mocking?
       response = @r53_connection.create_hosted_zone('invalid-domain')
     end
 
-    tests('get hosted zone using invalid ID').raises(Excon::Errors::Forbidden) do
+    tests('get hosted zone using invalid ID').raises(Excon::Errors::NotFound) do
       pending if Fog.mocking?
       zone_id = 'dummy-id'
       response = @r53_connection.get_hosted_zone(zone_id)
@@ -254,5 +254,4 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
 
   end
 
-
 end
diff --git a/tests/aws/requests/dns/health_check_tests.rb b/tests/aws/requests/dns/health_check_tests.rb
new file mode 100644
index 0000000..c7cd313
--- /dev/null
+++ b/tests/aws/requests/dns/health_check_tests.rb
@@ -0,0 +1,159 @@
+Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
+
+  pending if Fog.mocking?
+
+  @r53_connection = Fog::DNS[:aws]
+
+  tests('success') do
+
+    tests('create a health check') do
+      after do
+        @r53_connection.delete_health_check(@response.body['HealthCheck']['Id'])
+      end
+
+      test('create an IP TCP based health check') do
+        @response = @r53_connection.create_health_check('8.8.8.8', '53', 'TCP')
+        @response.status == 201 &&
+          @response.body['HealthCheck']['HealthCheckConfig']['IPAddress'] == '8.8.8.8' &&
+          @response.body['HealthCheck']['HealthCheckConfig']['Port'] == '53'
+      end
+
+      test('create a FQDN HTTP based health check') do
+        @options = {
+          :fqdn => "www.amazon.com",
+          :resource_path => "/gp/cart/view.html/ref=nav_cart"
+        }
+        @response = @r53_connection.create_health_check(nil, '80', 'HTTP', @options)
+        @response.status == 201 &&
+          @response.body['HealthCheck']['HealthCheckConfig']['IPAddress'].nil? &&
+          @response.body['HealthCheck']['HealthCheckConfig']['Port'] == '80' &&
+          @response.body['HealthCheck']['HealthCheckConfig']['FullyQualifiedDomainName'] == 'www.amazon.com'
+      end
+    end
+
+    tests('get a health check') do
+      @options = {
+        :fqdn => "www.amazon.com",
+        :resource_path => "/gp/cart/view.html/ref=nav_cart",
+        :search_string => "Amazon",
+        :request_interval => 10,
+        :failure_threshold => "7"
+      }
+      create_response = @r53_connection.create_health_check('8.8.8.8', '443', 'HTTPS_STR_MATCH', @options)
+      @health_check_id = create_response.body['HealthCheck']['Id']
+      @response = @r53_connection.get_health_check(@health_check_id)
+
+      sleep 2
+      @r53_connection.delete_health_check(@health_check_id)
+
+      test('id') do
+        @response.body['HealthCheck']['Id'] == @health_check_id
+      end
+
+      {
+        'IPAddress' => '8.8.8.8',
+        'Port' => '443',
+        'Type' => 'HTTPS_STR_MATCH',
+        'FullyQualifiedDomainName' => @options[:fqdn],
+        'ResourcePath' => @options[:resource_path],
+        'RequestInterval' => @options[:request_interval],
+        'FailureThreshold' => @options[:failure_threshold]
+      }.each do |key, value|
+        test("and check property #{key}") do
+          @response.body['HealthCheck']['HealthCheckConfig'][key] == value
+        end
+      end
+    end
+
+    tests('delete a health check') do
+      before do
+        response = @r53_connection.create_health_check('8.8.8.8', '53', 'TCP')
+        @health_check_id = response.body['HealthCheck']['Id']
+      end
+
+      test('setup as IP TCP') do
+        response = @r53_connection.delete_health_check(@health_check_id)
+        response.status == 200
+      end
+    end
+
+    tests('listing health checks') do
+      test('succeeds') do
+        response = @r53_connection.list_health_checks
+        response.status == 200
+      end
+
+      before do
+        response_1 = @r53_connection.create_health_check('8.8.8.8', '53', 'TCP')
+        @health_check_1_id = response_1.body['HealthCheck']['Id']
+        options = {
+          :fqdn => "www.amazon.com",
+          :resource_path => "/gp/cart/view.html/ref=nav_cart"
+        }
+        response_2 = @r53_connection.create_health_check(nil, '80', 'HTTP', options)
+        @health_check_2_id = response_2.body['HealthCheck']['Id']
+        @health_check_ids = [@health_check_1_id, @health_check_2_id]
+      end
+
+      after do
+        @health_check_ids.each { |id| @r53_connection.delete_health_check id }
+      end
+
+      test('contains 2 new health checks') do
+        sleep 2
+        response = @r53_connection.list_health_checks
+        health_checks_by_id = response.body['HealthChecks'].map do |health_check|
+          health_check['Id']
+        end.to_a
+        @health_check_ids.all? { |id| health_checks_by_id.include?(id) }
+      end
+
+      test('contains properties') do
+        sleep 2
+        response = @r53_connection.list_health_checks
+        list_response_2 = response.body['HealthChecks'].find { |health_check| health_check['Id'] == @health_check_2_id }
+
+        list_response_2['HealthCheckConfig']['Type'] == 'HTTP' &&
+          list_response_2['HealthCheckConfig']['FullyQualifiedDomainName'] == 'www.amazon.com' &&
+          list_response_2['HealthCheckConfig']['IPAddress'].nil?
+      end
+    end
+
+    tests('assign a health check to a DNS record') do
+      after do
+        @r53_connection.change_resource_record_sets(@zone_id, [@resource_record.merge(:action => 'DELETE')])
+        @r53_connection.delete_hosted_zone(@zone_id)
+        @r53_connection.delete_health_check @health_check_id
+      end
+
+      health_check_response = @r53_connection.create_health_check('8.8.8.8', '53', 'TCP')
+      raise "Health check was not created" unless health_check_response.status == 201
+      @health_check_id = health_check_response.body['HealthCheck']['Id']
+
+      @domain_name = generate_unique_domain
+      zone_response = @r53_connection.create_hosted_zone(@domain_name)
+      raise "Zone was not created for #{@domain_name}" unless zone_response.status == 201
+      @zone_id = zone_response.body['HostedZone']['Id']
+
+      @resource_record = {
+        :name => "www.#{@domain_name}.",
+        :type => 'A',
+        :ttl => 3600,
+        :resource_records => ['8.8.4.4'],
+        :health_check_id => @health_check_id,
+        :set_identifier => SecureRandom.hex(8),
+        :weight => 50
+      }
+      resource_record_set = [@resource_record.merge(:action => 'CREATE')]
+      record_response = @r53_connection.change_resource_record_sets @zone_id, resource_record_set
+      raise "A record was not created" unless record_response.status == 200
+
+      test('succeeds') do
+        new_record = @r53_connection.list_resource_record_sets(@zone_id).body['ResourceRecordSets'].find do |record|
+          record['Name'] == @resource_record[:name]
+        end
+        new_record['HealthCheckId'] == @health_check_id
+      end
+    end
+  end
+end
diff --git a/tests/aws/requests/dynamodb/item_tests.rb b/tests/aws/requests/dynamodb/item_tests.rb
index 29be359..7acf056 100644
--- a/tests/aws/requests/dynamodb/item_tests.rb
+++ b/tests/aws/requests/dynamodb/item_tests.rb
@@ -4,8 +4,8 @@ Shindo.tests('Fog::AWS[:dynamodb] | item requests', ['aws']) do
 
   unless Fog.mocking?
     Fog::AWS[:dynamodb].create_table(
-      @table_name, 
-      {'HashKeyElement' => {'AttributeName' => 'key', 'AttributeType' => 'S'}}, 
+      @table_name,
+      {'HashKeyElement' => {'AttributeName' => 'key', 'AttributeType' => 'S'}},
       {'ReadCapacityUnits' => 5, 'WriteCapacityUnits' => 5}
     )
     Fog.wait_for { Fog::AWS[:dynamodb].describe_table(@table_name).body['Table']['TableStatus'] == 'ACTIVE' }
diff --git a/tests/aws/requests/elasticache/helper.rb b/tests/aws/requests/elasticache/helper.rb
index b01f56e..6858f13 100644
--- a/tests/aws/requests/elasticache/helper.rb
+++ b/tests/aws/requests/elasticache/helper.rb
@@ -1,7 +1,6 @@
 class AWS
   module Elasticache
     module Formats
-
       BASIC = {
         'ResponseMetadata' => {'RequestId' => String}
       }
@@ -82,7 +81,7 @@ class AWS
         'SourceType'                  => String,
       }
       EVENT_LIST = [EVENT]
-      
+
       RESERVED_CACHE_CLUSTER = {
         'CacheNodeCount'                => Integer,
         'CacheNodeType'                 => String,
@@ -98,7 +97,7 @@ class AWS
         'UsagePrice'                    => Float
       }
       RESERVED_CACHE_CLUSTER_LIST = [RESERVED_CACHE_CLUSTER]
-      
+
     end
   end
 end
diff --git a/tests/aws/requests/elb/helper.rb b/tests/aws/requests/elb/helper.rb
index 1f9e113..46f430c 100644
--- a/tests/aws/requests/elb/helper.rb
+++ b/tests/aws/requests/elb/helper.rb
@@ -1,7 +1,6 @@
 class AWS
   module ELB
     module Formats
-
       BASIC = {
         'ResponseMetadata' => {'RequestId' => String}
       }
@@ -87,7 +86,6 @@ class AWS
       DELETE_LOAD_BALANCER = BASIC.merge({
         'DeleteLoadBalancerResult' =>  NilClass
       })
-
     end
   end
 end
diff --git a/tests/aws/requests/elb/load_balancer_tests.rb b/tests/aws/requests/elb/load_balancer_tests.rb
index 7436420..e8131ad 100644
--- a/tests/aws/requests/elb/load_balancer_tests.rb
+++ b/tests/aws/requests/elb/load_balancer_tests.rb
@@ -37,9 +37,23 @@ Shindo.tests('AWS::ELB | load_balancer_tests', ['aws', 'elb']) do
     end
 
     tests("modify_load_balancer_attributes") do
-      Fog::AWS[:elb].modify_load_balancer_attributes(@load_balancer_id, 'CrossZoneLoadBalancing' => {'Enabled' => true}).body
-      response = Fog::AWS[:elb].describe_load_balancer_attributes(@load_balancer_id).body
-      response['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']['CrossZoneLoadBalancing']['Enabled'] == true
+      attributes = {
+        'ConnectionDraining' => {'Enabled' => true, 'Timeout' => 600},
+        'CrossZoneLoadBalancing' => {'Enabled' => true}
+      }
+      Fog::AWS[:elb].modify_load_balancer_attributes(@load_balancer_id, attributes).body
+      response = Fog::AWS[:elb].describe_load_balancer_attributes(@load_balancer_id).
+        body['DescribeLoadBalancerAttributesResult']['LoadBalancerAttributes']
+
+      tests("ConnectionDraining is enabled") do
+        response['ConnectionDraining']['Enabled'] == true
+      end
+      tests("ConnectionDraining has a 600 second Timeout").returns(600) do
+        response['ConnectionDraining']['Timeout']
+      end
+      tests("CrossZoneLoadBalancing is enabled") do
+        response['CrossZoneLoadBalancing']['Enabled'] == true
+      end
     end
 
     tests("#configure_health_check").formats(AWS::ELB::Formats::CONFIGURE_HEALTH_CHECK) do
diff --git a/tests/aws/requests/elb/policy_tests.rb b/tests/aws/requests/elb/policy_tests.rb
index abed813..fd4a5f1 100644
--- a/tests/aws/requests/elb/policy_tests.rb
+++ b/tests/aws/requests/elb/policy_tests.rb
@@ -43,7 +43,7 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
                 "PolicyName"=>"fog-app-policy",
                 "PolicyTypeName"=>"AppCookieStickinessPolicyType"
               }) do
-        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-app-policy' }
+        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-app-policy' }
       end
 
       returns({
@@ -54,7 +54,7 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
                 "PolicyName"=>"fog-lb-expiry",
                 "PolicyTypeName"=>"LBCookieStickinessPolicyType"
               }) do
-        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-lb-expiry' }
+        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-lb-expiry' }
       end
 
       returns({
@@ -65,7 +65,7 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
                 "PolicyName"=>"fog-lb-no-expiry",
                 "PolicyTypeName"=>"LBCookieStickinessPolicyType"
               }) do
-        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-lb-no-expiry' }
+        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-lb-no-expiry' }
       end
 
       returns({
@@ -76,7 +76,7 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
                 "PolicyName"=>"fog-policy",
                 "PolicyTypeName"=>"PublicKeyPolicyType"
               }) do
-        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-policy' }
+        body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-policy' }
       end
     end
 
@@ -126,8 +126,7 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
       description = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
       returns(true) { description["Policies"]["OtherPolicies"].include?(proxy_policy) }
     end
-    
+
     Fog::AWS[:elb].delete_load_balancer(@load_balancer_id)
   end
 end
-
diff --git a/tests/aws/requests/emr/helper.rb b/tests/aws/requests/emr/helper.rb
index 8dfed64..6d4cb76 100644
--- a/tests/aws/requests/emr/helper.rb
+++ b/tests/aws/requests/emr/helper.rb
@@ -1,7 +1,5 @@
 class AWS
-
   module EMR
-
     module Formats
       BASIC = {
         'RequestId' => String
@@ -10,12 +8,12 @@ class AWS
       RUN_JOB_FLOW = BASIC.merge({
         'JobFlowId' => String
       })
-      
+
       ADD_INSTANCE_GROUPS = {
         'JobFlowId' => String,
         'InstanceGroupIds' => Array
       }
-      
+
       SIMPLE_DESCRIBE_JOB_FLOW = {
         'JobFlows' => [{
           'Name' => String,
@@ -61,7 +59,7 @@ class AWS
           }
         }]
       }
-      
+
       JOB_FLOW_WITHOUT_CHANGE = {
         'JobFlows' => [{
           'Name' => String,
@@ -107,7 +105,7 @@ class AWS
           }
         }]
       }
-      
+
       DESCRIBE_JOB_FLOW_WITH_INSTANCE_GROUPS = {
         'JobFlows' => [{
           'Name' => String,
@@ -165,8 +163,6 @@ class AWS
           }
         }]
       }
-
     end
   end
-
 end
diff --git a/tests/aws/requests/glacier/archive_tests.rb b/tests/aws/requests/glacier/archive_tests.rb
index 5f242d3..859fc71 100644
--- a/tests/aws/requests/glacier/archive_tests.rb
+++ b/tests/aws/requests/glacier/archive_tests.rb
@@ -10,4 +10,4 @@ Shindo.tests('AWS::Glacier | glacier archive tests', ['aws']) do
 
   #amazon won't let us delete the vault because it has been written to in the past day
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/glacier/multipart_upload_tests.rb b/tests/aws/requests/glacier/multipart_upload_tests.rb
index 1069914..0816013 100644
--- a/tests/aws/requests/glacier/multipart_upload_tests.rb
+++ b/tests/aws/requests/glacier/multipart_upload_tests.rb
@@ -5,12 +5,11 @@ Shindo.tests('AWS::Glacier | glacier archive tests', ['aws']) do
 
   tests('initiate and abort') do
     id = Fog::AWS[:glacier].initiate_multipart_upload('Fog-Test-Vault-upload', 1024*1024).headers['x-amz-multipart-upload-id']
-    returns(true){ Fog::AWS[:glacier].list_multipart_uploads('Fog-Test-Vault-upload').body['UploadsList'].collect {|item| item['MultipartUploadId']}.include?(id)}
+    returns(true){ Fog::AWS[:glacier].list_multipart_uploads('Fog-Test-Vault-upload').body['UploadsList'].map {|item| item['MultipartUploadId']}.include?(id)}
     Fog::AWS[:glacier].abort_multipart_upload('Fog-Test-Vault-upload', id)
-    returns(false){ Fog::AWS[:glacier].list_multipart_uploads('Fog-Test-Vault-upload').body['UploadsList'].collect {|item| item['MultipartUploadId']}.include?(id)}
+    returns(false){ Fog::AWS[:glacier].list_multipart_uploads('Fog-Test-Vault-upload').body['UploadsList'].map {|item| item['MultipartUploadId']}.include?(id)}
   end
 
-
   tests('do multipart upload') do
     hash = Fog::AWS::Glacier::TreeHash.new
     id = Fog::AWS[:glacier].initiate_multipart_upload('Fog-Test-Vault-upload', 1024*1024).headers['x-amz-multipart-upload-id']
@@ -24,7 +23,7 @@ Shindo.tests('AWS::Glacier | glacier archive tests', ['aws']) do
 
     archive = Fog::AWS[:glacier].complete_multipart_upload('Fog-Test-Vault-upload', id, 2*1024*1024, hash.hexdigest).headers['x-amz-archive-id']
 
-    Fog::AWS[:glacier].delete_archive('Fog-Test-Vault-upload', archive)    
+    Fog::AWS[:glacier].delete_archive('Fog-Test-Vault-upload', archive)
   #amazon won't let us delete the vault because it has been written to in the past day
   end
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/glacier/tree_hash_tests.rb b/tests/aws/requests/glacier/tree_hash_tests.rb
index 292bcc3..fa6aa4d 100644
--- a/tests/aws/requests/glacier/tree_hash_tests.rb
+++ b/tests/aws/requests/glacier/tree_hash_tests.rb
@@ -59,5 +59,4 @@ Shindo.tests('AWS::Glacier | glacier tree hash calcuation', ['aws']) do
 
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/glacier/vault_tests.rb b/tests/aws/requests/glacier/vault_tests.rb
index 91f9d5a..6907516 100644
--- a/tests/aws/requests/glacier/vault_tests.rb
+++ b/tests/aws/requests/glacier/vault_tests.rb
@@ -5,7 +5,7 @@ Shindo.tests('AWS::Glacier | glacier vault requests', ['aws']) do
   Fog::AWS[:glacier].create_vault('Fog-Test-Vault')
 
   tests('list_vaults') do
-    returns(true){Fog::AWS[:glacier].list_vaults.body['VaultList'].collect {|data| data['VaultName']}.include?('Fog-Test-Vault')}
+    returns(true){Fog::AWS[:glacier].list_vaults.body['VaultList'].map {|data| data['VaultName']}.include?('Fog-Test-Vault')}
   end
 
   tests('describe_vault') do
diff --git a/tests/aws/requests/iam/account_policy_tests.rb b/tests/aws/requests/iam/account_policy_tests.rb
new file mode 100644
index 0000000..7f10dc9
--- /dev/null
+++ b/tests/aws/requests/iam/account_policy_tests.rb
@@ -0,0 +1,20 @@
+Shindo.tests('AWS::IAM | account policy requests', ['aws']) do
+
+  tests('success') do
+    tests("#update_account_password_policy(minimum_password_length, max_password_age, password_reuse_prevention,require_symbols,require_numbers,require_uppercase_characters, require_lowercase_characters,allow_users_to_change_password, hard_expiry, expire_passwords)").formats(AWS::IAM::Formats::BASIC) do
+      minimum_password_length, password_reuse_prevention, max_password_age = 5
+      require_symbols, require_numbers, require_uppercase_characters, require_lowercase_characters, allow_users_to_change_password, hard_expiry, expire_passwords = false
+   
+      Fog::AWS[:iam].update_account_password_policy(minimum_password_length, max_password_age, password_reuse_prevention,require_symbols,require_numbers,require_uppercase_characters, require_lowercase_characters,allow_users_to_change_password, hard_expiry, expire_passwords).body
+    end
+
+    tests("#get_account_password_policy()") do
+      Fog::AWS[:iam].get_account_password_policy().body['AccountPasswordPolicy']
+    end
+
+    tests("#delete_account_password_policy()").formats(AWS::IAM::Formats::BASIC) do
+  
+      Fog::AWS[:iam].delete_account_password_policy().body
+    end    
+  end
+end
diff --git a/tests/aws/requests/iam/helper.rb b/tests/aws/requests/iam/helper.rb
index a894370..f160cab 100644
--- a/tests/aws/requests/iam/helper.rb
+++ b/tests/aws/requests/iam/helper.rb
@@ -1,5 +1,4 @@
 class AWS
-
   module IAM
     # A self-signed test keypair. Generated using the command:
     # openssl req -new -newkey rsa:1024 -days 3650 -nodes -x509 -keyout server-private.key -out server-public.crt
@@ -95,13 +94,9 @@ Xb9WSr07saxZQbxBPQyTlb0Q9Tu2djAq2/o/nYD1/50/fXUTuWMB
 }
 
     module Formats
-
       BASIC = {
         'RequestId' => String
       }
-
     end
-
   end
-
 end
diff --git a/tests/aws/requests/iam/login_profile_tests.rb b/tests/aws/requests/iam/login_profile_tests.rb
index 5b0ed54..7d1f37f 100644
--- a/tests/aws/requests/iam/login_profile_tests.rb
+++ b/tests/aws/requests/iam/login_profile_tests.rb
@@ -4,17 +4,16 @@ Shindo.tests('AWS::IAM | user requests', ['aws']) do
     Fog::AWS[:iam].create_user('fog_user')
   end
 
-
   tests('success') do
     @login_profile_format = {
       'LoginProfile' => {
         'UserName'  => String,
         'CreateDate'  => Time
-        
+
       },
       'RequestId' => String
     }
-    
+
     tests("#create_login_profile('fog_user')").formats(@login_profile_format) do
       pending if Fog.mocking?
       Fog::AWS[:iam].create_login_profile('fog_user', 'somepassword').body
@@ -57,7 +56,6 @@ Shindo.tests('AWS::IAM | user requests', ['aws']) do
     end
   end
 
-
   unless Fog.mocking?
     Fog::AWS[:iam].delete_user('fog_user')
   end
diff --git a/tests/aws/requests/iam/role_tests.rb b/tests/aws/requests/iam/role_tests.rb
index ab2e0f0..0c62531 100644
--- a/tests/aws/requests/iam/role_tests.rb
+++ b/tests/aws/requests/iam/role_tests.rb
@@ -39,7 +39,7 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
     tests("#list_roles").formats(@list_roles_format) do
       pending if Fog.mocking?
       body = Fog::AWS[:iam].list_roles.body
-      returns(true){!! body['Roles'].detect {|role| role['RoleName'] == 'fogrole'}}
+      returns(true){!! body['Roles'].find {|role| role['RoleName'] == 'fogrole'}}
       body
     end
 
@@ -53,7 +53,7 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
         'Roles' => [@role]
       },
       'RequestId' => String
-      
+
     }
     tests("#create_instance_profile('fogprofile')").formats(@profile_format) do
       pending if Fog.mocking?
@@ -81,12 +81,12 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
       }],
       'IsTruncated' => Fog::Boolean,
       'RequestId' => String
-      
+
     }
     tests("list_instance_profiles_for_role('fogrole')").formats(@profiles_format) do
       pending if Fog.mocking?
       body = Fog::AWS[:iam].list_instance_profiles_for_role('fogrole').body
-      returns(['fogprofile']) { body['InstanceProfiles'].collect {|hash| hash['InstanceProfileName']}}      
+      returns(['fogprofile']) { body['InstanceProfiles'].map {|hash| hash['InstanceProfileName']}}
       body
     end
 
@@ -96,7 +96,7 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
     end
 
     sample_policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
-    
+
     tests("put_role_policy").formats(AWS::IAM::Formats::BASIC) do
       pending if Fog.mocking?
       Fog::AWS[:iam].put_role_policy('fogrole', 'fogpolicy', sample_policy).body
@@ -104,7 +104,7 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
 
     @get_role_policy_format = {
       'Policy' => {
-        'RoleName' => String, 
+        'RoleName' => String,
         'PolicyName' => String,
         'PolicyDocument' => Hash,
       },
@@ -122,7 +122,7 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
     @list_role_policies_format = {
       'PolicyNames' => [String],
       'IsTruncated' => Fog::Boolean,
-      'RequestId' => String      
+      'RequestId' => String
     }
 
     tests("list_role_policies").formats(@list_role_policies_format) do
@@ -137,7 +137,7 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
       pending if Fog.mocking?
       Fog::AWS[:iam].delete_role_policy('fogrole', 'fogpolicy').body
     end
-    
+
     returns([]) do
       pending if Fog.mocking?
       Fog::AWS[:iam].list_role_policies('fogrole').body['PolicyNames']
@@ -165,4 +165,3 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
   end
 
 end
-
diff --git a/tests/aws/requests/iam/user_tests.rb b/tests/aws/requests/iam/user_tests.rb
index c46dcc1..7009808 100644
--- a/tests/aws/requests/iam/user_tests.rb
+++ b/tests/aws/requests/iam/user_tests.rb
@@ -66,7 +66,6 @@ Shindo.tests('AWS::IAM | user requests', ['aws']) do
       Fog::AWS[:iam].delete_user('fog_user').body
     end
 
-
   end
 
   tests('failure') do
diff --git a/tests/aws/requests/rds/describe_events.rb b/tests/aws/requests/rds/describe_events.rb
index 941b4df..4a14e36 100644
--- a/tests/aws/requests/rds/describe_events.rb
+++ b/tests/aws/requests/rds/describe_events.rb
@@ -11,6 +11,6 @@ Shindo.tests('AWS::RDS | describe DB events requests',['aws', 'rds']) do
   end
 
   tests('failure') do
-    #TODO: What constitutes a failure here? 
+    #TODO: What constitutes a failure here?
   end
 end
diff --git a/tests/aws/requests/rds/helper.rb b/tests/aws/requests/rds/helper.rb
index b41dee6..33ac6cb 100644
--- a/tests/aws/requests/rds/helper.rb
+++ b/tests/aws/requests/rds/helper.rb
@@ -1,11 +1,8 @@
 class AWS
-
   module RDS
-
     module Formats
-
       BASIC = {
-        'ResponseMetadata' => {'RequestId' => String}
+        'ResponseMetadata' => { 'RequestId' => String }
       }
 
       DB_AVAILABILITY_ZONE_OPTION = {
@@ -15,11 +12,11 @@ class AWS
 
       DB_PARAMETER_GROUP = {
           'DBParameterGroupFamily' => String,
-          'DBParameterGroupName'=> String,
-          'Description'=> String
+          'DBParameterGroupName' => String,
+          'Description' => String
       }
       CREATE_DB_PARAMETER_GROUP = {
-        'ResponseMetadata' => {'RequestId' => String},
+        'ResponseMetadata' => { 'RequestId' => String },
         'CreateDBParameterGroupResult' => {
           'DBParameterGroup' => DB_PARAMETER_GROUP
         }
@@ -78,8 +75,8 @@ class AWS
       })
 
       DESCRIBE_DB_PARAMETER_GROUP = {
-        'ResponseMetadata' => {'RequestId' => String},
-        'DescribeDBParameterGroupsResult' =>{
+        'ResponseMetadata' => { 'RequestId' => String },
+        'DescribeDBParameterGroupsResult' => {
           'DBParameterGroups' => [DB_PARAMETER_GROUP]
         }
       }
@@ -96,7 +93,7 @@ class AWS
       }
 
       DESCRIBE_ORDERABLE_DB_INSTANCE_OPTION = BASIC.merge({
-          'DescribeOrderableDBInstanceOptionsResult' =>{
+          'DescribeOrderableDBInstanceOptionsResult' => {
               'OrderableDBInstanceOptions' => [ORDERABLE_DB_INSTANCE_OPTION]
           }
       })
@@ -107,7 +104,6 @@ class AWS
         }
       })
 
-
       DB_PARAMETER = {
         'ParameterValue' => Fog::Nullable::String,
         'DataType' => String,
@@ -140,7 +136,7 @@ class AWS
         }
       })
 
-      SNAPSHOT={
+      SNAPSHOT = {
         'AllocatedStorage' => Integer,
         'AvailabilityZone' => String,
         'DBInstanceIdentifier' => String,
@@ -148,12 +144,14 @@ class AWS
         'EngineVersion' => String,
         'Engine' => String,
         'InstanceCreateTime' => Time,
+        'Iops' => Fog::Nullable::Integer,
         'MasterUsername' => String,
         'Port' => Integer,
         'SnapshotCreateTime' => Fog::Nullable::Time,
         'Status' => String,
         'SnapshotType' => String
       }
+
       INSTANCE = {
         'AllocatedStorage' => Integer,
         'AutoMinorVersionUpgrade' => Fog::Boolean,
@@ -180,6 +178,7 @@ class AWS
         'Engine' => String,
         'EngineVersion' => String,
         'InstanceCreateTime' => Fog::Nullable::Time,
+        'Iops' => Fog::Nullable::Integer,
         'LatestRestorableTime' => Fog::Nullable::Time,
         'LicenseModel' => String,
         'MasterUsername' => String,
@@ -193,15 +192,15 @@ class AWS
           'AllocatedStorage'      => Fog::Nullable::Integer,
           'Port'                  => Fog::Nullable::Integer
         },
-        'PreferredBackupWindow'=> String,
-        'PreferredMaintenanceWindow'=> String,
-        'ReadReplicaDBInstanceIdentifiers'=> [Fog::Nullable::String]
+        'PreferredBackupWindow' => String,
+        'PreferredMaintenanceWindow' => String,
+        'ReadReplicaDBInstanceIdentifiers' => [Fog::Nullable::String]
       }
 
       REPLICA_INSTANCE = INSTANCE.merge({
         'BackupRetentionPeriod' => Fog::Nullable::String,
         'PreferredBackupWindow' => Fog::Nullable::String,
-        'ReadReplicaSourceDBInstanceIdentifier'=> String
+        'ReadReplicaSourceDBInstanceIdentifier' => String
       })
 
       CREATE_DB_INSTANCE = BASIC.merge({
@@ -241,6 +240,12 @@ class AWS
         }
       })
 
+      PROMOTE_READ_REPLICA = BASIC.merge({
+        'PromoteReadReplicaResult' => {
+            'DBInstance' => INSTANCE
+        }
+      })
+
       CREATE_DB_SNAPSHOT = BASIC.merge({
         'CreateDBSnapshotResult' => {
           'DBSnapshot' => SNAPSHOT
@@ -264,9 +269,6 @@ class AWS
           'TagList' => Fog::Nullable::Hash
         }
       }
-
     end
-
   end
-
 end
diff --git a/tests/aws/requests/rds/instance_tests.rb b/tests/aws/requests/rds/instance_tests.rb
index 0080596..cff56d8 100644
--- a/tests/aws/requests/rds/instance_tests.rb
+++ b/tests/aws/requests/rds/instance_tests.rb
@@ -15,16 +15,17 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
   tests('success') do
 
     tests("#create_db_instance").formats(AWS::RDS::Formats::CREATE_DB_INSTANCE) do
-      result = Fog::AWS[:rds].create_db_instance(@db_instance_id, 'AllocatedStorage' => 5,
-                                            'DBInstanceClass' => 'db.m1.small',
-                                            'Engine' => 'mysql',
-                                            'EngineVersion' => '5.1.50',
-                                            'MasterUsername' => 'foguser',
-                                            'BackupRetentionPeriod' => 1,
-                                            'MasterUserPassword' => 'fogpassword').body
+      result = Fog::AWS[:rds].create_db_instance(@db_instance_id,
+                                                 'AllocatedStorage' => 5,
+                                                 'DBInstanceClass' => 'db.m1.small',
+                                                 'Engine' => 'mysql',
+                                                 'EngineVersion' => '5.1.50',
+                                                 'MasterUsername' => 'foguser',
+                                                 'BackupRetentionPeriod' => 1,
+                                                 'MasterUserPassword' => 'fogpassword').body
 
       instance = result['CreateDBInstanceResult']['DBInstance']
-      returns('creating'){ instance['DBInstanceStatus']}
+      returns('creating') { instance['DBInstanceStatus'] }
       result
     end
 
@@ -33,14 +34,14 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
     end
 
     server = Fog::AWS[:rds].servers.get(@db_instance_id)
-    server.wait_for {ready?}
+    server.wait_for { ready? }
 
     new_storage = 6
     tests("#modify_db_instance with immediate apply").formats(AWS::RDS::Formats::MODIFY_DB_INSTANCE) do
-      body = Fog::AWS[:rds].modify_db_instance(@db_instance_id, true, 'AllocatedStorage'=> new_storage).body
+      body = Fog::AWS[:rds].modify_db_instance(@db_instance_id, true, 'AllocatedStorage' => new_storage).body
       tests 'pending storage' do
         instance = body['ModifyDBInstanceResult']['DBInstance']
-        returns(new_storage){instance['PendingModifiedValues']['AllocatedStorage']}
+        returns(new_storage) { instance['PendingModifiedValues']['AllocatedStorage'] }
       end
       body
     end
@@ -49,7 +50,7 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
     server.wait_for { state == 'available' }
 
     tests 'new storage' do
-      returns(new_storage){ server.allocated_storage}
+      returns(new_storage) { server.allocated_storage }
     end
 
     tests("reboot db instance") do
@@ -59,11 +60,11 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
     end
 
     server.wait_for { state == 'rebooting' }
-    server.wait_for { state == 'available'}
+    server.wait_for { state == 'available' }
 
     tests("#create_db_snapshot").formats(AWS::RDS::Formats::CREATE_DB_SNAPSHOT) do
       body = Fog::AWS[:rds].create_db_snapshot(@db_instance_id, @db_snapshot_id).body
-      returns('creating'){ body['CreateDBSnapshotResult']['DBSnapshot']['Status']}
+      returns('creating') { body['CreateDBSnapshotResult']['DBSnapshot']['Status'] }
       body
     end
 
@@ -73,29 +74,33 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
 
     server.wait_for { state == 'available' }
 
-    tests( "#create read replica").formats(AWS::RDS::Formats::CREATE_READ_REPLICA) do
+    tests("#create read replica").formats(AWS::RDS::Formats::CREATE_READ_REPLICA) do
       Fog::AWS[:rds].create_db_instance_read_replica(@db_replica_id, @db_instance_id).body
     end
 
     replica = Fog::AWS[:rds].servers.get(@db_replica_id)
-    replica.wait_for {ready?}
+    replica.wait_for { ready? }
 
     tests("replica source") do
-      returns(@db_instance_id){replica.read_replica_source}
+      returns(@db_instance_id) { replica.read_replica_source }
     end
     server.reload
 
     tests("replica identifiers") do
-      returns([@db_replica_id]){server.read_replica_identifiers}
+      returns([@db_replica_id]) { server.read_replica_identifiers }
+    end
+
+    tests("#promote read replica").formats(AWS::RDS::Formats::PROMOTE_READ_REPLICA) do
+      Fog::AWS[:rds].promote_read_replica(@db_replica_id).body
     end
 
     tests("#delete_db_instance").formats(AWS::RDS::Formats::DELETE_DB_INSTANCE) do
-      #server.wait_for { state == 'available'}
+      #server.wait_for { state == 'available' }
       Fog::AWS[:rds].delete_db_instance(@db_replica_id, nil, true)
       body = Fog::AWS[:rds].delete_db_instance(@db_instance_id, @db_final_snapshot_id).body
 
       tests "final snapshot" do
-        returns('creating'){Fog::AWS[:rds].describe_db_snapshots(:snapshot_id => @db_final_snapshot_id).body['DescribeDBSnapshotsResult']['DBSnapshots'].first['Status']}
+        returns('creating') { Fog::AWS[:rds].describe_db_snapshots(:snapshot_id => @db_final_snapshot_id).body['DescribeDBSnapshotsResult']['DBSnapshots'].first['Status'] }
       end
       body
     end
@@ -116,13 +121,13 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
 
   tests('failure') do
     tests "deleting nonexisting instance" do
-      raises(Fog::AWS::RDS::NotFound) {Fog::AWS[:rds].delete_db_instance('doesnexist', 'irrelevant')}
+      raises(Fog::AWS::RDS::NotFound) { Fog::AWS[:rds].delete_db_instance('doesnexist', 'irrelevant') }
     end
     tests "deleting non existing snapshot" do
-      raises(Fog::AWS::RDS::NotFound) {Fog::AWS[:rds].delete_db_snapshot('doesntexist')}
+      raises(Fog::AWS::RDS::NotFound) { Fog::AWS[:rds].delete_db_snapshot('doesntexist') }
     end
     tests "modifying non existing instance" do
-      raises(Fog::AWS::RDS::NotFound) { Fog::AWS[:rds].modify_db_instance 'doesntexit', true, 'AllocatedStorage'=> 10}
+      raises(Fog::AWS::RDS::NotFound) { Fog::AWS[:rds].modify_db_instance 'doesntexit', true, 'AllocatedStorage' => 10 }
     end
   end
 end
diff --git a/tests/aws/requests/rds/parameter_group_tests.rb b/tests/aws/requests/rds/parameter_group_tests.rb
index 0db1803..0b120d8 100644
--- a/tests/aws/requests/rds/parameter_group_tests.rb
+++ b/tests/aws/requests/rds/parameter_group_tests.rb
@@ -7,26 +7,26 @@ Shindo.tests('AWS::RDS | parameter group requests', ['aws', 'rds']) do
       returns( 'mysql5.1') { body['CreateDBParameterGroupResult']['DBParameterGroup']['DBParameterGroupFamily']}
       returns( 'fog-group') { body['CreateDBParameterGroupResult']['DBParameterGroup']['DBParameterGroupName']}
       returns( 'Some description') { body['CreateDBParameterGroupResult']['DBParameterGroup']['Description']}
-      
+
       body
     end
-    
+
     Fog::AWS[:rds].create_db_parameter_group('other-fog-group', 'MySQL5.1', 'Some description')
 
     tests("#describe_db_parameter_groups").formats(AWS::RDS::Formats::DESCRIBE_DB_PARAMETER_GROUP) do
 
       body = Fog::AWS[:rds].describe_db_parameter_groups().body
-      
-      returns(4) {body['DescribeDBParameterGroupsResult']['DBParameterGroups'].length}      
+
+      returns(4) {body['DescribeDBParameterGroupsResult']['DBParameterGroups'].length}
       body
     end
 
     tests("#describe_db_parameter_groups('fog-group)").formats(AWS::RDS::Formats::DESCRIBE_DB_PARAMETER_GROUP) do
 
       body = Fog::AWS[:rds].describe_db_parameter_groups('fog-group').body
-      
-      returns(1) {body['DescribeDBParameterGroupsResult']['DBParameterGroups'].length}      
-      
+
+      returns(1) {body['DescribeDBParameterGroupsResult']['DBParameterGroups'].length}
+
       group = body['DescribeDBParameterGroupsResult']['DBParameterGroups'].first
       returns( 'mysql5.1') { group['DBParameterGroupFamily']}
       returns( 'fog-group') { group['DBParameterGroupName']}
@@ -34,10 +34,10 @@ Shindo.tests('AWS::RDS | parameter group requests', ['aws', 'rds']) do
 
       body
     end
-    
+
     tests("delete_db_parameter_group").formats(AWS::RDS::Formats::BASIC) do
       body = Fog::AWS[:rds].delete_db_parameter_group('fog-group').body
-      
+
       raises(Fog::AWS::RDS::NotFound) {Fog::AWS[:rds].describe_db_parameter_groups('fog-group')}
 
       body
@@ -54,9 +54,9 @@ Shindo.tests('AWS::RDS | parameter group requests', ['aws', 'rds']) do
       Fog::AWS[:rds].create_db_parameter_group('fog-group', 'MySQL5.1', 'Some description')
       raises(Fog::AWS::RDS::IdentifierTaken) {Fog::AWS[:rds].create_db_parameter_group('fog-group', 'MySQL5.1', 'Some description')}
     end
-    
+
     Fog::AWS[:rds].delete_db_parameter_group('fog-group')
-  
+
   end
-  
-end
\ No newline at end of file
+
+end
diff --git a/tests/aws/requests/rds/parameter_request_tests.rb b/tests/aws/requests/rds/parameter_request_tests.rb
index 3801391..8c35082 100644
--- a/tests/aws/requests/rds/parameter_request_tests.rb
+++ b/tests/aws/requests/rds/parameter_request_tests.rb
@@ -1,28 +1,27 @@
 Shindo.tests('AWS::RDS | parameter requests', ['aws', 'rds']) do
   tests('success') do
     pending if Fog.mocking?
-    
+
     Fog::AWS[:rds].create_db_parameter_group('fog-group', 'MySQL5.1', 'Some description')
-    
+
     tests('#modify_db_parameter_group').formats(AWS::RDS::Formats::MODIFY_PARAMETER_GROUP) do
       body = Fog::AWS[:rds].modify_db_parameter_group('fog-group',[
         {'ParameterName' => 'query_cache_size',
         'ParameterValue' => '12345',
-        'ApplyMethod' => 'immediate'} 
+        'ApplyMethod' => 'immediate'}
       ]).body
-      
+
       body
     end
-    
+
     tests('#describe_db_parameters').formats(AWS::RDS::Formats::DESCRIBE_DB_PARAMETERS) do
       Fog::AWS[:rds].describe_db_parameters('fog-group', :max_records => 20).body
     end
 
-
     tests("#describe_db_parameters :source => 'user'")do
       body = Fog::AWS[:rds].describe_db_parameters('fog-group', :source => 'user').body
       returns(1){ body['DescribeDBParametersResult']['Parameters'].length}
-      
+
       param = body['DescribeDBParametersResult']['Parameters'].first
       returns('query_cache_size'){param['ParameterName']}
       returns('12345'){param['ParameterValue']}
@@ -30,6 +29,6 @@ Shindo.tests('AWS::RDS | parameter requests', ['aws', 'rds']) do
       returns('query_cache_size'){param['ParameterName']}
     end
     Fog::AWS[:rds].delete_db_parameter_group('fog-group')
-    
+
   end
 end
diff --git a/tests/aws/requests/rds/security_group_tests.rb b/tests/aws/requests/rds/security_group_tests.rb
index bed6761..0fbc2cb 100644
--- a/tests/aws/requests/rds/security_group_tests.rb
+++ b/tests/aws/requests/rds/security_group_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('AWS::RDS | security group requests', ['aws', 'rds']) do
   else
     @owner_id = Fog::AWS[:rds].security_groups.get('default').owner_id
   end
-  
+
   tests('success') do
 
     tests("#create_db_security_group").formats(AWS::RDS::Formats::CREATE_DB_SECURITY_GROUP) do
@@ -17,85 +17,85 @@ Shindo.tests('AWS::RDS | security group requests', ['aws', 'rds']) do
       returns( 'Some description') { body['CreateDBSecurityGroupResult']['DBSecurityGroup']['DBSecurityGroupDescription']}
       returns( []) { body['CreateDBSecurityGroupResult']['DBSecurityGroup']['EC2SecurityGroups']}
       returns( []) { body['CreateDBSecurityGroupResult']['DBSecurityGroup']['IPRanges']}
-      
+
       body
     end
-    
+
     tests("#describe_db_security_groups").formats(AWS::RDS::Formats::DESCRIBE_DB_SECURITY_GROUP) do
       Fog::AWS[:rds].describe_db_security_groups.body
     end
-    
+
     tests("#authorize_db_security_group_ingress CIDR").formats(AWS::RDS::Formats::AUTHORIZE_DB_SECURITY_GROUP) do
       @cidr = '0.0.0.0/0'
       body = Fog::AWS[:rds].authorize_db_security_group_ingress(@sec_group_name,{'CIDRIP'=>@cidr}).body
-      
-      returns("authorizing") { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['IPRanges'].detect{|h| h['CIDRIP'] == @cidr}['Status']}
+
+      returns("authorizing") { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['IPRanges'].find{|h| h['CIDRIP'] == @cidr}['Status']}
       body
     end
-    
+
     sec_group = Fog::AWS[:rds].security_groups.get(@sec_group_name)
     sec_group.wait_for {ready?}
-    
+
     tests("#authorize_db_security_group_ingress another CIDR").formats(AWS::RDS::Formats::AUTHORIZE_DB_SECURITY_GROUP) do
       @cidr = "10.0.0.0/24"
       body = Fog::AWS[:rds].authorize_db_security_group_ingress(@sec_group_name,{'CIDRIP'=>@cidr}).body
-      
-      returns("authorizing") { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['IPRanges'].detect{|h| h['CIDRIP'] == @cidr}['Status']}
+
+      returns("authorizing") { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['IPRanges'].find{|h| h['CIDRIP'] == @cidr}['Status']}
       body
     end
-    
+
     sec_group = Fog::AWS[:rds].security_groups.get(@sec_group_name)
     sec_group.wait_for {ready?}
-    
+
     tests("#count CIDRIP").formats(AWS::RDS::Formats::DESCRIBE_DB_SECURITY_GROUP) do
       body = Fog::AWS[:rds].describe_db_security_groups(@sec_group_name).body
       returns(2) { body['DescribeDBSecurityGroupsResult']['DBSecurityGroups'][0]['IPRanges'].size }
       body
     end
-    
+
     tests("#revoke_db_security_group_ingress CIDR").formats(AWS::RDS::Formats::REVOKE_DB_SECURITY_GROUP) do
       @cidr = '0.0.0.0/0'
       body = Fog::AWS[:rds].revoke_db_security_group_ingress(@sec_group_name,{'CIDRIP'=> @cidr}).body
-      returns("revoking") { body['RevokeDBSecurityGroupIngressResult']['DBSecurityGroup']['IPRanges'].detect{|h| h['CIDRIP'] == @cidr}['Status']}
+      returns("revoking") { body['RevokeDBSecurityGroupIngressResult']['DBSecurityGroup']['IPRanges'].find{|h| h['CIDRIP'] == @cidr}['Status']}
       body
     end
-    
+
     tests("#authorize_db_security_group_ingress EC2").formats(AWS::RDS::Formats::AUTHORIZE_DB_SECURITY_GROUP) do
       @ec2_sec_group = 'default'
       body = Fog::AWS[:rds].authorize_db_security_group_ingress(@sec_group_name,{'EC2SecurityGroupName' => @ec2_sec_group, 'EC2SecurityGroupOwnerId' => @owner_id}).body
-      
-      returns("authorizing") { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['EC2SecurityGroups'].detect{|h| h['EC2SecurityGroupName'] == @ec2_sec_group}['Status']}
-      returns(@owner_id) { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['EC2SecurityGroups'].detect{|h| h['EC2SecurityGroupName'] == @ec2_sec_group}['EC2SecurityGroupOwnerId']}
+
+      returns("authorizing") { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['EC2SecurityGroups'].find{|h| h['EC2SecurityGroupName'] == @ec2_sec_group}['Status']}
+      returns(@owner_id) { body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']['EC2SecurityGroups'].find{|h| h['EC2SecurityGroupName'] == @ec2_sec_group}['EC2SecurityGroupOwnerId']}
       body
     end
-    
+
     tests("duplicate #authorize_db_security_group_ingress EC2").raises(Fog::AWS::RDS::AuthorizationAlreadyExists) do
       @ec2_sec_group = 'default'
-      
+
       Fog::AWS[:rds].authorize_db_security_group_ingress(@sec_group_name,{'EC2SecurityGroupName' => @ec2_sec_group, 'EC2SecurityGroupOwnerId' => @owner_id})
     end
-    
+
     sec_group = Fog::AWS[:rds].security_groups.get(@sec_group_name)
     sec_group.wait_for {ready?}
-    
+
     tests("#revoke_db_security_group_ingress EC2").formats(AWS::RDS::Formats::REVOKE_DB_SECURITY_GROUP) do
       @ec2_sec_group = 'default'
-      
+
       body = Fog::AWS[:rds].revoke_db_security_group_ingress(@sec_group_name,{'EC2SecurityGroupName' => @ec2_sec_group, 'EC2SecurityGroupOwnerId' => @owner_id}).body
-      
-      returns("revoking") { body['RevokeDBSecurityGroupIngressResult']['DBSecurityGroup']['EC2SecurityGroups'].detect{|h| h['EC2SecurityGroupName'] == @ec2_sec_group}['Status']}
+
+      returns("revoking") { body['RevokeDBSecurityGroupIngressResult']['DBSecurityGroup']['EC2SecurityGroups'].find{|h| h['EC2SecurityGroupName'] == @ec2_sec_group}['Status']}
       body
     end
-    
-    
+
+
     #TODO, authorize ec2 security groups
-    
+
     tests("#delete_db_security_group").formats(AWS::RDS::Formats::BASIC) do
       body = Fog::AWS[:rds].delete_db_security_group(@sec_group_name).body
-      
+
       raises(Fog::AWS::RDS::NotFound) {Fog::AWS[:rds].describe_db_security_groups(@sec_group_name)}
 
       body
     end
   end
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/redshift/cluster_parameter_group_tests.rb b/tests/aws/requests/redshift/cluster_parameter_group_tests.rb
index d485db1..c7f4360 100644
--- a/tests/aws/requests/redshift/cluster_parameter_group_tests.rb
+++ b/tests/aws/requests/redshift/cluster_parameter_group_tests.rb
@@ -37,13 +37,12 @@ Shindo.tests('Fog::Redshift[:aws] | cluster parameter group requests', ['aws'])
 
   tests('success') do
     tests("create_cluster_parameter_group").formats(@cluster_parameter_group_format) do
-      body = Fog::AWS[:redshift].create_cluster_parameter_group(:parameter_group_name=> parameter_group, 
-                                                                :parameter_group_family=>"redshift-1.0", 
+      body = Fog::AWS[:redshift].create_cluster_parameter_group(:parameter_group_name=> parameter_group,
+                                                                :parameter_group_family=>"redshift-1.0",
                                                                 :description=>'testing').body
       body
     end
 
-
     tests("describe_cluster_parameter_groups").formats(@cluster_parameter_groups_format) do
       body = Fog::AWS[:redshift].describe_cluster_parameter_groups.body
       body
@@ -55,14 +54,14 @@ Shindo.tests('Fog::Redshift[:aws] | cluster parameter group requests', ['aws'])
     end
 
     tests("modify_cluster_parameter_groups").formats(@modify_cluster_parameter_group_format) do
-      body = Fog::AWS[:redshift].modify_cluster_parameter_group(:parameter_group_name=>parameter_group, 
+      body = Fog::AWS[:redshift].modify_cluster_parameter_group(:parameter_group_name=>parameter_group,
                                                                 :parameters=>{
                                                                    :parameter_name=>'extra_float_digits',
                                                                    :parameter_value=>2}).body
       body
     end
 
-    tests("delete_cluster_parameter_group") do 
+    tests("delete_cluster_parameter_group") do
       present = !Fog::AWS[:redshift].describe_cluster_parameter_groups(:parameter_group_name=>parameter_group).body['ParameterGroups'].empty?
       tests("verify presence before deletion").returns(true) { present }
 
diff --git a/tests/aws/requests/redshift/cluster_security_group_tests.rb b/tests/aws/requests/redshift/cluster_security_group_tests.rb
index 946cdd3..6982683 100644
--- a/tests/aws/requests/redshift/cluster_security_group_tests.rb
+++ b/tests/aws/requests/redshift/cluster_security_group_tests.rb
@@ -1,12 +1,12 @@
 Shindo.tests('Fog::Redshift[:aws] | cluster security group requests', ['aws']) do
   pending if Fog.mocking?
-  suffix     = rand(65536).to_s(16) 
+  suffix     = rand(65536).to_s(16)
   identifier = "test-cluster-security-group-#{suffix}"
 
   @cluster_security_group_format = {
     "ClusterSecurityGroup"  => {
-      "EC2SecurityGroups"        => Fog::Nullable::Array,             
-      "IPRanges"                 => Fog::Nullable::Array,             
+      "EC2SecurityGroups"        => Fog::Nullable::Array,
+      "IPRanges"                 => Fog::Nullable::Array,
       "Description"              => String,
       "ClusterSecurityGroupName" => String
     }
@@ -16,20 +16,18 @@ Shindo.tests('Fog::Redshift[:aws] | cluster security group requests', ['aws']) d
     "ClusterSecurityGroups" => [@cluster_security_group_format]
   }
 
-
   tests('success') do
     tests("create_cluster_security_group").formats(@cluster_security_group_format) do
       body = Fog::AWS[:redshift].create_cluster_security_group(:cluster_security_group_name => identifier, :description => 'testing').body
       body
     end
 
-
     tests("describe_cluster_security_groups").formats(@describe_cluster_security_groups_format) do
       body = Fog::AWS[:redshift].describe_cluster_security_groups.body
       body
     end
 
-    tests("delete_cluster_security_group") do 
+    tests("delete_cluster_security_group") do
       present = !Fog::AWS[:redshift].describe_cluster_security_groups(:cluster_security_group_name => identifier).body['ClusterSecurityGroups'].empty?
       tests("verify presence before deletion").returns(true) { present }
 
diff --git a/tests/aws/requests/redshift/cluster_snapshot_tests.rb b/tests/aws/requests/redshift/cluster_snapshot_tests.rb
index f40ba78..7365411 100644
--- a/tests/aws/requests/redshift/cluster_snapshot_tests.rb
+++ b/tests/aws/requests/redshift/cluster_snapshot_tests.rb
@@ -4,7 +4,7 @@ Shindo.tests('Fog::Redshift[:aws] | cluster snapshot requests', ['aws']) do
   identifier = "test-snapshot-#{suffix}"
   cluster    = "test-cluster-#{suffix}"
   start_time = Fog::Time.now.to_iso8601_basic
-  @cluster_snapshot_format = { 
+  @cluster_snapshot_format = {
     'Snapshot' => {
       "AccountsWithRestoreAccess"              => Fog::Nullable::Array,
       "Port"                                   => Integer,
@@ -35,39 +35,37 @@ Shindo.tests('Fog::Redshift[:aws] | cluster snapshot requests', ['aws']) do
     "Snapshots" => [@cluster_snapshot_format]
   }
 
-
   tests('success') do
     tests("create_cluster_snapshot").formats(@cluster_snapshot_format) do
-      Fog::AWS[:redshift].create_cluster(:cluster_identifier   => cluster, 
-                                         :master_user_password => 'Pass1234', 
-                                         :master_username      => 'testuser', 
-                                         :node_type            => 'dw.hs1.xlarge', 
+      Fog::AWS[:redshift].create_cluster(:cluster_identifier   => cluster,
+                                         :master_user_password => 'Pass1234',
+                                         :master_username      => 'testuser',
+                                         :node_type            => 'dw.hs1.xlarge',
                                          :cluster_type         => 'single-node')
       Fog.wait_for do
         "available" == Fog::AWS[:redshift].describe_clusters(:cluster_identifier=>cluster).body['ClusterSet'].first['Cluster']['ClusterStatus']
       end
-      body = Fog::AWS[:redshift].create_cluster_snapshot(:snapshot_identifier => identifier, 
+      body = Fog::AWS[:redshift].create_cluster_snapshot(:snapshot_identifier => identifier,
                                                          :cluster_identifier  => cluster).body
       body
     end
 
-
     tests('describe_cluster_snaphots').formats(@describe_cluster_snapshots_format) do
       sleep 30 unless Fog.mocking?
       body = Fog::AWS[:redshift].describe_cluster_snapshots(:start_time=>start_time).body
       body
     end
 
-    tests('delete_cluster_snapshot').formats(@cluster_snapshot_format) do 
+    tests('delete_cluster_snapshot').formats(@cluster_snapshot_format) do
       Fog.wait_for do
-        "available" == Fog::AWS[:redshift].describe_cluster_snapshots(:snapshot_identifier=>identifier).body['Snapshots'].first['Snapshot']['Status']        
+        "available" == Fog::AWS[:redshift].describe_cluster_snapshots(:snapshot_identifier=>identifier).body['Snapshots'].first['Snapshot']['Status']
       end
       sleep 30 unless Fog.mocking?
-      body = Fog::AWS[:redshift].delete_cluster_snapshot(:snapshot_identifier=>identifier).body      
+      body = Fog::AWS[:redshift].delete_cluster_snapshot(:snapshot_identifier=>identifier).body
       body
     end
 
-    Fog::AWS[:redshift].delete_cluster(:cluster_identifier          => cluster, 
+    Fog::AWS[:redshift].delete_cluster(:cluster_identifier          => cluster,
                                        :skip_final_cluster_snapshot => true)
 
   end
diff --git a/tests/aws/requests/redshift/cluster_tests.rb b/tests/aws/requests/redshift/cluster_tests.rb
index 640461f..27d1ded 100644
--- a/tests/aws/requests/redshift/cluster_tests.rb
+++ b/tests/aws/requests/redshift/cluster_tests.rb
@@ -3,7 +3,7 @@ Shindo.tests('Fog::Redshift[:aws] | cluster requests', ['aws']) do
   identifier = "test-cluster-#{rand(65536).to_s(16)}"
 
   @cluster_format = {
-    'Cluster' => { 
+    'Cluster' => {
       "ClusterParameterGroups"  => [{
         "ClusterParameterGroup" => {
           "ParameterApplyStatus"  => String,
@@ -17,7 +17,7 @@ Shindo.tests('Fog::Redshift[:aws] | cluster requests', ['aws']) do
         }
       }],
       "VpcSecurityGroups"     => Fog::Nullable::Array,
-      "EndPoint"              => Fog::Nullable::Hash, 
+      "EndPoint"              => Fog::Nullable::Hash,
       "PendingModifiedValues" => Fog::Nullable::Hash,
       "RestoreStatus"         => Fog::Nullable::Hash,
       "ClusterVersion"        => String,
@@ -37,15 +37,15 @@ Shindo.tests('Fog::Redshift[:aws] | cluster requests', ['aws']) do
   @describe_clusters_format = {
     "ClusterSet" => [{
       'Cluster' => @cluster_format['Cluster'].merge({"ClusterCreateTime"=>Time, "AvailabilityZone"=>String, "EndPoint"=>{"Port"=>Integer, "Address"=>String}})
-    }]      
+    }]
   }
 
   tests('success') do
     tests('create_cluster').formats(@cluster_format) do
-      body = Fog::AWS[:redshift].create_cluster(:cluster_identifier   => identifier, 
-                                                :master_user_password => 'Password1234', 
+      body = Fog::AWS[:redshift].create_cluster(:cluster_identifier   => identifier,
+                                                :master_user_password => 'Password1234',
                                                 :master_username      => 'testuser',
-                                                :node_type            => 'dw.hs1.xlarge', 
+                                                :node_type            => 'dw.hs1.xlarge',
                                                 :cluster_type         => 'single-node').body
       Fog.wait_for do
         "available" == Fog::AWS[:redshift].describe_clusters(:cluster_identifier=>identifier).body['ClusterSet'].first['Cluster']['ClusterStatus']
@@ -59,7 +59,6 @@ Shindo.tests('Fog::Redshift[:aws] | cluster requests', ['aws']) do
       body
     end
 
-
     tests('reboot_cluster') do
       sleep 30 unless Fog.mocking?
       body = Fog::AWS[:redshift].reboot_cluster(:cluster_identifier=>identifier).body
@@ -67,7 +66,6 @@ Shindo.tests('Fog::Redshift[:aws] | cluster requests', ['aws']) do
       body
     end
 
-
     tests('delete_cluster') do
       Fog.wait_for do
         "available" == Fog::AWS[:redshift].describe_clusters(:cluster_identifier=>identifier).body['ClusterSet'].first['Cluster']['ClusterStatus']
diff --git a/tests/aws/requests/ses/helper.rb b/tests/aws/requests/ses/helper.rb
index 8ebe694..b1bc5ba 100644
--- a/tests/aws/requests/ses/helper.rb
+++ b/tests/aws/requests/ses/helper.rb
@@ -1,15 +1,9 @@
 class AWS
-
   module SES
-
     module Formats
-
       BASIC = {
         'ResponseMetadata' => {'RequestId' => String}
       }
-
     end
-
   end
-
 end
diff --git a/tests/aws/requests/simpledb/helper.rb b/tests/aws/requests/simpledb/helper.rb
index 8c5d710..edb3799 100644
--- a/tests/aws/requests/simpledb/helper.rb
+++ b/tests/aws/requests/simpledb/helper.rb
@@ -1,16 +1,10 @@
 class AWS
-
   module SimpleDB
-
     module Formats
-
       BASIC = {
         'BoxUsage'  => Float,
         'RequestId' => String
       }
-
     end
-
   end
-
 end
diff --git a/tests/aws/requests/sqs/helper.rb b/tests/aws/requests/sqs/helper.rb
index 1e0d5d1..273e273 100644
--- a/tests/aws/requests/sqs/helper.rb
+++ b/tests/aws/requests/sqs/helper.rb
@@ -1,15 +1,9 @@
 class AWS
-
   module SQS
-
     module Formats
-
       BASIC = {
         'ResponseMetadata' => {'RequestId' => String}
       }
-
     end
-
   end
-
 end
diff --git a/tests/aws/requests/sqs/message_tests.rb b/tests/aws/requests/sqs/message_tests.rb
index 7584bf2..e8399e8 100644
--- a/tests/aws/requests/sqs/message_tests.rb
+++ b/tests/aws/requests/sqs/message_tests.rb
@@ -48,4 +48,4 @@ Shindo.tests('AWS::SQS | message requests', ['aws']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/sqs/queue_tests.rb b/tests/aws/requests/sqs/queue_tests.rb
index d06daa4..da2bab0 100644
--- a/tests/aws/requests/sqs/queue_tests.rb
+++ b/tests/aws/requests/sqs/queue_tests.rb
@@ -47,4 +47,4 @@ Shindo.tests('AWS::SQS | queue requests', ['aws']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/aws/requests/storage/bucket_tests.rb b/tests/aws/requests/storage/bucket_tests.rb
index 21e97a0..fd84196 100644
--- a/tests/aws/requests/storage/bucket_tests.rb
+++ b/tests/aws/requests/storage/bucket_tests.rb
@@ -54,7 +54,7 @@ Shindo.tests('Fog::Storage[:aws] | bucket requests', ["aws"]) do
       tests("#put_bucket('#{@aws_bucket_name}') existing").succeeds do
         Fog::Storage[:aws].put_bucket(@aws_bucket_name)
       end
-    end    
+    end
 
     tests("#get_service").formats(@service_format) do
       Fog::Storage[:aws].get_service.body
@@ -66,6 +66,10 @@ Shindo.tests('Fog::Storage[:aws] | bucket requests', ["aws"]) do
       Fog::Storage[:aws].get_bucket(@aws_bucket_name).body
     end
 
+    tests("#head_bucket('#{@aws_bucket_name}')").succeeds do
+      Fog::Storage[:aws].head_bucket(@aws_bucket_name)
+    end 
+
     file.destroy
 
     file1 = Fog::Storage[:aws].directories.get(@aws_bucket_name).files.create(:body => 'a',    :key => 'a/a1/file1')
diff --git a/tests/aws/requests/storage/versioning_tests.rb b/tests/aws/requests/storage/versioning_tests.rb
index 4b36d23..f6f455d 100644
--- a/tests/aws/requests/storage/versioning_tests.rb
+++ b/tests/aws/requests/storage/versioning_tests.rb
@@ -72,11 +72,11 @@ Shindo.tests('Fog::Storage[:aws] | versioning', ["aws"]) do
       v4 = Fog::Storage[:aws].directories.get(@aws_bucket_name).files.create(:body => 'abcd', :key => v1.key)
 
       tests("versions").returns([v4.version, v3.version, v2.version, v1.version]) do
-        @versions.body['Versions'].collect {|v| v['Version']['VersionId']}
+        @versions.body['Versions'].map {|v| v['Version']['VersionId']}
       end
 
       tests("version sizes").returns([4, 3, 2, 1]) do
-        @versions.body['Versions'].collect {|v| v['Version']['Size']}
+        @versions.body['Versions'].map {|v| v['Version']['Size']}
       end
 
       tests("latest version").returns(v4.version) do
@@ -116,7 +116,7 @@ Shindo.tests('Fog::Storage[:aws] | versioning', ["aws"]) do
       tests("deleting an object just stores a delete marker").returns(true) do
         file.destroy
         versions = Fog::Storage[:aws].get_bucket_object_versions(@aws_bucket_name)
-        versions.body['Versions'].first.has_key?('DeleteMarker')
+        versions.body['Versions'].first.key?('DeleteMarker')
       end
 
       tests("there are two versions: the original and the delete marker").returns(2) do
@@ -126,7 +126,7 @@ Shindo.tests('Fog::Storage[:aws] | versioning', ["aws"]) do
 
       tests("deleting the delete marker makes the object available again").returns(file.version) do
         versions = Fog::Storage[:aws].get_bucket_object_versions(@aws_bucket_name)
-        delete_marker = versions.body['Versions'].find { |v| v.has_key?('DeleteMarker') }
+        delete_marker = versions.body['Versions'].find { |v| v.key?('DeleteMarker') }
         Fog::Storage[:aws].delete_object(@aws_bucket_name, file.key, 'versionId' => delete_marker['DeleteMarker']['VersionId'])
 
         res = Fog::Storage[:aws].get_object(@aws_bucket_name, file.key)
@@ -157,10 +157,10 @@ Shindo.tests('Fog::Storage[:aws] | versioning', ["aws"]) do
         versions.body['Versions'].each do |version|
           object = version[version.keys.first]
           next if file_names.index(object['Key']).nil?
-          if !all_versions.has_key?(object['Key'])
-            all_versions[object['Key']] = version.has_key?('DeleteMarker')
+          if !all_versions.key?(object['Key'])
+            all_versions[object['Key']] = version.key?('DeleteMarker')
           else
-            all_versions[object['Key']] |= version.has_key?('DeleteMarker')
+            all_versions[object['Key']] |= version.key?('DeleteMarker')
           end
         end
         all_true = true
diff --git a/tests/aws/requests/sts/assume_role_tests.rb b/tests/aws/requests/sts/assume_role_tests.rb
index 3b8fa3e..cce659f 100644
--- a/tests/aws/requests/sts/assume_role_tests.rb
+++ b/tests/aws/requests/sts/assume_role_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests('AWS::STS | assume role', ['aws']) do
 		'Arn' => String,
 		'RequestId' => String
 	}
-	
+
 	tests("#assume_role('rolename', 'assumed_role_session', 'external_id', #{@policy.inspect}, 900)").formats(@response_format) do
 		pending if Fog.mocking?
 		Fog::AWS[:sts].assume_role("rolename","assumed_role_session","external_id", @policy, 900).body
diff --git a/tests/aws/requests/sts/get_federation_token_tests.rb b/tests/aws/requests/sts/get_federation_token_tests.rb
index 469569a..75673a2 100644
--- a/tests/aws/requests/sts/get_federation_token_tests.rb
+++ b/tests/aws/requests/sts/get_federation_token_tests.rb
@@ -16,5 +16,5 @@ Shindo.tests('AWS::STS | session tokens', ['aws']) do
 	tests("#get_federation_token('test at fog.io', #{@policy.inspect})").formats(@federation_format) do
 		Fog::AWS[:sts].get_federation_token("test at fog.io", @policy).body
 	end
-	
+
 end
diff --git a/tests/aws/requests/sts/session_token_tests.rb b/tests/aws/requests/sts/session_token_tests.rb
index ff52b8b..85a0678 100644
--- a/tests/aws/requests/sts/session_token_tests.rb
+++ b/tests/aws/requests/sts/session_token_tests.rb
@@ -12,5 +12,5 @@ Shindo.tests('AWS::STS | session tokens', ['aws']) do
 		pending if Fog.mocking?
 		Fog::AWS[:sts].get_session_token.body
 	end
-	
+
 end
diff --git a/tests/aws/signaturev4_tests.rb b/tests/aws/signaturev4_tests.rb
index ca43eb1..8734b4f 100644
--- a/tests/aws/signaturev4_tests.rb
+++ b/tests/aws/signaturev4_tests.rb
@@ -18,7 +18,7 @@ Shindo.tests('AWS | signaturev4', ['aws']) do
       'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=0dc122f3b28b831ab48ba65cb47300de53fbe91b577fe113edac383730254a3b'
     end
   end
-  
+
   tests('get-vanilla-query-order-key') do
     returns(@signer.sign({:query => {'a' => 'foo', 'b' => 'foo'}, :headers => {'Host' => 'host.foo.com', 'Date' => 'Mon, 09 Sep 2011 23:36:00 GMT'}, :method => :get, :path => '/'}, @now)) do
       'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=0dc122f3b28b831ab48ba65cb47300de53fbe91b577fe113edac383730254a3b'
diff --git a/tests/bluebox/requests/blb/lb_tests.rb b/tests/bluebox/requests/blb/lb_tests.rb
index eabc28c..473d2dc 100644
--- a/tests/bluebox/requests/blb/lb_tests.rb
+++ b/tests/bluebox/requests/blb/lb_tests.rb
@@ -2,7 +2,7 @@ require 'securerandom'
 
 Shindo.tests('Bluebox::BLB | lb_tests', ['bluebox']) do
   pending if Fog.mocking?
-  
+
   tests('success') do
     @flavor_id    = compute_providers[:bluebox][:server_attributes][:flavor_id]
     @image_id     = compute_providers[:bluebox][:server_attributes][:image_id]
diff --git a/tests/bluebox/requests/compute/helper.rb b/tests/bluebox/requests/compute/helper.rb
index 990929d..7452f8a 100644
--- a/tests/bluebox/requests/compute/helper.rb
+++ b/tests/bluebox/requests/compute/helper.rb
@@ -1,22 +1,16 @@
 class Bluebox
-
   module Compute
-
     module Formats
-
       PRODUCT = {
         'cost'        => String,
         'description' => String,
         'id'          => String
       },
-      
+
       LOCATION = {
         'id'          => String,
         'description' => String
       }
-
     end
-
   end
-
 end
diff --git a/tests/bluebox/requests/compute/location_tests.rb b/tests/bluebox/requests/compute/location_tests.rb
index ce4cbc9..b64cf01 100644
--- a/tests/bluebox/requests/compute/location_tests.rb
+++ b/tests/bluebox/requests/compute/location_tests.rb
@@ -1,10 +1,10 @@
 Shindo.tests('Fog::Compute[:bluebox] | location requests', ['bluebox']) do
-  
+
   @location_format = {
     'id'          => String,
     'description' => String
   }
-  
+
   tests('success') do
 
     @location_id  = compute_providers[:bluebox][:server_attributes][:location_id]
@@ -29,4 +29,4 @@ Shindo.tests('Fog::Compute[:bluebox] | location requests', ['bluebox']) do
     end
 
   end
-end
\ No newline at end of file
+end
diff --git a/tests/bluebox/requests/dns/dns_tests.rb b/tests/bluebox/requests/dns/dns_tests.rb
index 7ef7c7c..5318eb1 100644
--- a/tests/bluebox/requests/dns/dns_tests.rb
+++ b/tests/bluebox/requests/dns/dns_tests.rb
@@ -244,7 +244,6 @@ Shindo.tests('Fog::DNS[:bluebox] | DNS requests', ['bluebox', 'dns']) do
 
   end
 
-
   tests( 'failure') do
 
     #create a zone with invalid parameters
diff --git a/tests/brightbox/compute/schema.rb b/tests/brightbox/compute/schema.rb
index 27c1111..0d85e01 100644
--- a/tests/brightbox/compute/schema.rb
+++ b/tests/brightbox/compute/schema.rb
@@ -240,7 +240,6 @@ class Brightbox
           "email_address"   => String
         }
 
-
         COLLABORATION = {
           "id"              => String,
           "resource_type"   => String,
diff --git a/tests/brightbox/requests/compute/cloud_ip_tests.rb b/tests/brightbox/requests/compute/cloud_ip_tests.rb
index c0a274a..2c8885f 100644
--- a/tests/brightbox/requests/compute/cloud_ip_tests.rb
+++ b/tests/brightbox/requests/compute/cloud_ip_tests.rb
@@ -82,5 +82,4 @@ Shindo.tests('Fog::Compute[:brightbox] | cloud ip requests', ['brightbox']) do
 
   end
 
-
 end
diff --git a/tests/brightbox/requests/compute/collaboration_tests.rb b/tests/brightbox/requests/compute/collaboration_tests.rb
index b389615..bc60041 100644
--- a/tests/brightbox/requests/compute/collaboration_tests.rb
+++ b/tests/brightbox/requests/compute/collaboration_tests.rb
@@ -9,7 +9,6 @@ Shindo.tests('Fog::Compute[:brightbox] | collaboration requests', ['brightbox'])
       formats(Brightbox::Compute::Formats::Full::COLLABORATION, false) { collaboration }
     end
 
-
     tests("#list_collaborations") do
       pending if Fog.mocking?
       result = Fog::Compute[:brightbox].list_collaborations
@@ -23,7 +22,6 @@ Shindo.tests('Fog::Compute[:brightbox] | collaboration requests', ['brightbox'])
       formats(Brightbox::Compute::Formats::Full::COLLABORATION, false) { result }
     end
 
-
     tests("#destroy_collaboration") do
       pending if Fog.mocking?
       result = Fog::Compute[:brightbox].destroy_collaboration(@collaboration_id)
diff --git a/tests/brightbox/requests/compute/helper.rb b/tests/brightbox/requests/compute/helper.rb
index 3ab5485..9921057 100644
--- a/tests/brightbox/requests/compute/helper.rb
+++ b/tests/brightbox/requests/compute/helper.rb
@@ -30,7 +30,7 @@ class Brightbox
         server
       end
 
-    private
+      private
       def self.select_testing_image_from_api
         images = Fog::Compute[:brightbox].list_images
         raise "No available images!" if images.empty?
diff --git a/tests/clodo/requests/compute/server_tests.rb b/tests/clodo/requests/compute/server_tests.rb
index 814fc22..cc04553 100644
--- a/tests/clodo/requests/compute/server_tests.rb
+++ b/tests/clodo/requests/compute/server_tests.rb
@@ -95,7 +95,7 @@ Shindo.tests('Fog::Compute[:clodo] | server requests', ['clodo']) do
     # tests("- delete_ip_address(#{@server_id}, #{@additional_ip['ip']})").success do
     #   clodo.delete_ip_address(@server_id, @additional_ip['ip'])
     # end
-    
+
     tests("- stop_server(#{@server_id})").succeeds do
       clodo.stop_server(@server_id)
     end
diff --git a/tests/cloudsigma/models/server_tests.rb b/tests/cloudsigma/models/server_tests.rb
index cf91505..476e6b0 100644
--- a/tests/cloudsigma/models/server_tests.rb
+++ b/tests/cloudsigma/models/server_tests.rb
@@ -69,4 +69,4 @@ Shindo.tests('Fog::Compute[:cloudsigma] | server model', ['cloudsigma']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudsigma/models/volume_tests.rb b/tests/cloudsigma/models/volume_tests.rb
index 8f970dd..baebee2 100644
--- a/tests/cloudsigma/models/volume_tests.rb
+++ b/tests/cloudsigma/models/volume_tests.rb
@@ -18,4 +18,4 @@ Shindo.tests('Fog::Compute[:cloudsigma] | volume model', ['cloudsigma']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudsigma/models/volumes_tests.rb b/tests/cloudsigma/models/volumes_tests.rb
index 35903ff..fcf7bfd 100644
--- a/tests/cloudsigma/models/volumes_tests.rb
+++ b/tests/cloudsigma/models/volumes_tests.rb
@@ -6,4 +6,4 @@ Shindo.tests('Fog::Compute[:cloudsigma] | volumes collection', ['cloudsigma']) d
     @instance.wait_for(timeout=60) { status == 'unmounted' }
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudsigma/requests/server_tests.rb b/tests/cloudsigma/requests/server_tests.rb
index 7b803c0..6a99de0 100644
--- a/tests/cloudsigma/requests/server_tests.rb
+++ b/tests/cloudsigma/requests/server_tests.rb
@@ -50,22 +50,18 @@ Shindo.tests('Fog::Compute[:cloudsigma] | server requests', ['cloudsigma']) do
       response.body['result'] == "success"
     end
 
-
     server = Fog::Compute[:cloudsigma].servers.get(@server_uuid)
     server.wait_for { status == 'running' }
 
-
     tests("#stop_server(#@server_uuid)").succeeds do
       response = Fog::Compute[:cloudsigma].stop_server(@server_uuid)
 
       response.body['result'] == "success"
     end
 
-
     server = Fog::Compute[:cloudsigma].servers.get(@server_uuid)
     server.wait_for { status == 'stopped' }
 
-
     tests("#delete_server(#@server_uuid)").succeeds do
       resp = Fog::Compute[:cloudsigma].delete_server(@server_uuid)
 
diff --git a/tests/cloudsigma/requests/volumes_tests.rb b/tests/cloudsigma/requests/volumes_tests.rb
index c9e6df1..21c541c 100644
--- a/tests/cloudsigma/requests/volumes_tests.rb
+++ b/tests/cloudsigma/requests/volumes_tests.rb
@@ -52,4 +52,4 @@ Shindo.tests('Fog::Compute[:cloudsigma] | volume requests', ['cloudsigma']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/compute/models/security_group_rule_tests.rb b/tests/cloudstack/compute/models/security_group_rule_tests.rb
index 1e5e712..e715f16 100644
--- a/tests/cloudstack/compute/models/security_group_rule_tests.rb
+++ b/tests/cloudstack/compute/models/security_group_rule_tests.rb
@@ -21,7 +21,6 @@ Shindo.tests("Fog::Compute[:#{provider}] | security_group_rules | ingress", [pro
 
 end
 
-
 Shindo.tests("Fog::Compute[:#{provider}] | security_group_rules | egress", [provider.to_s]) do
 
   security_group_rule_tests(Fog::Compute[:cloudstack], config, "egress", config[:mocked])
diff --git a/tests/cloudstack/compute/models/security_groups_tests.rb b/tests/cloudstack/compute/models/security_groups_tests.rb
index c8a9a67..132ea9b 100644
--- a/tests/cloudstack/compute/models/security_groups_tests.rb
+++ b/tests/cloudstack/compute/models/security_groups_tests.rb
@@ -10,7 +10,6 @@ def security_group_tests(provider, params, mocks_implemented = true)
 	end
 end
 
-
 provider, config = :cloudstack, compute_providers[:cloudstack]
 Shindo.tests("Fog::Compute[:#{provider}] | security_group", [provider.to_s]) do
 
diff --git a/tests/cloudstack/compute/models/volumes_tests.rb b/tests/cloudstack/compute/models/volumes_tests.rb
index c293214..7af3935 100644
--- a/tests/cloudstack/compute/models/volumes_tests.rb
+++ b/tests/cloudstack/compute/models/volumes_tests.rb
@@ -1,5 +1,4 @@
 def volumes_tests(connection, params = {}, mocks_implemented = true)
-
   collection_tests(connection.volumes, params, mocks_implemented) do
 
     if !Fog.mocking? || mocks_implemented
@@ -7,7 +6,6 @@ def volumes_tests(connection, params = {}, mocks_implemented = true)
     end
 
   end
-
 end
 
 config = compute_providers[:cloudstack]
diff --git a/tests/cloudstack/requests/disk_offering_tests.rb b/tests/cloudstack/requests/disk_offering_tests.rb
index d4802e8..1212991 100644
--- a/tests/cloudstack/requests/disk_offering_tests.rb
+++ b/tests/cloudstack/requests/disk_offering_tests.rb
@@ -26,4 +26,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | disk offering requests', ['cloudstack'
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/requests/os_type_tests.rb b/tests/cloudstack/requests/os_type_tests.rb
index 514b695..e36533e 100644
--- a/tests/cloudstack/requests/os_type_tests.rb
+++ b/tests/cloudstack/requests/os_type_tests.rb
@@ -26,7 +26,7 @@ Shindo.tests('Fog::Compute[:cloudstack] | os type requests', ['cloudstack']) do
     tests('#list_os_types').formats(@os_types_format) do
       Fog::Compute[:cloudstack].list_os_types
     end
-    
+
     tests('#list_os_categories').formats(@os_categories_format) do
       pending if Fog.mocking?
       Fog::Compute[:cloudstack].list_os_categories
@@ -34,4 +34,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | os type requests', ['cloudstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/requests/security_group_tests.rb b/tests/cloudstack/requests/security_group_tests.rb
index 9f8f961..bd20daa 100644
--- a/tests/cloudstack/requests/security_group_tests.rb
+++ b/tests/cloudstack/requests/security_group_tests.rb
@@ -26,4 +26,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | security group requests', ['cloudstack
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/requests/service_offering_tests.rb b/tests/cloudstack/requests/service_offering_tests.rb
index 01360b9..6262ab2 100644
--- a/tests/cloudstack/requests/service_offering_tests.rb
+++ b/tests/cloudstack/requests/service_offering_tests.rb
@@ -35,4 +35,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | service offering requests', ['cloudsta
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/requests/snapshot_tests.rb b/tests/cloudstack/requests/snapshot_tests.rb
index 4cae8a2..dd0796c 100644
--- a/tests/cloudstack/requests/snapshot_tests.rb
+++ b/tests/cloudstack/requests/snapshot_tests.rb
@@ -29,4 +29,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | snapshot requests', ['cloudstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/requests/ssh_key_pair_tests.rb b/tests/cloudstack/requests/ssh_key_pair_tests.rb
index 63e5a9d..2bfbe62 100644
--- a/tests/cloudstack/requests/ssh_key_pair_tests.rb
+++ b/tests/cloudstack/requests/ssh_key_pair_tests.rb
@@ -20,4 +20,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | ssh key pairs requests', ['cloudstack'
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/cloudstack/requests/template_tests.rb b/tests/cloudstack/requests/template_tests.rb
index 758c2b9..4ce2904 100644
--- a/tests/cloudstack/requests/template_tests.rb
+++ b/tests/cloudstack/requests/template_tests.rb
@@ -28,7 +28,7 @@ Shindo.tests('Fog::Compute[:cloudstack] | template requests', ['cloudstack']) do
         'isextractable' => Fog::Boolean,
         'checksum' => Fog::Nullable::String,
         'sourcetemplateid' => Fog::Nullable::Integer,
-        'accountid' => Fog::Nullable::Integer,        
+        'accountid' => Fog::Nullable::Integer,
         'bootable' => Fog::Nullable::Boolean,
         'hostid' => Fog::Nullable::Integer,
         'hostname' => Fog::Nullable::String,
@@ -50,4 +50,4 @@ Shindo.tests('Fog::Compute[:cloudstack] | template requests', ['cloudstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/core/attribute_tests.rb b/tests/core/attribute_tests.rb
index 63fd5e5..7ec97bd 100644
--- a/tests/core/attribute_tests.rb
+++ b/tests/core/attribute_tests.rb
@@ -62,7 +62,7 @@ Shindo.tests('Fog::Attributes', 'core') do
       @model.merge_attributes(:bool => true)
       @model.bool
     end
-    
+
     tests(':bool => "false"').returns(false) do
       @model.merge_attributes(:bool => 'false')
       @model.bool
@@ -77,7 +77,7 @@ Shindo.tests('Fog::Attributes', 'core') do
       @model.merge_attributes(:bool => "foo")
       @model.bool
     end
-  
+
   end
 
 end
diff --git a/tests/core/mocking_tests.rb b/tests/core/mocking_tests.rb
index f9b5382..19cb685 100644
--- a/tests/core/mocking_tests.rb
+++ b/tests/core/mocking_tests.rb
@@ -71,5 +71,5 @@ Shindo.tests('Fog mocking', 'core') do
     Fog::Mock.not_implemented
   end
 
-  
+
 end
diff --git a/tests/core/parser_tests.rb b/tests/core/parser_tests.rb
index ddb0767..e8a5016 100644
--- a/tests/core/parser_tests.rb
+++ b/tests/core/parser_tests.rb
@@ -20,7 +20,6 @@ Shindo.tests('Fog::Parsers', 'core') do
       when 'id'
         @my_array << value.to_i
       end
-
     end
   end
 
diff --git a/tests/core/service_tests.rb b/tests/core/service_tests.rb
index 7c5f0ba..d6b9323 100644
--- a/tests/core/service_tests.rb
+++ b/tests/core/service_tests.rb
@@ -23,4 +23,4 @@ Shindo.tests('Fog::Service', ['core']) do
     returns('User-Agent' => user_agent) { service.options[:connection_options][:headers] }
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/core/uuid_tests.rb b/tests/core/uuid_tests.rb
index d4dbe1a..b86e599 100644
--- a/tests/core/uuid_tests.rb
+++ b/tests/core/uuid_tests.rb
@@ -7,4 +7,4 @@ Shindo.tests('Fog::UUID', 'core') do
   tests('success').succeeds do
     Fog::UUID.uuid =~ /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
   end
-end
\ No newline at end of file
+end
diff --git a/tests/core/wait_for_tests.rb b/tests/core/wait_for_tests.rb
index 1259b1c..102f325 100644
--- a/tests/core/wait_for_tests.rb
+++ b/tests/core/wait_for_tests.rb
@@ -4,7 +4,7 @@ Shindo.tests('Fog#wait_for', 'core') do
       Fog.wait_for(1) { true }
     end
   end
-  
+
   tests("failure") do
     tests('Fog#wait_for').raises(Fog::Errors::TimeoutError) do
       Fog.wait_for(2) { false }
diff --git a/tests/digitalocean/models/compute/flavor_tests.rb b/tests/digitalocean/models/compute/flavor_tests.rb
index 4c29276..322c94c 100644
--- a/tests/digitalocean/models/compute/flavor_tests.rb
+++ b/tests/digitalocean/models/compute/flavor_tests.rb
@@ -20,11 +20,10 @@ Shindo.tests("Fog::Compute[:digitalocean] | flavor model", ['digitalocean', 'com
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
   end
 
 end
-
diff --git a/tests/digitalocean/models/compute/image_tests.rb b/tests/digitalocean/models/compute/image_tests.rb
index 8707cd9..fc1606d 100644
--- a/tests/digitalocean/models/compute/image_tests.rb
+++ b/tests/digitalocean/models/compute/image_tests.rb
@@ -21,11 +21,10 @@ Shindo.tests("Fog::Compute[:digitalocean] | image model", ['digitalocean', 'comp
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
   end
 
 end
-
diff --git a/tests/digitalocean/models/compute/region_tests.rb b/tests/digitalocean/models/compute/region_tests.rb
index 1a9dc0c..5cb3ee7 100644
--- a/tests/digitalocean/models/compute/region_tests.rb
+++ b/tests/digitalocean/models/compute/region_tests.rb
@@ -20,11 +20,10 @@ Shindo.tests("Fog::Compute[:digitalocean] | region model", ['digitalocean', 'com
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
   end
 
 end
-
diff --git a/tests/digitalocean/models/compute/server_tests.rb b/tests/digitalocean/models/compute/server_tests.rb
index 63ec809..ff5d144 100644
--- a/tests/digitalocean/models/compute/server_tests.rb
+++ b/tests/digitalocean/models/compute/server_tests.rb
@@ -91,4 +91,3 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
   server.wait_for { ready? }
 
 end
-
diff --git a/tests/digitalocean/models/compute/ssh_key_tests.rb b/tests/digitalocean/models/compute/ssh_key_tests.rb
index c2753f5..e3a259b 100644
--- a/tests/digitalocean/models/compute/ssh_key_tests.rb
+++ b/tests/digitalocean/models/compute/ssh_key_tests.rb
@@ -41,4 +41,3 @@ Shindo.tests("Fog::Compute[:digitalocean] | ssh_key model", ['digitalocean', 'co
   end
 
 end
-
diff --git a/tests/digitalocean/requests/compute/create_ssh_key_tests.rb b/tests/digitalocean/requests/compute/create_ssh_key_tests.rb
index 74a098f..f92aec1 100644
--- a/tests/digitalocean/requests/compute/create_ssh_key_tests.rb
+++ b/tests/digitalocean/requests/compute/create_ssh_key_tests.rb
@@ -14,7 +14,7 @@ Shindo.tests('Fog::Compute[:digitalocean] | create_ssh_key request', ['digitaloc
       @key = Fog::Compute[:digitalocean].create_ssh_key 'fookey', 'fookey'
       @key.body
     end
-    
+
   end
 
   service.destroy_ssh_key @key.body['ssh_key']['id']
diff --git a/tests/digitalocean/requests/compute/destroy_ssh_key_tests.rb b/tests/digitalocean/requests/compute/destroy_ssh_key_tests.rb
index 7e0388a..7084a42 100644
--- a/tests/digitalocean/requests/compute/destroy_ssh_key_tests.rb
+++ b/tests/digitalocean/requests/compute/destroy_ssh_key_tests.rb
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Compute[:digitalocean] | destroy_ssh_key request', ['digitalo
       key = service.create_ssh_key 'fookey', 'fookey'
       service.destroy_ssh_key(key.body['ssh_key']['id']).body['status'] == 'OK'
     end
-    
+
   end
 
   tests('failures') do
@@ -18,6 +18,6 @@ Shindo.tests('Fog::Compute[:digitalocean] | destroy_ssh_key request', ['digitalo
       pending unless Fog.mocking?
       service.destroy_ssh_key('00000000000').body['status'] == 'ERROR'
     end
-  end 
+  end
 
 end
diff --git a/tests/digitalocean/requests/compute/list_servers_tests.rb b/tests/digitalocean/requests/compute/list_servers_tests.rb
index 9e520ff..4e847a2 100644
--- a/tests/digitalocean/requests/compute/list_servers_tests.rb
+++ b/tests/digitalocean/requests/compute/list_servers_tests.rb
@@ -1,5 +1,5 @@
 Shindo.tests('Fog::Compute[:digitalocean] | list_servers request', ['digitalocean', 'compute']) do
-  
+
   @server_format = {
     'id'             => Integer,
     'name'           => String,
diff --git a/tests/digitalocean/requests/compute/power_cycle_server_tests.rb b/tests/digitalocean/requests/compute/power_cycle_server_tests.rb
index e393be2..93a2e2d 100644
--- a/tests/digitalocean/requests/compute/power_cycle_server_tests.rb
+++ b/tests/digitalocean/requests/compute/power_cycle_server_tests.rb
@@ -13,8 +13,8 @@ Shindo.tests('Fog::Compute[:digitalocean] | power_cycle_server request', ['digit
         server.state == 'off'
       end
     end
-    
+
   end
-      
+
 
 end
diff --git a/tests/digitalocean/requests/compute/power_state_tests.rb b/tests/digitalocean/requests/compute/power_state_tests.rb
index c8555b0..aec88c6 100644
--- a/tests/digitalocean/requests/compute/power_state_tests.rb
+++ b/tests/digitalocean/requests/compute/power_state_tests.rb
@@ -1,4 +1,4 @@
-Shindo.tests('Fog::Compute[:digitalocean] | power on/off/shutdown requests', 
+Shindo.tests('Fog::Compute[:digitalocean] | power on/off/shutdown requests',
              ['digitalocean', 'compute']) do
 
   service = Fog::Compute[:digitalocean]
@@ -13,11 +13,11 @@ Shindo.tests('Fog::Compute[:digitalocean] | power on/off/shutdown requests',
     test('#power_on_server') do
       service.power_on_server(server.id).body['status'] == 'OK'
     end
-    
+
     test('#shutdown_server') do
       service.shutdown_server(server.id).body['status'] == 'OK'
     end
-    
+
     server.start
 
   end
diff --git a/tests/digitalocean/requests/compute/reboot_server_tests.rb b/tests/digitalocean/requests/compute/reboot_server_tests.rb
index 6b8ec76..1de4f68 100644
--- a/tests/digitalocean/requests/compute/reboot_server_tests.rb
+++ b/tests/digitalocean/requests/compute/reboot_server_tests.rb
@@ -7,8 +7,8 @@ Shindo.tests('Fog::Compute[:digitalocean] | reboot_server request', ['digitaloce
     tests('#reboot_server').succeeds do
       service.reboot_server(server.id).body['status'] == 'OK'
     end
-    
+
   end
-      
+
 
 end
diff --git a/tests/dreamhost/dns_tests.rb b/tests/dreamhost/dns_tests.rb
index 60c8cd5..ac5c63c 100644
--- a/tests/dreamhost/dns_tests.rb
+++ b/tests/dreamhost/dns_tests.rb
@@ -9,7 +9,7 @@ Shindo.tests('Fog::DNS[:dreamhost]', ['dreamhost', 'dns']) do
       test("it should respond to #{collection}.get") { eval("service.#{collection}").respond_to? 'get' }
     end
   end
-  
+
   tests("requests") do
     %w{ list_records create_record delete_record }.each do |request|
       test("it should respond to #{request}") { service.respond_to? request }
@@ -17,4 +17,3 @@ Shindo.tests('Fog::DNS[:dreamhost]', ['dreamhost', 'dns']) do
   end
 
 end
-
diff --git a/tests/dreamhost/helper.rb b/tests/dreamhost/helper.rb
index d47fc08..e22213e 100644
--- a/tests/dreamhost/helper.rb
+++ b/tests/dreamhost/helper.rb
@@ -2,7 +2,7 @@ def test_domain
   'fog-dream.com'
 end
 
-def do_not_delete_record 
+def do_not_delete_record
   "do-not-delete.#{test_domain}"
 end
 
diff --git a/tests/dreamhost/models/dns/record_tests.rb b/tests/dreamhost/models/dns/record_tests.rb
index 00e3e1c..ba89a88 100644
--- a/tests/dreamhost/models/dns/record_tests.rb
+++ b/tests/dreamhost/models/dns/record_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests("Fog::DNS[:dreamhost] | record", ['dreamhost', 'dns']) do
   tests('#attributes') do
     tests('should have') do
       model_attribute_hash = record.attributes
-      attributes = [ 
+      attributes = [
         :name,
         :value,
         :zone,
@@ -19,7 +19,7 @@ Shindo.tests("Fog::DNS[:dreamhost] | record", ['dreamhost', 'dns']) do
         test("#{attribute} method") { record.respond_to? attribute }
       end
       attributes.each do |attribute|
-        test("#{attribute} key") { model_attribute_hash.has_key? attribute }
+        test("#{attribute} key") { model_attribute_hash.key? attribute }
       end
     end
 
@@ -33,9 +33,9 @@ Shindo.tests("Fog::DNS[:dreamhost] | record", ['dreamhost', 'dns']) do
                                  :type  => 'A',
                                  :value => "8.8.8.8"
       sleep 10
-      tests('#save') do 
+      tests('#save') do
         test('returns Fog::DNS::Dreamhost::Record') do
-          r.is_a? Fog::DNS::Dreamhost::Record 
+          r.is_a? Fog::DNS::Dreamhost::Record
         end
         test('value is 8.8.8.8') do
           r.value == '8.8.8.8'
@@ -70,4 +70,3 @@ Shindo.tests("Fog::DNS[:dreamhost] | record", ['dreamhost', 'dns']) do
   cleanup_records
 
 end
-
diff --git a/tests/dreamhost/models/dns/records_tests.rb b/tests/dreamhost/models/dns/records_tests.rb
index 3573e87..af82b30 100644
--- a/tests/dreamhost/models/dns/records_tests.rb
+++ b/tests/dreamhost/models/dns/records_tests.rb
@@ -1,14 +1,14 @@
 Shindo.tests("Fog::DNS[:dreamhost] | records", ['dreamhost', 'dns']) do
 
   service = Fog::DNS[:dreamhost]
-  
+
   tests('#all') do
     records = service.records
 
     test('should be an array') { records.is_a? Array }
 
     test('should not be empty') { !records.empty? }
-    
+
     tests('should list Fog::DNS::Dreamhost::Record') do
       records.each do |r|
         test("as records") { r.is_a?(Fog::DNS::Dreamhost::Record) }
@@ -26,4 +26,3 @@ Shindo.tests("Fog::DNS[:dreamhost] | records", ['dreamhost', 'dns']) do
   end
 
 end
-
diff --git a/tests/dreamhost/models/dns/zone_tests.rb b/tests/dreamhost/models/dns/zone_tests.rb
index 2df835a..e15a142 100644
--- a/tests/dreamhost/models/dns/zone_tests.rb
+++ b/tests/dreamhost/models/dns/zone_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests("Fog::DNS[:dreamhost] | zone", ['dreamhost', 'dns']) do
   tests('#attributes') do
     tests('should have') do
       model_attribute_hash = zone.attributes
-      attributes = [ 
+      attributes = [
         :domain,
         :id,
       ]
@@ -14,7 +14,7 @@ Shindo.tests("Fog::DNS[:dreamhost] | zone", ['dreamhost', 'dns']) do
         test("#{attribute} method") { zone.respond_to? attribute }
       end
       attributes.each do |attribute|
-        test("#{attribute} key") { model_attribute_hash.has_key? attribute }
+        test("#{attribute} key") { model_attribute_hash.key? attribute }
       end
     end
 
@@ -24,7 +24,7 @@ Shindo.tests("Fog::DNS[:dreamhost] | zone", ['dreamhost', 'dns']) do
 
     tests('Write operations') do
       name = "#{test_domain}"
-      tests('#save') do 
+      tests('#save') do
         # Does not capture the exception for some reason
         #raises(NotImplementedError, 'raises NotImplementedError') do
         #  service.zones.create :domain => name
@@ -59,4 +59,3 @@ Shindo.tests("Fog::DNS[:dreamhost] | zone", ['dreamhost', 'dns']) do
   end
 
 end
-
diff --git a/tests/dreamhost/models/dns/zones_tests.rb b/tests/dreamhost/models/dns/zones_tests.rb
index 3ea0565..ee525b4 100644
--- a/tests/dreamhost/models/dns/zones_tests.rb
+++ b/tests/dreamhost/models/dns/zones_tests.rb
@@ -1,14 +1,14 @@
 Shindo.tests("Fog::DNS[:dreamhost] | Zones Collection", ['dreamhost', 'dns']) do
 
   service = Fog::DNS[:dreamhost]
-  
+
   tests('#all') do
     zones = service.zones
 
     test('should be an array') { zones.is_a? Array }
 
     test('should not be empty') { !zones.empty? }
-    
+
     tests('should list Fog::DNS::Dreamhost::Zone') do
       zones.each do |r|
         test("as zone") { r.is_a?(Fog::DNS::Dreamhost::Zone) }
@@ -18,7 +18,7 @@ Shindo.tests("Fog::DNS[:dreamhost] | Zones Collection", ['dreamhost', 'dns']) do
 
   tests('#get') do
     tests('should fetch a zone') do
-      zone = service.zones.get test_domain 
+      zone = service.zones.get test_domain
       test('should be a Fog::DNS::Dreamhost::Zone') do
         zone.is_a? Fog::DNS::Dreamhost::Zone
       end
@@ -26,4 +26,3 @@ Shindo.tests("Fog::DNS[:dreamhost] | Zones Collection", ['dreamhost', 'dns']) do
   end
 
 end
-
diff --git a/tests/dreamhost/requests/dns/create_record_tests.rb b/tests/dreamhost/requests/dns/create_record_tests.rb
index ab15f25..b97d151 100644
--- a/tests/dreamhost/requests/dns/create_record_tests.rb
+++ b/tests/dreamhost/requests/dns/create_record_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::DNS[:dreamhost] | create_record request', ['dreamhost', 'dns']) do
 
   tests("success") do
-    
+
     test("create an A resource record without comment") do
       name = "foo.testing.#{test_domain}"
       type = "A"
@@ -10,14 +10,14 @@ Shindo.tests('Fog::DNS[:dreamhost] | create_record request', ['dreamhost', 'dns'
 
       response.body['result'] == 'success'
     end
-    
+
     test("create an A resource record with comment") do
       name = "foo2.testing.#{test_domain}"
       type = "A"
       value = "1.2.3.4"
       comment = "test"
       response = Fog::DNS[:dreamhost].create_record(name, type, value, comment)
-      
+
       response.body['result'] == 'success'
     end
 
@@ -27,7 +27,7 @@ Shindo.tests('Fog::DNS[:dreamhost] | create_record request', ['dreamhost', 'dns'
       value = "foobar"
       comment = "test"
       response = Fog::DNS[:dreamhost].create_record(name, type, value, comment)
-      
+
       response.body['result'] == 'success'
     end
 
diff --git a/tests/dreamhost/requests/dns/delete_record_tests.rb b/tests/dreamhost/requests/dns/delete_record_tests.rb
index 0f8b82a..2b216a8 100644
--- a/tests/dreamhost/requests/dns/delete_record_tests.rb
+++ b/tests/dreamhost/requests/dns/delete_record_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::DNS[:dreamhost] | delete_record request', ['dreamhost', 'dns']) do
 
   tests("success") do
-    
+
     test("delete testing records") do
       name = "delete-test.#{test_domain}"
       type = "A"
diff --git a/tests/dreamhost/requests/dns/list_records_tests.rb b/tests/dreamhost/requests/dns/list_records_tests.rb
index 0c48270..32025cb 100644
--- a/tests/dreamhost/requests/dns/list_records_tests.rb
+++ b/tests/dreamhost/requests/dns/list_records_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::DNS[:dreamhost] | list_records request', ['dreamhost', 'dns']) do
 
   tests("success") do
-    
+
     response = Fog::DNS[:dreamhost].list_records
 
     test("should return 200") do
@@ -22,7 +22,7 @@ Shindo.tests('Fog::DNS[:dreamhost] | list_records request', ['dreamhost', 'dns']
         end
       end
     end
-    
+
   end
 
   # helper
diff --git a/tests/ecloud/compute/models/internet_service_tests.rb b/tests/ecloud/compute/models/internet_service_tests.rb
index a965388..cee9131 100644
--- a/tests/ecloud/compute/models/internet_service_tests.rb
+++ b/tests/ecloud/compute/models/internet_service_tests.rb
@@ -3,9 +3,9 @@ provider, config = :ecloud, compute_providers[:ecloud]
 Shindo.tests("Fog::Compute[:#{provider}] | internet_services", [provider.to_s, "queries"]) do
   connection    = Fog::Compute[provider]
   organization = connection.organizations.first
-  environment  = organization.environments.detect { |e| e.name == config[:ecloud_environment_name] } || organization.environments.first
+  environment  = organization.environments.find { |e| e.name == config[:ecloud_environment_name] } || organization.environments.first
   public_ips   = environment.public_ips
-  public_ip    = public_ips.detect { |i| i.name == config[:ecloud_public_ip_name] } || public_ips.first
+  public_ip    = public_ips.find { |i| i.name == config[:ecloud_public_ip_name] } || public_ips.first
   @internet_services = public_ip.internet_services
 
   tests('#all').succeeds do
diff --git a/tests/ecloud/compute/models/server_tests.rb b/tests/ecloud/compute/models/server_tests.rb
index 228c14f..501bb3e 100644
--- a/tests/ecloud/compute/models/server_tests.rb
+++ b/tests/ecloud/compute/models/server_tests.rb
@@ -8,7 +8,7 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
   public_ip    = environment.public_ips.first
   compute_pool = environment.compute_pools.first
   image_href   = Fog.credentials[:ecloud_image_href] || compute_pool.templates.first.href
-  ssh_key      = organization.admin.ssh_keys.detect { |key| key.name == "root" } || organization.admin.ssh_keys.first
+  ssh_key      = organization.admin.ssh_keys.find { |key| key.name == "root" } || organization.admin.ssh_keys.first
 
   @network = environment.networks.first
   options  = config[:server_attributes].merge(:network_uri => @network.href, :ssh_key_uri => ssh_key.href)
@@ -25,11 +25,11 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
   @server = compute_pool.servers.get(vm_uri)
 
   tests('#environment_has_a_row_and_group_with_the_right_names').succeeds do
-    row = environment.rows.detect { |r| r.name == options[:row] }
+    row = environment.rows.find { |r| r.name == options[:row] }
     returns(false, "row is not nil") { row.nil? }
-    group = row.groups.detect { |g| g.name == options[:group] }
+    group = row.groups.find { |g| g.name == options[:group] }
     returns(false, "group is not nil") { group.nil? }
-    server = group.servers.detect { |s| s.name == options[:name] }
+    server = group.servers.find { |s| s.name == options[:name] }
     returns(false, "group has server") { server.nil? }
   end
 
@@ -57,7 +57,7 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
     @server.delete_disk(1)
   end
 
-  @ip = @network.ips.reload.detect { |i| i.host.nil? && i.detected_on.nil? }
+  @ip = @network.ips.reload.find { |i| i.host.nil? && i.detected_on.nil? }
   tests('#add_ip_to_server').succeeds do
     @server.add_ip(:href => @network.href, :network_name => @network.name, :ip => @ip.name)
   end
@@ -74,7 +74,7 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
   @service = public_ip.internet_services.first
 
   @ip_address = @server.ips.first
-  @ip         = @server.ips.first.network.ips.detect { |i| i.name == @ip_address.address.name }
+  @ip         = @server.ips.first.network.ips.find { |i| i.name == @ip_address.address.name }
   @node       = @service.nodes.create(:name => @server.name, :port => service_port, :ip_address => @ip.href, :description => "", :enabled => true)
   tests('#create_node_service').succeeds do
     returns(true, "is a node server") { @node.is_a?(Fog::Compute::Ecloud::Node) }
@@ -103,8 +103,8 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
     returns(true, "server count is reduced") { @new_server_count < @server_count }
   end
 
-  @row = environment.rows.detect { |r| r.name == options[:row] }
-  @group = @row.groups.detect { |g| g.name == options[:group] }
+  @row = environment.rows.find { |r| r.name == options[:row] }
+  @group = @row.groups.find { |g| g.name == options[:group] }
   if @group.servers.empty?
     tests('#delete_group').succeeds do
       @group.destroy
@@ -127,7 +127,7 @@ Shindo.tests("Fog::Compute[:#{provider}] | server", [provider.to_s, "attributes"
   public_ip    = environment.public_ips.first
   compute_pool = environment.compute_pools.first
   image_href   = Fog.credentials[:ecloud_image_href] || compute_pool.templates.first.href
-  ssh_key      = organization.admin.ssh_keys.detect { |key| key.name == "root" }
+  ssh_key      = organization.admin.ssh_keys.find { |key| key.name == "root" }
 
   @network = environment.networks.first
   options = config[:server_attributes].merge(:network_uri => @network.href, :ssh_key_uri => ssh_key.href)
diff --git a/tests/fogdocker/models/compute/image_tests.rb b/tests/fogdocker/models/compute/image_tests.rb
index fcbbe0b..cf2ccab 100644
--- a/tests/fogdocker/models/compute/image_tests.rb
+++ b/tests/fogdocker/models/compute/image_tests.rb
@@ -21,7 +21,7 @@ Shindo.tests('Fog::Compute[:fogdocker] | image model', ['fogdocker']) do
       end
       tests("The attributes hash should have key") do
         (attributes-[:repo_tags]).each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/fogdocker/models/compute/server_tests.rb b/tests/fogdocker/models/compute/server_tests.rb
index 5f36de8..59ce227 100644
--- a/tests/fogdocker/models/compute/server_tests.rb
+++ b/tests/fogdocker/models/compute/server_tests.rb
@@ -36,7 +36,7 @@ Shindo.tests('Fog::Compute[:fogdocker] | server model', ['fogdocker']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/fogdocker/requests/compute/container_action_tests.rb b/tests/fogdocker/requests/compute/container_action_tests.rb
index 5ffec3e..86adecd 100644
--- a/tests/fogdocker/requests/compute/container_action_tests.rb
+++ b/tests/fogdocker/requests/compute/container_action_tests.rb
@@ -5,7 +5,6 @@ Shindo.tests("Fog::Compute[:fogdocker] | container_action request", 'fogdocker')
   response = compute.container_create(:name => name, 'image' => 'mattdm/fedora:f19','Cmd' => ['date'] )
   id = response['id']
 
-
   tests("Start Container") do
     response = compute.container_action(:id => id, :action => 'start' )
     test("should be a kind of Hash") { response.kind_of?  Hash}
diff --git a/tests/fogdocker/requests/compute/container_commit_tests.rb b/tests/fogdocker/requests/compute/container_commit_tests.rb
index 19f2494..dcd440b 100644
--- a/tests/fogdocker/requests/compute/container_commit_tests.rb
+++ b/tests/fogdocker/requests/compute/container_commit_tests.rb
@@ -15,5 +15,4 @@ Shindo.tests("Fog::Compute[:fogdocker] | container_create request", 'fogdocker')
     test("should have a deleted message") {result.include?('Deleted')}
   end
 
-
 end
diff --git a/tests/glesys/requests/compute/helper.rb b/tests/glesys/requests/compute/helper.rb
index 0f37a1f..626a86c 100644
--- a/tests/glesys/requests/compute/helper.rb
+++ b/tests/glesys/requests/compute/helper.rb
@@ -2,7 +2,6 @@ class Glesys
   module Compute
     module Formats
       module Servers
-
         LIST = {
           'debug' => {
             'input' => Array
@@ -38,13 +37,14 @@ class Glesys
             'memorysize'    => Integer,
             'cpucores'      => Integer,
             'transfer'      => Integer,
+            'bandwidth'     => Integer,
             'templatename'  => String,
             'iplist'        =>  [{
               'cost'      => Integer,
               'version'   => Fog::Nullable::Integer,
               'ipaddress' => Fog::Nullable::String,
               'currency'  => String
-            }], 
+            }],
             'description' => String,
             'hostname'    => String,
             'disksize'    => Integer,
@@ -80,6 +80,7 @@ class Glesys
               'memorysize'    => String,
               'cpucores'      => String,
               'transfer'      => String,
+              'bandwidth'     => String,
               'description'   => String
             }
           }
@@ -144,10 +145,8 @@ class Glesys
             'text'      => String
           }
         }
-
       end
       module Ips
-
         IPLIST = {
           'debug' => {
             'input' => []
@@ -229,10 +228,8 @@ class Glesys
             'text'      => String
           }
         }
-
       end
       module Templates
-
         LIST = {
           'debug' => {
             'input' => []
@@ -259,7 +256,6 @@ class Glesys
             'text'      => String
           }
         }
-
       end
     end
   end
diff --git a/tests/glesys/requests/compute/ip_tests.rb b/tests/glesys/requests/compute/ip_tests.rb
index 5ecc50b..8c38a32 100644
--- a/tests/glesys/requests/compute/ip_tests.rb
+++ b/tests/glesys/requests/compute/ip_tests.rb
@@ -63,5 +63,4 @@ Shindo.tests('Fog::Compute[:glesys] | ip requests', ['glesys']) do
 
   end
 
-
 end
diff --git a/tests/glesys/requests/compute/server_tests.rb b/tests/glesys/requests/compute/server_tests.rb
index 808de33..31a7eb6 100644
--- a/tests/glesys/requests/compute/server_tests.rb
+++ b/tests/glesys/requests/compute/server_tests.rb
@@ -5,11 +5,11 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
 
     @create = ":hostname => #@hostname, :rootpassword => 'pw#{Time.now.to_i}', "+
     ":datacenter => 'Falkenberg', :platform => 'Xen', :templatename => 'Debian-6 x64', "+
-    ":disksize => '10', :memorysize => '512', :cpucores => '1', :transfer => '500'"
+    ":disksize => '10', :memorysize => '512', :cpucores => '1', :transfer => '500', :bandwidth => '10'"
 
     @create_vz = ":hostname => #@hostname, :rootpassword => 'pw#{Time.now.to_i}', "+
     ":datacenter => 'Stockholm', :platform => 'OpenVZ', :templatename => 'Debian 6.0 64-bit', "+
-    ":disksize => '10', :memorysize => '256', :cpucores => '2', :transfer => '500'"
+    ":disksize => '10', :memorysize => '256', :cpucores => '2', :transfer => '500', :bandwidth => '10'"
 
   tests('success') do
 
@@ -29,7 +29,8 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
               :disksize     => "10",
               :memorysize   => "512",
               :cpucores     => "1",
-              :transfer     => "500"
+              :transfer     => "500",
+              :bandwidth    => "10"
             )
 
       @serverid = vm.body['response']['server']['serverid']
@@ -89,7 +90,8 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
               :disksize     => "10",
               :memorysize   => "256",
               :cpucores     => "2",
-              :transfer     => "500"
+              :transfer     => "500",
+              :bandwidth    => "10"
             )
 
       @serverid = vm.body['response']['server']['serverid']
@@ -110,7 +112,6 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
       Fog::Compute[:glesys].destroy(:serverid => @serverid).body['response']
     end
 
-
   end
 
   tests('failure') do
diff --git a/tests/google/helpers/disk_helper.rb b/tests/google/helpers/disk_helper.rb
deleted file mode 100644
index bc85be6..0000000
--- a/tests/google/helpers/disk_helper.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-# create a disk to be used in tests
-def create_test_disk(connection, zone)
-  zone = 'us-central1-a'
-  disk = connection.disks.create({
-    :name => "fogservername",
-    :size_gb => "2",
-    :zone_name => zone,
-    :source_image => "debian-7-wheezy-v20140408",
-  })
-  disk.wait_for { ready? }
-  disk
-end
diff --git a/tests/google/helpers/google_tests_helper.rb b/tests/google/helpers/google_tests_helper.rb
new file mode 100644
index 0000000..b7efee3
--- /dev/null
+++ b/tests/google/helpers/google_tests_helper.rb
@@ -0,0 +1,89 @@
+require 'securerandom'
+
+# create a disk to be used in tests
+def create_test_disk(connection, zone)
+  zone = 'us-central1-a'
+  random_string = SecureRandom.hex
+
+  disk = connection.disks.create({
+    :name => "fog-test-disk-#{random_string}",
+    :size_gb => "10",
+    :zone => zone,
+    :source_image => "debian-7-wheezy-v20140408",
+  })
+  disk.wait_for { ready? }
+  disk
+end
+
+def create_test_http_health_check(connection)
+  random_string = SecureRandom.hex
+  health_check = connection.http_health_checks.create({
+      :name => "fog-test-check-#{random_string}"
+      })
+  health_check
+end
+
+def create_test_backend_service(connection)
+  random_string = SecureRandom.hex
+  health_check = create_test_http_health_check(connection)
+  backend_service = connection.backend_services.create({
+      :name => "fog-test-backend-service-#{random_string}",
+      :health_checks => [health_check]
+      })
+end
+
+def create_test_url_map(connection)
+  random_string = SecureRandom.hex
+  backend_service = create_test_backend_service(connection)
+  url_map = connection.url_maps.create({
+      :name => "fog-test-url-map-#{random_string}",
+      :defaultService => backend_service.self_link
+      })
+end
+
+def create_test_server(connection, zone)
+  random_string = SecureRandom.hex
+  disk = create_test_disk(connection,zone)
+  server = connection.servers.create({
+      :name => "fog-test-server-#{random_string}",
+      :disks => [disk],
+      :zone => zone,
+      :machine_type => 'n1-standard-1'
+      })
+end
+
+def create_test_target_http_proxy(connection)
+  random_string = SecureRandom.hex
+  url_map = create_test_url_map(connection)
+  proxy = connection.target_http_proxies.create({
+      :name => "fog-test-target-http-proxy-#{random_string}",
+      :urlMap => url_map.self_link
+      })
+end
+
+def create_test_zone_view(connection, zone)
+  random_string = SecureRandom.hex
+  zone_view = connection.zone_views.create({
+      :name => "fog-test-zone-view-#{random_string}",
+      :zone => zone
+      })
+  zone_view.wait_for {ready?}
+  zone_view
+end
+
+def create_test_target_pool(connection, region)
+  random_string = SecureRandom.hex
+  http_health_check = create_test_http_health_check(connection)
+  instance = create_test_server(connection, 'us-central1-a')
+  target_pool = connection.target_pools.create({
+      :name => "fog-test-target-pool-#{random_string}",
+      :region => region,
+      :healthChecks => [http_health_check.self_link],
+      :instances => [instance.self_link]\
+      })
+end
+
+def wait_operation(connection, response)
+  operation = connection.operations.get(response['name'], response['zone'], response['region'])
+  operation.wait_for { ready? }
+end
diff --git a/tests/google/models/compute/backend_service_tests.rb b/tests/google/models/compute/backend_service_tests.rb
new file mode 100644
index 0000000..16e4ff5
--- /dev/null
+++ b/tests/google/models/compute/backend_service_tests.rb
@@ -0,0 +1,6 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | backend service model", ['google']) do
+  random_string = SecureRandom.hex
+  model_tests(Fog::Compute[:google].backend_services, {:name => "fog-test-backend-service-#{random_string}",
+      :health_checks => [@health_check]})
+end
diff --git a/tests/google/models/compute/backend_services_tests.rb b/tests/google/models/compute/backend_services_tests.rb
new file mode 100644
index 0000000..0eb7c43
--- /dev/null
+++ b/tests/google/models/compute/backend_services_tests.rb
@@ -0,0 +1,8 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | backend_services model", ['google']) do
+  random_string = SecureRandom.hex
+  @health_check = create_test_http_health_check(Fog::Compute[:google])
+  collection_tests(Fog::Compute[:google].backend_services, {:name => "fog-backend-services-test-#{random_string}", 
+      :health_checks => [@health_check]})
+
+end
diff --git a/tests/google/models/compute/disk_tests.rb b/tests/google/models/compute/disk_tests.rb
index 0b52c7f..4354e61 100644
--- a/tests/google/models/compute/disk_tests.rb
+++ b/tests/google/models/compute/disk_tests.rb
@@ -1,5 +1,9 @@
 Shindo.tests("Fog::Compute[:google] | disk model", ['google']) do
 
-  model_tests(Fog::Compute[:google].disks, {:name => 'fogdiskname', :zone_name => 'us-central1-a'})
+  model_tests(Fog::Compute[:google].disks, {:name => 'fog-disk-model-tests',
+                                            :zone => 'us-central1-a',
+                                            :size_gb => 10}) do |model|
+    model.wait_for { ready? }
+  end
 
 end
diff --git a/tests/google/models/compute/disk_types_tests.rb b/tests/google/models/compute/disk_types_tests.rb
new file mode 100644
index 0000000..9eca081
--- /dev/null
+++ b/tests/google/models/compute/disk_types_tests.rb
@@ -0,0 +1,22 @@
+Shindo.tests("Fog::Compute[:google] | disk_types model", ['google']) do
+  @disk_types = Fog::Compute[:google].disk_types
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @disk_types.all
+    end
+
+    tests('#get').succeeds do
+      disk_type = @disk_types.all.first
+      @disk_types.get(disk_type.name)
+    end
+
+    tests('failure') do
+      tests('#get').returns(nil) do
+        @disk_types.get(Fog::Mock.random_letters_and_numbers(16))
+      end
+    end
+
+  end
+end
diff --git a/tests/google/models/compute/disks_tests.rb b/tests/google/models/compute/disks_tests.rb
index adb97cc..1dd96dc 100644
--- a/tests/google/models/compute/disks_tests.rb
+++ b/tests/google/models/compute/disks_tests.rb
@@ -1,5 +1,9 @@
 Shindo.tests("Fog::Compute[:google] | disks", ['google']) do
 
-  collection_tests(Fog::Compute[:google].disks, {:name => 'fogdiskname', :zone_name => 'us-central1-a'})
+  collection_tests(Fog::Compute[:google].disks, {:name => 'fog-disks-collections-tests',
+                                                 :zone => 'us-central1-a',
+                                                 :size_gb => 10}) do |instance|
+  	instance.wait_for { ready? }
+  end
 
 end
diff --git a/tests/google/models/compute/forwarding_rule_tests.rb b/tests/google/models/compute/forwarding_rule_tests.rb
new file mode 100644
index 0000000..a1f8c06
--- /dev/null
+++ b/tests/google/models/compute/forwarding_rule_tests.rb
@@ -0,0 +1,8 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | forwarding rule model", ['google']) do
+  random_string = SecureRandom.hex
+  region = 'us-central1'
+  target_pool = create_test_target_pool(Fog::Compute[:google], region)
+  model_tests(Fog::Compute[:google].forwarding_rules, {:name => "fog-test-forwarding-rules-#{random_string}", :region => region, :target => target_pool.self_link})
+
+end
diff --git a/tests/google/models/compute/forwarding_rules_tests.rb b/tests/google/models/compute/forwarding_rules_tests.rb
new file mode 100644
index 0000000..4d4196e
--- /dev/null
+++ b/tests/google/models/compute/forwarding_rules_tests.rb
@@ -0,0 +1,8 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | forwarding rules model", ['google']) do
+  random_string = SecureRandom.hex
+  region = 'us-central1'
+  target_pool = create_test_target_pool(Fog::Compute[:google], region)
+  collection_tests(Fog::Compute[:google].forwarding_rules, {:name => "fog-test-forwarding-rule-#{random_string}", :region => region, :target => target_pool.self_link})
+
+end
diff --git a/tests/google/models/compute/global_forwarding_rule_tests.rb b/tests/google/models/compute/global_forwarding_rule_tests.rb
new file mode 100644
index 0000000..9dc986f
--- /dev/null
+++ b/tests/google/models/compute/global_forwarding_rule_tests.rb
@@ -0,0 +1,7 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | global forwarding rule model", ['google']) do
+  random_string = SecureRandom.hex
+  proxy = create_test_target_http_proxy(Fog::Compute[:google])
+  model_tests(Fog::Compute[:google].global_forwarding_rules, {:name => "fog-test-global-forwarding-rule-#{random_string}", :target => proxy.self_link})
+
+end
diff --git a/tests/google/models/compute/global_forwarding_rules_tests.rb b/tests/google/models/compute/global_forwarding_rules_tests.rb
new file mode 100644
index 0000000..9b8fdeb
--- /dev/null
+++ b/tests/google/models/compute/global_forwarding_rules_tests.rb
@@ -0,0 +1,7 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | global forwarding rules model", ['google']) do
+  random_string = SecureRandom.hex
+  proxy = create_test_target_http_proxy(Fog::Compute[:google])
+  collection_tests(Fog::Compute[:google].global_forwarding_rules, {:name => "fog-test-global-forwarding-rule-#{random_string}", :target => proxy.self_link})
+
+end
diff --git a/tests/google/models/compute/http_health_check_tests.rb b/tests/google/models/compute/http_health_check_tests.rb
new file mode 100644
index 0000000..4c8ff03
--- /dev/null
+++ b/tests/google/models/compute/http_health_check_tests.rb
@@ -0,0 +1,5 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | HTTP health check model", ['google']) do
+  random_string = SecureRandom.hex
+  model_tests(Fog::Compute[:google].http_health_checks, {:name => "fog-test-http-health-check-#{random_string}"})
+end
diff --git a/tests/google/models/compute/http_health_checks_tests.rb b/tests/google/models/compute/http_health_checks_tests.rb
new file mode 100644
index 0000000..d47b81b
--- /dev/null
+++ b/tests/google/models/compute/http_health_checks_tests.rb
@@ -0,0 +1,5 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | HTTP health checks model", ['google']) do
+  random_string = SecureRandom.hex
+  collection_tests(Fog::Compute[:google].http_health_checks, {:name => "fog-test-http-health-check-#{random_string}"})
+end
diff --git a/tests/google/models/compute/image_tests.rb b/tests/google/models/compute/image_tests.rb
new file mode 100644
index 0000000..d25ac87
--- /dev/null
+++ b/tests/google/models/compute/image_tests.rb
@@ -0,0 +1,6 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | image model", ['google']) do
+  random_string = SecureRandom.hex
+  source = 'https://www.google.com/images/srpr/logo4w.png'
+  model_tests(Fog::Compute[:google].images, {:name => "fog-test-images-#{random_string}", "rawDisk" => { "source" => source } })
+end
diff --git a/tests/google/models/compute/images_tests.rb b/tests/google/models/compute/images_tests.rb
new file mode 100644
index 0000000..b8787b3
--- /dev/null
+++ b/tests/google/models/compute/images_tests.rb
@@ -0,0 +1,6 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | images model", ['google']) do
+  random_string = SecureRandom.hex
+  source = 'https://www.google.com/images/srpr/logo4w.png'
+  collection_tests(Fog::Compute[:google].images, {:name => "fog-test-images-#{random_string}", "rawDisk" => { "source" => source } })
+end
diff --git a/tests/google/models/compute/region_tests.rb b/tests/google/models/compute/region_tests.rb
new file mode 100644
index 0000000..2469d66
--- /dev/null
+++ b/tests/google/models/compute/region_tests.rb
@@ -0,0 +1,10 @@
+Shindo.tests("Fog::Compute[:google] | region model", ['google']) do
+  @regions = Fog::Compute[:google].regions
+
+  tests('success') do
+    tests('#up').succeeds do
+      region = @regions.get @regions.all.first.name
+      region.up?
+    end
+  end
+end
diff --git a/tests/google/models/compute/regions_tests.rb b/tests/google/models/compute/regions_tests.rb
new file mode 100644
index 0000000..6e1728a
--- /dev/null
+++ b/tests/google/models/compute/regions_tests.rb
@@ -0,0 +1,19 @@
+Shindo.tests("Fog::Compute[:google] | regions model", ['google']) do
+  @regions = Fog::Compute[:google].regions
+
+  tests('success') do
+    tests('#all').succeeds do
+      @regions.all
+    end
+
+    tests('#get').succeeds do
+      @regions.get @regions.all.first.name
+    end
+  end
+
+  tests('failure') do
+    tests('#get').returns(nil) do
+      @regions.get 'unicorn'
+    end
+  end
+end
diff --git a/tests/google/models/compute/server_tests.rb b/tests/google/models/compute/server_tests.rb
index 8a93c03..2bcd64c 100644
--- a/tests/google/models/compute/server_tests.rb
+++ b/tests/google/models/compute/server_tests.rb
@@ -1,9 +1,15 @@
+require 'securerandom'
+
 Shindo.tests("Fog::Compute[:google] | server model", ['google']) do
 
   @zone = 'us-central1-a'
   @disk = create_test_disk(Fog::Compute[:google], @zone)
+  random_string = SecureRandom.hex
 
-  model_tests(Fog::Compute[:google].servers, {:name => 'fogservername', :zone_name => @zone, :machine_type => 'n1-standard-1', :disks => [@disk]})
+  model_tests(Fog::Compute[:google].servers, {:name => "fog-test-server-#{random_string}",
+                                              :zone_name => @zone,
+                                              :machine_type => 'n1-standard-1',
+                                              :disks => [@disk]})
 
   tests('servers') do
     @instance = nil
@@ -20,12 +26,12 @@ Shindo.tests("Fog::Compute[:google] | server model", ['google']) do
 
     test('#ssh') do
       pending if Fog.mocking?
-      @instance.ssh("uname") == "Linux"
+      !!(@instance.ssh("uname").first.stdout =~ /Linux/)
     end
 
     test('#destroy') do
       response = @instance.destroy
-      response.body['operationType'] == 'delete'
+      response.operation_type == 'delete'
     end
   end
 end
diff --git a/tests/google/models/compute/servers_tests.rb b/tests/google/models/compute/servers_tests.rb
index c511ab4..d6a46a1 100644
--- a/tests/google/models/compute/servers_tests.rb
+++ b/tests/google/models/compute/servers_tests.rb
@@ -1,8 +1,14 @@
+require 'securerandom'
+
 Shindo.tests("Fog::Compute[:google] | servers", ['google']) do
 
   @zone = 'us-central1-a'
   @disk = create_test_disk(Fog::Compute[:google], @zone)
+  random_string = SecureRandom.hex
 
-  collection_tests(Fog::Compute[:google].servers, {:name => 'fogservername', :zone_name => @zone, :machine_type => 'n1-standard-1', :disks => [@disk]})
+  collection_tests(Fog::Compute[:google].servers, {:name => "fog-test-server-#{random_string}",
+                                                   :zone_name => @zone,
+                                                   :machine_type => 'n1-standard-1',
+                                                   :disks => [@disk]})
 
 end
diff --git a/tests/google/models/compute/target_http_proxies_tests.rb b/tests/google/models/compute/target_http_proxies_tests.rb
new file mode 100644
index 0000000..bb9ebf1
--- /dev/null
+++ b/tests/google/models/compute/target_http_proxies_tests.rb
@@ -0,0 +1,7 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | target HTTP proxies model", ['google']) do
+  url_map = create_test_url_map(Fog::Compute[:google])  
+  random_string = SecureRandom.hex
+  collection_tests(Fog::Compute[:google].target_http_proxies, {:name => "fog-target-http-proxies-test-#{random_string}", :urlMap => url_map.self_link})
+
+end
diff --git a/tests/google/models/compute/target_http_proxy_test.rb b/tests/google/models/compute/target_http_proxy_test.rb
new file mode 100644
index 0000000..c042307
--- /dev/null
+++ b/tests/google/models/compute/target_http_proxy_test.rb
@@ -0,0 +1,6 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | target HTTP proxy model", ['google']) do
+  random_string = SecureRandom.hex
+  url_map = create_test_url_map(Fog::Compute[:google])
+  model_tests(Fog::Compute[:google].target_http_proxies, {:name => "fog-test-target-http-proxy-#{random_string}", :urlMap => url_map.self_link})
+end
diff --git a/tests/google/models/compute/target_instance_tests.rb b/tests/google/models/compute/target_instance_tests.rb
new file mode 100644
index 0000000..7c6a134
--- /dev/null
+++ b/tests/google/models/compute/target_instance_tests.rb
@@ -0,0 +1,7 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | target instance model", ['google']) do
+  random_string = SecureRandom.hex
+  @zone = 'us-central1-a'
+  instance = create_test_server(Fog::Compute[:google], @zone)  
+  model_tests(Fog::Compute[:google].target_instances, {:name => "fog-test-target-instance-#{random_string}", :instance => instance.self_link, :zone => @zone})
+end
diff --git a/tests/google/models/compute/target_instances_tests.rb b/tests/google/models/compute/target_instances_tests.rb
new file mode 100644
index 0000000..d9a7f3c
--- /dev/null
+++ b/tests/google/models/compute/target_instances_tests.rb
@@ -0,0 +1,7 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | target instances model", ['google']) do
+  @zone= 'us-central1-a'
+  random_string = SecureRandom.hex
+  instance = create_test_server(Fog::Compute[:google], @zone)
+  collection_tests(Fog::Compute[:google].target_instances, {:name => "fog-test-target-instances-#{random_string}", :instance => instance.self_link, :zone => @zone})
+end
diff --git a/tests/google/models/compute/target_pool_tests.rb b/tests/google/models/compute/target_pool_tests.rb
new file mode 100644
index 0000000..b5fa5ad
--- /dev/null
+++ b/tests/google/models/compute/target_pool_tests.rb
@@ -0,0 +1,12 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | target pool model", ['google']) do
+
+  pending
+
+  random_string = SecureRandom.hex
+  region = 'us-central1'
+  instance = create_test_server(Fog::Compute[:google], 'us-central1-a')
+  health_check = create_test_http_health_check(Fog::Compute[:google])
+  model_tests(Fog::Compute[:google].target_pools, {:name => "fog-test-target-pool-#{random_string}", :region => region, :instances => [instance.self_link], :healthChecks => [health_check.self_link]})
+
+end
diff --git a/tests/google/models/compute/target_pools_tests.rb b/tests/google/models/compute/target_pools_tests.rb
new file mode 100644
index 0000000..6546f79
--- /dev/null
+++ b/tests/google/models/compute/target_pools_tests.rb
@@ -0,0 +1,11 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | target pools model", ['google']) do
+  random_string = SecureRandom.hex
+  region = 'us-central1'
+  instance = create_test_server(Fog::Compute[:google], 'us-central1-a')
+  health_check = create_test_http_health_check(Fog::Compute[:google])
+  collection_tests(
+    Fog::Compute[:google].target_pools,
+    {:name => "fog-test-target-pool-#{random_string}", :region => region, :instances => [instance.self_link], :healthChecks => [health_check.self_link]}
+  )
+end
diff --git a/tests/google/models/compute/url_map_tests.rb b/tests/google/models/compute/url_map_tests.rb
new file mode 100644
index 0000000..8c7ecd0
--- /dev/null
+++ b/tests/google/models/compute/url_map_tests.rb
@@ -0,0 +1,6 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | url map model", ['google']) do
+  random_string = SecureRandom.hex
+  backend_service = create_test_backend_service(Fog::Compute[:google])  
+  model_tests(Fog::Compute[:google].url_maps, {:name => "fog-test-url-map-#{random_string}", :defaultService => backend_service.self_link})
+end
diff --git a/tests/google/models/compute/url_maps_tests.rb b/tests/google/models/compute/url_maps_tests.rb
new file mode 100644
index 0000000..2d5aa03
--- /dev/null
+++ b/tests/google/models/compute/url_maps_tests.rb
@@ -0,0 +1,7 @@
+require 'securerandom'
+Shindo.tests("Fog::Compute[:google] | url maps model", ['google']) do
+  backend_service = create_test_backend_service(Fog::Compute[:google])  
+  random_string = SecureRandom.hex
+  collection_tests(Fog::Compute[:google].url_maps, {:name => "fog-url-maps-test-#{random_string}", :defaultService => backend_service.self_link})
+
+end
diff --git a/tests/google/models/monitoring/metric_descriptors_tests.rb b/tests/google/models/monitoring/metric_descriptors_tests.rb
new file mode 100644
index 0000000..d3a43ee
--- /dev/null
+++ b/tests/google/models/monitoring/metric_descriptors_tests.rb
@@ -0,0 +1,12 @@
+Shindo.tests('Fog::Google[:monitoring] | metric_descriptors model', ['google']) do
+  @metric_descriptors = Fog::Google[:monitoring].metric_descriptors
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @metric_descriptors.all
+    end
+
+  end
+
+end
diff --git a/tests/google/models/monitoring/timeseries_collection_tests.rb b/tests/google/models/monitoring/timeseries_collection_tests.rb
new file mode 100644
index 0000000..0b7c4ad
--- /dev/null
+++ b/tests/google/models/monitoring/timeseries_collection_tests.rb
@@ -0,0 +1,12 @@
+Shindo.tests('Fog::Google[:monitoring] | timeseries_collection model', ['google']) do
+  @timeseries_collection = Fog::Google[:monitoring].timeseries_collection
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @timeseries_collection.all('compute.googleapis.com/instance/uptime', Time.now.strftime("%Y-%m-%dT%H:%M:%S%:z"))
+    end
+
+  end
+
+end
diff --git a/tests/google/models/monitoring/timeseries_descriptors_tests.rb b/tests/google/models/monitoring/timeseries_descriptors_tests.rb
new file mode 100644
index 0000000..33ec2fe
--- /dev/null
+++ b/tests/google/models/monitoring/timeseries_descriptors_tests.rb
@@ -0,0 +1,13 @@
+Shindo.tests('Fog::Google[:monitoring] | timeseries_descriptors model', ['google']) do
+  @timeseries_descriptors = Fog::Google[:monitoring].timeseries_descriptors
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @timeseries_descriptors.all('compute.googleapis.com/instance/uptime',
+                                  Time.now.strftime("%Y-%m-%dT%H:%M:%S%:z"))
+    end
+
+  end
+
+end
diff --git a/tests/google/models/sql/flags_tests.rb b/tests/google/models/sql/flags_tests.rb
new file mode 100644
index 0000000..adaba88
--- /dev/null
+++ b/tests/google/models/sql/flags_tests.rb
@@ -0,0 +1,12 @@
+Shindo.tests('Fog::Google[:sql] | flags model', ['google']) do
+  @flags = Fog::Google[:sql].tiers
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @flags.all
+    end
+
+  end
+
+end
diff --git a/tests/google/models/sql/instance_tests.rb b/tests/google/models/sql/instance_tests.rb
new file mode 100644
index 0000000..8c6e7ed
--- /dev/null
+++ b/tests/google/models/sql/instance_tests.rb
@@ -0,0 +1,56 @@
+Shindo.tests('Fog::Google[:sql] | instance model', ['google']) do
+  @instances = Fog::Google[:sql].instances
+
+  tests('success') do
+
+    tests('#create').succeeds do
+      @instance = @instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+      @instance.wait_for { ready? }
+    end
+
+    tests('#update').succeeds do
+      @instance.activation_policy = 'ALWAYS'
+      @instance.update
+      @instance.wait_for { ready? }
+    end
+
+    tests('#clone').succeeds do
+      pending unless Fog.mocking? # Binary log must be activated
+      instance_cloned_id = Fog::Mock.random_letters(16)
+      @instance.clone(instance_cloned_id, :async => false)
+      @instances.get(instance_cloned_id).destroy
+    end
+
+    tests('#export').succeeds do
+      pending unless Fog.mocking? # We don't have access to a Google Cloud Storage bucket
+      @instance.export("gs://#{Fog::Mock.random_letters_and_numbers(16)}/mysql-export", :async => false)
+    end
+
+    tests('#import').succeeds do
+      pending unless Fog.mocking? # We don't have access to a Google Cloud Storage bucket
+      @instance.import("gs://#{Fog::Mock.random_letters_and_numbers(16)}/mysql-export", :async => false)
+    end
+
+    tests('#ready?').succeeds do
+      @instance.ready? == true
+    end
+
+    tests('#reset_ssl_config').succeeds do
+      @instance.reset_ssl_config(:async => false)
+    end
+
+    tests('#restart').succeeds do
+      @instance.restart(:async => false)
+    end
+
+    tests('#set_root_password').succeeds do
+      @instance.set_root_password(Fog::Mock.random_letters_and_numbers(8), :async => false)
+    end
+
+    tests('#destroy').succeeds do
+      @instance.destroy
+    end
+
+  end
+
+end
diff --git a/tests/google/models/sql/instances_tests.rb b/tests/google/models/sql/instances_tests.rb
new file mode 100644
index 0000000..abcb9f6
--- /dev/null
+++ b/tests/google/models/sql/instances_tests.rb
@@ -0,0 +1,32 @@
+Shindo.tests('Fog::Google[:sql] | instances model', ['google']) do
+  @instance = Fog::Google[:sql].instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  @instance.wait_for { ready? }
+  @instances = Fog::Google[:sql].instances
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @instances.all
+    end
+
+    tests('#get').succeeds do
+      @instances.get(@instance.instance)
+    end
+
+  end
+
+  @instance.destroy(:async => false)
+
+  tests('failure') do
+
+    tests('#all').returns([]) do
+      @instances.all
+    end
+
+    tests('#get').returns(nil) do
+      @instances.get(Fog::Mock.random_letters_and_numbers(16))
+    end
+
+  end
+
+end
diff --git a/tests/google/models/sql/operation_tests.rb b/tests/google/models/sql/operation_tests.rb
new file mode 100644
index 0000000..6d2229c
--- /dev/null
+++ b/tests/google/models/sql/operation_tests.rb
@@ -0,0 +1,25 @@
+Shindo.tests('Fog::Google[:sql] | operation model', ['google']) do
+  @instance = Fog::Google[:sql].instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  @instance.wait_for { ready? }
+  @operations = Fog::Google[:sql].operations
+  @operation = @operations.all(@instance.instance).first
+
+  tests('success') do
+
+    tests('#pending?').succeeds do
+      @operation.pending? == false
+    end
+
+    tests('#ready?').succeeds do
+      @operation.ready? == true
+    end
+
+    tests('#reload').succeeds do
+      @operation.reload
+    end
+
+  end
+
+  @instance.destroy
+
+end
diff --git a/tests/google/models/sql/operations_tests.rb b/tests/google/models/sql/operations_tests.rb
new file mode 100644
index 0000000..e85c167
--- /dev/null
+++ b/tests/google/models/sql/operations_tests.rb
@@ -0,0 +1,38 @@
+Shindo.tests('Fog::Google[:sql] | operations model', ['google']) do
+  @instance = Fog::Google[:sql].instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  @instance.wait_for { ready? }
+  @operations = Fog::Google[:sql].operations
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @operations.all(@instance.instance)
+    end
+
+    tests('#get').succeeds do
+      @operations.get(@instance.instance, @operations.all(@instance.instance).first.operation)
+    end
+
+  end
+
+  tests('failure') do
+
+    tests('#all').returns([]) do
+      @operations.all(Fog::Mock.random_letters_and_numbers(16))
+    end
+
+    tests('#get').returns(nil) do
+      pending unless Fog.mocking? # Real test fails on google-api-client (mismatch between catalog and real response)
+      @operations.get(@instance.instance, Fog::Mock.random_letters_and_numbers(16))
+    end
+
+    tests('#get').returns(nil) do
+      pending unless Fog.mocking? # Real test fails on google-api-client (mismatch between catalog and real response)
+      @operations.get(Fog::Mock.random_letters_and_numbers(16), Fog::Mock.random_letters_and_numbers(16))
+    end
+
+  end
+
+  @instance.destroy
+
+end
diff --git a/tests/google/models/sql/ssl_cert_tests.rb b/tests/google/models/sql/ssl_cert_tests.rb
new file mode 100644
index 0000000..48d77e7
--- /dev/null
+++ b/tests/google/models/sql/ssl_cert_tests.rb
@@ -0,0 +1,24 @@
+Shindo.tests('Fog::Google[:sql] | ssl_cert model', ['google']) do
+  @instance = Fog::Google[:sql].instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  @instance.wait_for { ready? }
+  @ssl_certs = Fog::Google[:sql].ssl_certs
+
+  tests('success') do
+
+    tests('#create').succeeds do
+      @ssl_cert = @ssl_certs.create(:instance => @instance.instance, :common_name => Fog::Mock.random_letters(16))
+    end
+
+    tests('#reload').succeeds do
+      @ssl_cert.reload
+    end
+
+    tests('#destroy').succeeds do
+      @ssl_cert.destroy
+    end
+
+  end
+
+  @instance.destroy
+
+end
diff --git a/tests/google/models/sql/ssl_certs_tests.rb b/tests/google/models/sql/ssl_certs_tests.rb
new file mode 100644
index 0000000..ffef81d
--- /dev/null
+++ b/tests/google/models/sql/ssl_certs_tests.rb
@@ -0,0 +1,39 @@
+Shindo.tests('Fog::Google[:sql] | ssl_certs model', ['google']) do
+  @instance = Fog::Google[:sql].instances.create(:instance => Fog::Mock.random_letters(16), :tier => 'D1')
+  @instance.wait_for { ready? }
+  @ssl_cert = Fog::Google[:sql].ssl_certs.create(:instance => @instance.instance,
+                                                 :common_name => Fog::Mock.random_letters(16))
+  @ssl_certs = Fog::Google[:sql].ssl_certs
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @ssl_certs.all(@instance.instance)
+    end
+
+    tests('#get').succeeds do
+      @ssl_certs.get(@instance.instance, @ssl_cert.sha1_fingerprint)
+    end
+
+  end
+
+  tests('failure') do
+
+    tests('#all').returns([]) do
+      @ssl_certs.all(Fog::Mock.random_letters_and_numbers(16))
+    end
+
+    tests('#get').returns(nil) do
+      @ssl_certs.get(@instance.instance, Fog::Mock.random_letters_and_numbers(16))
+    end
+
+    tests('#get').returns(nil) do
+      @ssl_certs.get(Fog::Mock.random_letters_and_numbers(16), Fog::Mock.random_letters_and_numbers(16))
+    end
+
+  end
+
+  @ssl_cert.destroy
+  @instance.destroy
+
+end
diff --git a/tests/google/models/sql/tiers_tests.rb b/tests/google/models/sql/tiers_tests.rb
new file mode 100644
index 0000000..c129930
--- /dev/null
+++ b/tests/google/models/sql/tiers_tests.rb
@@ -0,0 +1,12 @@
+Shindo.tests('Fog::Google[:sql] | tiers model', ['google']) do
+  @tiers = Fog::Google[:sql].tiers
+
+  tests('success') do
+
+    tests('#all').succeeds do
+      @tiers.all
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/backend_service_tests.rb b/tests/google/requests/compute/backend_service_tests.rb
new file mode 100644
index 0000000..5dc0248
--- /dev/null
+++ b/tests/google/requests/compute/backend_service_tests.rb
@@ -0,0 +1,83 @@
+Shindo.tests('Fog::Compute[:google] | backend services requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_backend_service_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'zone' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_backend_service_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'backends' => Array,
+      'healthChecks' => Array,
+      'port' => Integer,
+      'protocol' => String,
+  }
+
+  @delete_backend_service_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'zone' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_backend_services_format = {
+      'kind' => String,
+      'selfLink' => String,
+      'id' => String,
+      'items' => Array
+  }
+
+  tests('success') do
+
+    backend_service_name = 'test-backend-service'
+    zone_name = 'us-central1-a'
+
+    # These will all fail if errors happen on insert
+    tests("#insert_backend_service").formats(@insert_backend_service_format) do
+      health_check = create_test_http_health_check(Fog::Compute[:google])
+      options = { 'health_check' => health_check }
+      response = @google.insert_backend_service(backend_service_name, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#list_backend_services").formats(@list_backend_services_format) do
+      @google.list_backend_services.body
+    end
+
+    tests("#get_backend_service").formats(@get_backend_service_format) do
+      @google.get_backend_service(backend_service_name).body
+    end
+
+    tests("#delete_backend_service").formats(@delete_backend_service_format) do
+      @google.delete_backend_service(backend_service_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/disk_tests.rb b/tests/google/requests/compute/disk_tests.rb
index d4aa3c5..335b5ab 100644
--- a/tests/google/requests/compute/disk_tests.rb
+++ b/tests/google/requests/compute/disk_tests.rb
@@ -28,6 +28,7 @@ Shindo.tests('Fog::Compute[:google] | disk requests', ['google']) do
       'sizeGb' => String,
       'sourceImageId' => String,
       'sourceImage' => String,
+      'type' => String,
   }
 
   @delete_disk_format = {
@@ -51,11 +52,13 @@ Shindo.tests('Fog::Compute[:google] | disk requests', ['google']) do
     disk_name = 'new-disk-test'
     disk_size = '2'
     zone_name = 'us-central1-a'
-    image_name = 'centos-6-v20130813'
+    image_name = 'debian-7-wheezy-v20140408'
 
     # These will all fail if errors happen on insert
     tests("#insert_disk").formats(@insert_disk_format) do
-      @google.insert_disk(disk_name, zone_name, image_name).body
+      response = @google.insert_disk(disk_name, zone_name, image_name).body
+      wait_operation(@google, response)
+      response
     end
 
     tests("#get_disk").formats(@get_disk_format) do
diff --git a/tests/google/requests/compute/disk_type_tests.rb b/tests/google/requests/compute/disk_type_tests.rb
new file mode 100644
index 0000000..41ee8e2
--- /dev/null
+++ b/tests/google/requests/compute/disk_type_tests.rb
@@ -0,0 +1,45 @@
+Shindo.tests('Fog::Compute[:google] | disk_type requests', ['google']) do
+  @google = Fog::Compute[:google]
+
+  @get_disk_type_format = {
+    'name' => String,
+    'kind' => String,
+    'id' => Fog::Nullable::String,
+    'creationTimestamp' => String,
+    'deprecated' => Fog::Nullable::Array,
+    'description' => String,
+    'selfLink' => String,
+    'validDiskSize' => String,
+    'zone' => String,
+  }
+
+  @list_disk_types_format = {
+    'kind' => String,
+    'selfLink' => String,
+    'items' => [@get_disk_type_format],
+  }
+
+  @list_aggregated_disk_types = {
+    'kind' => String,
+    'selfLink' => String,
+    'items' => Hash,
+  }
+
+  tests('success') do
+
+    tests('#list_aggregated_disk_types').formats(@list_aggregated_disk_types) do
+      @google.list_aggregated_disk_types.body
+    end
+
+    tests('#list_disk_types').formats(@list_disk_types_format) do
+      @google.list_disk_types('us-central1-a').body
+    end
+
+    tests('#get_disk_type').formats(@get_disk_type_format) do
+      disk_type = @google.disk_types.first
+      @google.get_disk_type(disk_type.identity, disk_type.zone).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/firewall_tests.rb b/tests/google/requests/compute/firewall_tests.rb
index 3ad2826..bb73fc9 100644
--- a/tests/google/requests/compute/firewall_tests.rb
+++ b/tests/google/requests/compute/firewall_tests.rb
@@ -52,7 +52,7 @@ Shindo.tests('Fog::Compute[:google] | firewall requests', ['google']) do
 
   tests('success') do
 
-    firewall_name = 'new-firewall-test'
+    firewall_name = 'fog-test-firewall'
     source_range = [ '10.0.0.0/8' ]
     allowed = [{
       "IPProtocol" => "tcp",
@@ -65,7 +65,9 @@ Shindo.tests('Fog::Compute[:google] | firewall requests', ['google']) do
     }]
 
     tests("#insert_firewall").formats(@insert_firewall_format) do
-      @google.insert_firewall(firewall_name, source_range, allowed).body
+      response = @google.insert_firewall(firewall_name, allowed, 'default', :source_ranges => source_range).body
+      wait_operation(@google, response)
+      response
     end
 
     # TODO: Get better matching for firewall responses.
diff --git a/tests/google/requests/compute/forwarding_rules_tests.rb b/tests/google/requests/compute/forwarding_rules_tests.rb
new file mode 100644
index 0000000..0bbdbf8
--- /dev/null
+++ b/tests/google/requests/compute/forwarding_rules_tests.rb
@@ -0,0 +1,83 @@
+Shindo.tests('Fog::Compute[:google] | forwarding rule requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_forwarding_rule_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'region' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_forwarding_rule_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'region' => String,
+      'IPAddress' => String,
+      'IPProtocol' => String,
+      'portRange' => String,
+      'target' => String
+  }
+
+  @delete_forwarding_rule_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'region' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_forwarding_rules_format = {
+      'kind' => String,
+      'id' => String,
+      'items' => Array,
+      'selfLink' => String
+  }
+
+  tests('success') do
+
+    forwarding_rule_name = 'test-forwarding-rule'
+    region_name = 'us-central1'
+    # These will all fail if errors happen on insert
+    tests("#insert_forwarding_rule").formats(@insert_forwarding_rule_format) do
+      target = create_test_target_pool(Fog::Compute[:google], region_name)
+      options = { 'target' => target.self_link }
+      response = @google.insert_forwarding_rule(forwarding_rule_name, region_name, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_forwarding_rule").formats(@get_forwarding_rule_format) do
+      @google.get_forwarding_rule(forwarding_rule_name, region_name).body
+    end
+
+    tests("#list_forwarding_rules").formats(@list_forwarding_rules_format) do
+      @google.list_forwarding_rules(region_name).body
+    end
+
+    tests("#delete_forwarding_rule").formats(@delete_forwarding_rule_format) do
+      @google.delete_forwarding_rule(forwarding_rule_name, region_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/global_forwarding_rules_tests.rb b/tests/google/requests/compute/global_forwarding_rules_tests.rb
new file mode 100644
index 0000000..643a4b5
--- /dev/null
+++ b/tests/google/requests/compute/global_forwarding_rules_tests.rb
@@ -0,0 +1,83 @@
+Shindo.tests('Fog::Compute[:google] | global forwarding rule requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_global_forwarding_rule_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'zone' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_global_forwarding_rule_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'region' => String,
+      'IPAddress' => String,
+      'IPProtocol' => String,
+      'portRange' => String,
+      'target' => String
+  }
+
+  @delete_global_forwarding_rule_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'zone' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_global_forwarding_rules_format = {
+      'kind' => String,
+      'id' => String,
+      'items' => Array,
+      'selfLink' => String
+  }
+
+  tests('success') do
+
+    global_forwarding_rule_name = 'test-global-forwarding-rule'
+
+    # These will all fail if errors happen on insert
+    tests("#insert_global_forwarding_rule").formats(@insert_global_forwarding_rule_format) do
+      target = create_test_target_http_proxy(Fog::Compute[:google])
+      options = { 'target' => target.self_link }
+      response = @google.insert_global_forwarding_rule(global_forwarding_rule_name, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_global_forwarding_rule").formats(@get_global_forwarding_rule_format) do
+      @google.get_global_forwarding_rule(global_forwarding_rule_name).body
+    end
+
+    tests("#list_global_forwarding_rules").formats(@list_global_forwarding_rules_format) do
+      @google.list_global_forwarding_rules('global').body
+    end
+
+    tests("#delete_global_forwarding_rule").formats(@delete_global_forwarding_rule_format) do
+      @google.delete_global_forwarding_rule(global_forwarding_rule_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/http_health_checks_tests.rb b/tests/google/requests/compute/http_health_checks_tests.rb
new file mode 100644
index 0000000..e628775
--- /dev/null
+++ b/tests/google/requests/compute/http_health_checks_tests.rb
@@ -0,0 +1,83 @@
+Shindo.tests('Fog::Compute[:google] | HTTP health checks requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_http_health_check_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'zone' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_http_health_check_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'host' => String,
+      'requestPath' => String,
+      'port' => Integer,
+      'checkIntervalSec' => Integer,
+      'timeoutSec' => Integer,
+      'unhealthyThreshold' => Integer,
+      'healthyThreshold' => Integer
+  }
+
+  @delete_http_health_check_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'zone' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_http_health_checks_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'items' => Array
+  }
+
+  tests('success') do
+
+    http_health_check_name = 'test-http-health-check'
+
+    # These will all fail if errors happen on insert
+    tests("#insert_http_health_check").formats(@insert_http_health_check_format) do
+      response = @google.insert_http_health_check(http_health_check_name).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_http_health_check").formats(@get_http_health_check_format) do
+      @google.get_http_health_check(http_health_check_name).body
+    end
+
+    tests("#list_http_health_checks").formats(@list_http_health_checks_format) do
+      @google.list_http_health_checks.body
+    end
+
+    tests("#delete_http_health_check").formats(@delete_http_health_check_format) do
+      @google.delete_http_health_check(http_health_check_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/image_tests.rb b/tests/google/requests/compute/image_tests.rb
index 7731bd1..859003f 100644
--- a/tests/google/requests/compute/image_tests.rb
+++ b/tests/google/requests/compute/image_tests.rb
@@ -53,17 +53,19 @@ Shindo.tests('Fog::Compute[:google] | image requests', ['google']) do
 
   tests('success') do
 
-    image_name = 'test-image'
+    random_string = SecureRandom.hex
+    image_name = "fog-test-image-#{random_string}"
     source = 'https://www.google.com/images/srpr/logo4w.png'
 
     tests("#insert_image").formats(@insert_image_format) do
       pending if Fog.mocking?
-      @google.insert_image(image_name, source).body
+      response = @google.insert_image(image_name, 'rawDisk' => source).body
+      wait_operation(@google, response)
+      response
     end
 
     tests("#get_image").formats(@get_image_format) do
       pending if Fog.mocking?
-      @google.insert_image(image_name, source)
       @google.get_image(image_name).body
     end
 
@@ -73,7 +75,6 @@ Shindo.tests('Fog::Compute[:google] | image requests', ['google']) do
 
     tests("#delete_image").formats(@delete_image_format) do
       pending if Fog.mocking?
-      @google.insert_image(image_name, source)
       @google.delete_image(image_name).body
     end
 
diff --git a/tests/google/requests/compute/region_tests.rb b/tests/google/requests/compute/region_tests.rb
new file mode 100644
index 0000000..1b4a752
--- /dev/null
+++ b/tests/google/requests/compute/region_tests.rb
@@ -0,0 +1,39 @@
+Shindo.tests('Fog::Compute[:google] | region requests', ['google']) do
+  @google = Fog::Compute[:google]
+
+  @get_region_format = {
+      'kind' => String,
+      'selfLink' => String,
+      'id' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'description' => String,
+      'status' => String,
+      'zones' => Array,
+      'quotas' => [{ 'metric' => String, 'limit' => Float, 'usage' => Float }],
+  }
+
+  @list_regions_format = {
+      'kind' => String,
+      'selfLink' => String,
+      'id' => String,
+      'items' => [@get_region_format]
+  }
+
+  tests('success') do
+    tests("#get_region").formats(@get_region_format) do
+      region = @google.list_regions.body['items'].first['name']
+      @google.get_region(region).body
+    end
+
+    tests("#list_regions").formats(@list_regions_format) do
+      @google.list_regions.body
+    end
+  end
+
+  tests('failure') do
+    tests("#get_region").raises(Fog::Errors::NotFound) do
+      @google.get_region('unicorn').body
+    end
+  end
+end
diff --git a/tests/google/requests/compute/target_http_proxies_test.rb b/tests/google/requests/compute/target_http_proxies_test.rb
new file mode 100644
index 0000000..3af0001
--- /dev/null
+++ b/tests/google/requests/compute/target_http_proxies_test.rb
@@ -0,0 +1,79 @@
+Shindo.tests('Fog::Compute[:google] | target HTTP proxy requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_target_http_proxy_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'zone' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_target_http_proxy_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'urlMap' => String,
+  }
+
+  @delete_target_http_proxy_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'zone' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_target_http_proxies_format = {
+      'kind' => String,
+      'selfLink' => String,
+      'id' => String,
+      'items' => Array
+  }
+
+  tests('success') do
+
+    target_http_proxy_name = 'test-target-http-proxy'
+
+    # These will all fail if errors happen on insert
+    tests("#insert_target_http_proxy").formats(@insert_target_http_proxy_format) do
+      url_map = create_test_url_map(Fog::Compute[:google])
+      options = { 'urlMap' => url_map.self_link }
+      response = @google.insert_target_http_proxy(target_http_proxy_name, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_target_http_proxy").formats(@get_target_http_proxy_format) do
+      @google.get_target_http_proxy(target_http_proxy_name).body
+    end
+
+    tests("#list_target_http_proxies").formats(@list_target_http_proxies_format) do
+      @google.list_target_http_proxies.body
+    end
+
+    tests("#delete_target_http_proxy").formats(@delete_target_http_proxy_format) do
+      @google.delete_target_http_proxy(target_http_proxy_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/target_instances_tests.rb b/tests/google/requests/compute/target_instances_tests.rb
new file mode 100644
index 0000000..dbcffac
--- /dev/null
+++ b/tests/google/requests/compute/target_instances_tests.rb
@@ -0,0 +1,83 @@
+Shindo.tests('Fog::Compute[:google] | target instance requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_target_instance_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'zone' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_target_instance_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'zone' => String,
+      'natPolicy' => String,
+      'instance' => String,
+      'description' => String
+  }
+
+  @delete_target_instance_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'zone' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_target_instances_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'items' => Array
+  }
+
+  tests('success') do
+
+    target_instance_name = 'test-target_instance'
+    @zone = 'us-central1-a'
+
+    # These will all fail if errors happen on insert
+    tests("#insert_target_instance").formats(@insert_target_instance_format) do
+      instance = create_test_server(Fog::Compute[:google], @zone)
+      options = { 'instance' => instance.self_link, 'zone' => @zone }
+      response = @google.insert_target_instance(target_instance_name, @zone, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_target_instance").formats(@get_target_instance_format) do
+      @google.get_target_instance(target_instance_name, @zone).body
+    end
+
+    tests("#list_target_instances").formats(@list_target_instances_format) do
+      @google.list_target_instances(@zone).body
+    end
+
+    tests("#delete_target_instance").formats(@delete_target_instance_format) do
+      @google.delete_target_instance(target_instance_name, @zone).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/target_pools_tests.rb b/tests/google/requests/compute/target_pools_tests.rb
new file mode 100644
index 0000000..c3f5e52
--- /dev/null
+++ b/tests/google/requests/compute/target_pools_tests.rb
@@ -0,0 +1,82 @@
+Shindo.tests('Fog::Compute[:google] | target pools requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_target_pool_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'region' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_target_pool_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'region' => String,
+      'healthChecks' => Array,
+      'instances' => Array,
+  }
+
+  @delete_target_pool_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'region' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_target_pools_format = {
+      'kind' => String,
+      'id' => String,
+      'items' => Array,
+      'selfLink' => String
+  }
+
+  tests('success') do
+
+    target_pool_name = 'test-target_pool'
+    region_name = 'us-central1'
+    # These will all fail if errors happen on insert
+    tests("#insert_target_pool").formats(@insert_target_pool_format) do
+      instance = create_test_server(Fog::Compute[:google], 'us-central1-a')
+      health_check = create_test_http_health_check(Fog::Compute[:google])
+      options = { 'instances' => [instance.self_link], 'healthChecks' => [health_check.self_link] }
+      response = @google.insert_target_pool(target_pool_name, region_name, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_target_pool").formats(@get_target_pool_format) do
+      @google.get_target_pool(target_pool_name, region_name).body
+    end
+
+    tests("#list_target_pools").formats(@list_target_pools_format) do
+      @google.list_target_pools(region_name).body
+    end
+
+    tests("#delete_target_pool").formats(@delete_target_pool_format) do
+      @google.delete_target_pool(target_pool_name, region_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/url_maps_tests.rb b/tests/google/requests/compute/url_maps_tests.rb
new file mode 100644
index 0000000..e0dd9dd
--- /dev/null
+++ b/tests/google/requests/compute/url_maps_tests.rb
@@ -0,0 +1,82 @@
+Shindo.tests('Fog::Compute[:google] | url map requests', ['google']) do
+
+  @google = Fog::Compute[:google]
+
+  @insert_url_map_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'zone' => String,
+      'insertTime' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @get_url_map_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'creationTimestamp' => String,
+      'name' => String,
+      'hostRules' => Array,
+      'pathMatchers' => Array,
+      'tests' => Array,
+      'defaultService' => String,
+  }
+
+  @delete_url_map_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'name' => String,
+      'targetLink' => String,
+      'targetId' => String,
+      'status' => String,
+      'user' => String,
+      'progress' => Integer,
+      'insertTime' => String,
+      'zone' => String,
+      'startTime' => String,
+      'operationType' => String
+  }
+
+  @list_url_maps_format = {
+      'kind' => String,
+      'id' => String,
+      'selfLink' => String,
+      'items' => Array
+  }
+
+  tests('success') do
+
+    url_map_name = 'test-url-map'
+
+    # These will all fail if errors happen on insert
+    tests("#insert_url_map").formats(@insert_url_map_format) do
+      backend_service = create_test_backend_service(Fog::Compute[:google])
+      options = { 'defaultService' => backend_service.self_link }
+      response = @google.insert_url_map(url_map_name, options).body
+      wait_operation(@google, response)
+      response
+    end
+
+    tests("#get_url_map").formats(@get_url_map_format) do
+      @google.get_url_map(url_map_name).body
+    end
+
+    tests("#list_url_maps").formats(@list_url_maps_format) do
+      @google.list_url_maps.body
+    end
+
+    tests("#delete_url_map").formats(@delete_url_map_format) do
+      @google.delete_url_map(url_map_name).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/compute/zone_tests.rb b/tests/google/requests/compute/zone_tests.rb
index bf518b7..d9eda0f 100644
--- a/tests/google/requests/compute/zone_tests.rb
+++ b/tests/google/requests/compute/zone_tests.rb
@@ -10,12 +10,8 @@ Shindo.tests('Fog::Compute[:google] | zone requests', ['google']) do
       'name' => String,
       'description' => String,
       'status' => String,
-      'maintenanceWindows' => Fog::Nullable::Array,
-      'quotas' => [{
-        'metric' => String,
-        'limit' => Float,
-        'usage' => Float},
-      ],
+      'region' => String,
+      'maintenanceWindows' => Fog::Nullable::Array
   }
 
   @list_zones_format = {
diff --git a/tests/google/requests/dns/managed_zone_tests.rb b/tests/google/requests/dns/managed_zone_tests.rb
new file mode 100644
index 0000000..74b1871
--- /dev/null
+++ b/tests/google/requests/dns/managed_zone_tests.rb
@@ -0,0 +1,66 @@
+Shindo.tests('Fog::DNS[:google] | managed_zone requests', ['google']) do
+
+  @google = Fog::DNS[:google]
+
+  @managed_zone_schema = {
+      'kind' => String,
+      'id' => String,
+      'creationTime' => String,
+      'name' => String,
+      'dnsName' => String,
+      'description' => String,
+      'nameServers' => [String],
+  }
+
+  @list_managed_zones_schema = {
+      'kind' => String,
+      'managedZones' => [@managed_zone_schema],
+  }
+
+  tests('success') do
+
+    zone_name = 'new-zone-test'
+    DEFAULT_ZONE_DNS_NAME = 'fog-test.your-own-domain.com.'
+    # Google requires confirmation of ownership for created domains in some
+    # cases.  If you want to run tests in non-mocked mode, set the environment
+    # variable to a domain you own.
+    zone_dns_name = ENV['FOG_TEST_GOOGLE_DNS_ZONE'] || DEFAULT_ZONE_DNS_NAME
+    unless Fog.mocking? or zone_dns_name != DEFAULT_ZONE_DNS_NAME
+      tests('Needs a verified domain, set $FOG_TEST_GOOGLE_DNS_ZONE').pending
+    end
+
+    tests("$FOG_TEST_GOOGLE_DNS_ZONE ends with dot").pending unless zone_dns_name.end_with?('.')
+
+    tests("#create_managed_zone").data_matches_schema(
+        @managed_zone_schema, {:allow_extra_keys => false}) do
+      @google.create_managed_zone(zone_name, zone_dns_name).body
+    end
+
+    tests("#get_managed_zone") do
+      response = @google.get_managed_zone(zone_name).body
+      tests('schema').data_matches_schema(@managed_zone_schema, {:allow_extra_keys => false}) { response }
+      tests('test zone present').returns(zone_name) { response['name'] }
+    end
+
+    tests("#list_managed_zones") do
+      response = @google.list_managed_zones().body
+      tests('schema').data_matches_schema(@list_managed_zones_schema, {:allow_extra_keys => false}) { response }
+      tests('test zone present').returns(true) { response['managedZones'].one? { |zone| zone['name'] == zone_name } }
+    end
+
+    tests("#delete_managed_zone").returns(nil) do
+      @google.delete_managed_zone(zone_name).body
+    end
+  end
+
+  tests('failure') do
+    tests("#delete_managed_zone").raises(Fog::Errors::NotFound) do
+      @google.delete_managed_zone('zone-which-does-not-exist').body
+    end
+
+    tests("#get_managed_zone").raises(Fog::Errors::NotFound) do
+      @google.get_managed_zone('zone-which-does-not-exist').body
+    end
+  end
+
+end
diff --git a/tests/google/requests/monitoring/metric_descriptor_tests.rb b/tests/google/requests/monitoring/metric_descriptor_tests.rb
new file mode 100644
index 0000000..642321f
--- /dev/null
+++ b/tests/google/requests/monitoring/metric_descriptor_tests.rb
@@ -0,0 +1,25 @@
+Shindo.tests('Fog::Google[:monitoring] | metric_descriptor requests', ['google']) do
+  @monitoring = Fog::Google[:monitoring]
+
+  @get_metric_descriptor_format = {
+    'name' => String,
+    'description' => String,
+    'labels' => Array,
+    'project' => String,
+    'typeDescriptor' => Hash,
+  }
+
+  @list_metric_descriptors_format = {
+    'kind' => String,
+    'metrics' => [@get_metric_descriptor_format],
+  }
+
+  tests('success') do
+
+    tests('#list_metric_descriptors').formats(@list_metric_descriptors_format) do
+      @monitoring.list_metric_descriptors.body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/monitoring/timeseries_collection_tests.rb b/tests/google/requests/monitoring/timeseries_collection_tests.rb
new file mode 100644
index 0000000..66b19da
--- /dev/null
+++ b/tests/google/requests/monitoring/timeseries_collection_tests.rb
@@ -0,0 +1,25 @@
+Shindo.tests('Fog::Google[:monitoring] | timeseries_collection requests', ['google']) do
+  @monitoring = Fog::Google[:monitoring]
+
+  @get_timeseries_format = {
+    'timeseriesDesc' => Hash,
+    'points' => Array,
+  }
+
+  @list_timeseries_format = {
+    'kind' => String,
+    'youngest' => String,
+    'oldest' => String,
+    'timeseries' => [@get_timeseries_format],
+  }
+
+  tests('success') do
+
+    tests('#list_timeseries').formats(@list_timeseries_format) do
+      @monitoring.list_timeseries('compute.googleapis.com/instance/uptime',
+                                  Time.now.strftime("%Y-%m-%dT%H:%M:%S%:z")).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/monitoring/timeseries_descriptor_tests.rb b/tests/google/requests/monitoring/timeseries_descriptor_tests.rb
new file mode 100644
index 0000000..8ba539e
--- /dev/null
+++ b/tests/google/requests/monitoring/timeseries_descriptor_tests.rb
@@ -0,0 +1,26 @@
+Shindo.tests('Fog::Google[:monitoring] | timeseries_descriptor requests', ['google']) do
+  @monitoring = Fog::Google[:monitoring]
+
+  @get_timeseries_descriptor_format = {
+    'metric' => String,
+    'project' => String,
+    'labels' => Hash,
+  }
+
+  @list_timeseries_descriptors_format = {
+    'kind' => String,
+    'youngest' => String,
+    'oldest' => String,
+    'timeseries' => [@get_timeseries_descriptor_format],
+  }
+
+  tests('success') do
+
+    tests('#list_timeseries_descriptors').formats(@list_timeseries_descriptors_format) do
+      @monitoring.list_timeseries_descriptors('compute.googleapis.com/instance/uptime',
+                                              Time.now.strftime("%Y-%m-%dT%H:%M:%S%:z")).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/sql/flag_tests.rb b/tests/google/requests/sql/flag_tests.rb
new file mode 100644
index 0000000..f9cf619
--- /dev/null
+++ b/tests/google/requests/sql/flag_tests.rb
@@ -0,0 +1,27 @@
+Shindo.tests('Fog::Google[:sql] | flag requests', ['google']) do
+  @sql = Fog::Google[:sql]
+
+  @get_flag_format = {
+    'name' => String,
+    'allowedStringValues' => Fog::Nullable::Array,
+    'appliesTo' => Array,
+    'kind' => String,
+    'maxValue' => Fog::Nullable::String,
+    'minValue' => Fog::Nullable::String,
+    'type' => String,
+  }
+
+  @list_flags_format = {
+    'kind' => String,
+    'items' => [@get_flag_format],
+  }
+
+  tests('success') do
+
+    tests('#list_flags').formats(@list_flags_format) do
+      @sql.list_flags.body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/sql/instance_tests.rb b/tests/google/requests/sql/instance_tests.rb
new file mode 100644
index 0000000..0172dde
--- /dev/null
+++ b/tests/google/requests/sql/instance_tests.rb
@@ -0,0 +1,129 @@
+Shindo.tests('Fog::Google[:sql] | instance requests', ['google']) do
+  @sql = Fog::Google[:sql]
+  @instance_id = Fog::Mock.random_letters(16)
+
+  @insert_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @get_instance_format = {
+    'instance' => String,
+    'currentDiskSize' => Fog::Nullable::String,
+    'databaseVersion' => String,
+    'etag' => String,
+    'ipAddresses' => Fog::Nullable::String,
+    'kind' => String,
+    'maxDiskSize' => String,
+    'project' => String,
+    'region' => String,
+    'serverCaCert' => Hash,
+    'settings' => Hash,
+    'state' => String,
+  }
+
+  @list_instances_format = {
+    'kind' => String,
+    'items' => [@get_instance_format],
+  }
+
+  @clone_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @export_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @import_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @reset_instance_ssl_config_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @restart_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @set_instance_root_password_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @update_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  @delete_instance_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  tests('success') do
+
+    tests('#insert_instance').formats(@insert_instance_format) do
+      result = @sql.insert_instance(@instance_id, 'D1').body
+      @sql.instances.get(@instance_id).wait_for { ready? }
+      result
+    end
+
+    tests('#list_instances').formats(@list_instances_format) do
+      @sql.list_instances.body
+    end
+
+    tests('#get_instance').formats(@get_instance_format) do
+      @sql.get_instance(@instance_id).body
+    end
+
+    tests('#update_instance').formats(@update_instance_format) do
+      instance = @sql.instances.get(@instance_id)
+      @sql.update_instance(instance.instance, instance.settings_version, instance.tier, instance.attributes).body
+    end
+
+    tests('#clone_instance').formats(@clone_instance_format) do
+      pending unless Fog.mocking? # Binary log must be activated
+      instance_cloned_id = Fog::Mock.random_letters(16)
+      clone_instance_format = @sql.clone_instance(@instance_id, instance_cloned_id).body
+      @sql.delete_instance(instance_cloned_id)
+      clone_instance_format
+    end
+
+    tests('#export_instance').formats(@export_instance_format) do
+      pending unless Fog.mocking? # We don't have access to a Google Cloud Storage bucket
+      @sql.export_instance(@instance_id, "gs://#{Fog::Mock.random_letters_and_numbers(16)}/mysql-export").body
+    end
+
+    tests('#import_instance').formats(@import_instance_format) do
+      pending unless Fog.mocking? # We don't have access to a Google Cloud Storage bucket
+      @sql.import_instance(@instance_id, "gs://#{Fog::Mock.random_letters_and_numbers(16)}/mysql-export").body
+    end
+
+    tests('#reset_instance_ssl_config').formats(@reset_instance_ssl_config_format) do
+      @sql.reset_instance_ssl_config(@instance_id).body
+    end
+
+    tests('#set_instance_root_password').formats(@set_instance_root_password_format) do
+      @sql.set_instance_root_password(@instance_id, Fog::Mock.random_letters_and_numbers(8)).body
+    end
+
+    tests('#restart_instance').formats(@restart_instance_format) do
+      result = @sql.restart_instance(@instance_id).body
+      @sql.operations.get(@instance_id, result['operation']).wait_for { ready? }
+      result
+    end
+
+    tests('#delete_instance').formats(@delete_instance_format) do
+      @sql.delete_instance(@instance_id).body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/sql/operation_tests.rb b/tests/google/requests/sql/operation_tests.rb
new file mode 100644
index 0000000..70a97b2
--- /dev/null
+++ b/tests/google/requests/sql/operation_tests.rb
@@ -0,0 +1,42 @@
+Shindo.tests('Fog::Google[:sql] | operation requests', ['google']) do
+  @sql = Fog::Google[:sql]
+  @instance_id = Fog::Mock.random_letters(16)
+  @instance = @sql.instances.create(:instance => @instance_id, :tier => 'D1')
+  @instance.wait_for { ready? }
+
+  @get_operation_format = {
+    'operation' => String,
+    'endTime' => Fog::Nullable::String,
+    'enqueuedTime' => String,
+    'error' => Fog::Nullable::Array,
+    'exportContext' => Fog::Nullable::Array,
+    'importContext' => Fog::Nullable::Array,
+    'instance' => String,
+    'kind' => String,
+    'operationType' => String,
+    'startTime' => Fog::Nullable::String,
+    'state' => String,
+    'userEmailAddress' => String,
+  }
+
+  @list_operations_format = {
+    'kind' => String,
+    'items' => [@get_operation_format],
+  }
+
+  tests('success') do
+
+    tests('#list_operations').formats(@list_operations_format) do
+      @sql.list_operations(@instance_id).body
+    end
+
+    tests('#get_operation').formats(@get_operation_format) do
+      operation_id = @sql.operations.all(@instance_id).first.operation
+      @sql.get_operation(@instance_id, operation_id).body
+    end
+
+  end
+
+  @instance.destroy
+
+end
diff --git a/tests/google/requests/sql/ssl_cert_tests.rb b/tests/google/requests/sql/ssl_cert_tests.rb
new file mode 100644
index 0000000..40e73b4
--- /dev/null
+++ b/tests/google/requests/sql/ssl_cert_tests.rb
@@ -0,0 +1,61 @@
+Shindo.tests('Fog::Google[:sql] | ssl_cert requests', ['google']) do
+  @sql = Fog::Google[:sql]
+  @instance_id = Fog::Mock.random_letters(16)
+  @instance = @sql.instances.create(:instance => @instance_id, :tier => 'D1')
+  @instance.wait_for { ready? }
+
+  @get_ssl_cert_format = {
+    'sha1Fingerprint' => String,
+    'cert' => String,
+    'certSerialNumber' => String,
+    'commonName' => String,
+    'createTime' => String,
+    'expirationTime' => Fog::Nullable::String,
+    'instance' => String,
+    'kind' => String,
+  }
+
+  @insert_ssl_cert_format = {
+    'kind' => String,
+    'serverCaCert' => @get_ssl_cert_format,
+    'clientCert' => {
+      'certInfo' => @get_ssl_cert_format,
+      'certPrivateKey' => String,
+    },
+  }
+
+  @list_ssl_certs_format = {
+    'kind' => String,
+    'items' => [@get_ssl_cert_format],
+  }
+
+  @delete_ssl_cert_format = {
+    'kind' => String,
+    'operation' => String,
+  }
+
+  tests('success') do
+
+    tests('#insert_ssl_cert').formats(@insert_ssl_cert_format) do
+      @sql.insert_ssl_cert(@instance_id, Fog::Mock.random_letters(16)).body
+    end
+
+    tests('#list_ssl_certs').formats(@list_ssl_certs_format) do
+      @sql.list_ssl_certs(@instance_id).body
+    end
+
+    tests('#get_ssl_cert').formats(@get_ssl_cert_format) do
+      sha1_fingerprint = @sql.ssl_certs.all(@instance_id).first.sha1_fingerprint
+      @sql.get_ssl_cert(@instance_id, sha1_fingerprint).body
+    end
+
+    tests('#delete_ssl_cert').formats(@delete_ssl_cert_format) do
+      sha1_fingerprint = @sql.ssl_certs.all(@instance_id).first.sha1_fingerprint
+      @sql.delete_ssl_cert(@instance_id, sha1_fingerprint).body
+    end
+
+  end
+
+  @instance.destroy
+
+end
diff --git a/tests/google/requests/sql/tier_tests.rb b/tests/google/requests/sql/tier_tests.rb
new file mode 100644
index 0000000..af83ae2
--- /dev/null
+++ b/tests/google/requests/sql/tier_tests.rb
@@ -0,0 +1,25 @@
+Shindo.tests('Fog::Google[:sql] | tier requests', ['google']) do
+  @sql = Fog::Google[:sql]
+
+  @get_tier_format = {
+    'tier' => String,
+    'DiskQuota' => String,
+    'kind' => String,
+    'RAM' => String,
+    'region' => Array,
+  }
+
+  @list_tiers_format = {
+    'kind' => String,
+    'items' => [@get_tier_format],
+  }
+
+  tests('success') do
+
+    tests('#list_tiers').formats(@list_tiers_format) do
+      @sql.list_tiers.body
+    end
+
+  end
+
+end
diff --git a/tests/google/requests/storage/object_tests.rb b/tests/google/requests/storage/object_tests.rb
index 27086be..e083e68 100644
--- a/tests/google/requests/storage/object_tests.rb
+++ b/tests/google/requests/storage/object_tests.rb
@@ -1,6 +1,9 @@
+require 'securerandom'
+
 Shindo.tests('Fog::Storage[:google] | object requests', ["google"]) do
 
-  @directory = Fog::Storage[:google].directories.create(:key => 'fogobjecttests')
+  random_string = SecureRandom.hex
+  @directory = Fog::Storage[:google].directories.create(:key => "fog-test-object-#{random_string}")
 
   tests('success') do
 
@@ -12,7 +15,7 @@ Shindo.tests('Fog::Storage[:google] | object requests', ["google"]) do
       Fog::Storage[:google].copy_object(@directory.identity, 'fog_object', @directory.identity, 'fog_other_object')
     end
 
-    @directory.files.get('fog_other_object').destroy
+    Fog::Storage[:google].delete_object(@directory.identity, 'fog_other_object')
 
     tests("#get_object('#{@directory.identity}', 'fog_object')").returns(lorem_file.read) do
       Fog::Storage[:google].get_object(@directory.identity, 'fog_object').body
diff --git a/tests/helper.rb b/tests/helper.rb
index 7eae3f2..edc0250 100644
--- a/tests/helper.rb
+++ b/tests/helper.rb
@@ -1,16 +1,3 @@
-require 'simplecov'
-
-if ENV['COVERAGE'] == 'true' && RUBY_VERSION != "1.9.2"
-  require 'coveralls'
-  SimpleCov.command_name "shindo:#{Process.pid.to_s}"
-  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
-    SimpleCov::Formatter::HTMLFormatter,
-    Coveralls::SimpleCov::Formatter
-  ]
-  SimpleCov.merge_timeout 3600
-  SimpleCov.start
-end
-
 ENV['FOG_RC']         = ENV['FOG_RC'] || File.expand_path('../.fog', __FILE__)
 ENV['FOG_CREDENTIAL'] = ENV['FOG_CREDENTIAL'] || 'default'
 
@@ -49,7 +36,7 @@ available_providers = Fog.available_providers.map {|provider| provider.downcase}
 unavailable_providers = all_providers - available_providers
 
 if !ENV['PROVIDER'].nil? && unavailable_providers.include?(ENV['PROVIDER'])
-  Formatador.display_line("[red]Requested provider #{ENV['PROVIDER']} is not available.[/]" + 
+  Formatador.display_line("[red]Requested provider #{ENV['PROVIDER']} is not available.[/]" +
                           "[red]Check if .fog file has correct configuration (see '#{Fog.credentials_path}')[/]")
   exit(0)
 end
diff --git a/tests/helpers/collection_helper.rb b/tests/helpers/collection_helper.rb
index 4026d40..e73e783 100644
--- a/tests/helpers/collection_helper.rb
+++ b/tests/helpers/collection_helper.rb
@@ -1,5 +1,4 @@
 def collection_tests(collection, params = {}, mocks_implemented = true)
-
   tests('success') do
 
     tests("#new(#{params.inspect})").succeeds do
@@ -11,8 +10,8 @@ def collection_tests(collection, params = {}, mocks_implemented = true)
       pending if Fog.mocking? && !mocks_implemented
       @instance = collection.create(params)
     end
-
     # FIXME: work around for timing issue on AWS describe_instances mocks
+
     if Fog.mocking? && @instance.respond_to?(:ready?)
       @instance.wait_for { ready? }
     end
@@ -22,8 +21,6 @@ def collection_tests(collection, params = {}, mocks_implemented = true)
       collection.all
     end
 
-
-
     if !Fog.mocking? || mocks_implemented
       @identity = @instance.identity
     end
@@ -73,9 +70,8 @@ def collection_tests(collection, params = {}, mocks_implemented = true)
 
     end
 
-
     if block_given?
-      yield
+      yield(@instance)
     end
 
     if !Fog.mocking? || mocks_implemented
@@ -98,5 +94,4 @@ def collection_tests(collection, params = {}, mocks_implemented = true)
     end
 
   end
-
 end
diff --git a/tests/helpers/compute/flavors_helper.rb b/tests/helpers/compute/flavors_helper.rb
index 11b98a3..b9170e8 100644
--- a/tests/helpers/compute/flavors_helper.rb
+++ b/tests/helpers/compute/flavors_helper.rb
@@ -1,5 +1,4 @@
 def flavors_tests(connection, params = {}, mocks_implemented = true)
-
   tests('success') do
 
     tests("#all").succeeds do
@@ -30,5 +29,4 @@ def flavors_tests(connection, params = {}, mocks_implemented = true)
     end
 
   end
-
 end
diff --git a/tests/helpers/compute/server_helper.rb b/tests/helpers/compute/server_helper.rb
index 3d37a96..90a79fb 100644
--- a/tests/helpers/compute/server_helper.rb
+++ b/tests/helpers/compute/server_helper.rb
@@ -1,5 +1,4 @@
 def server_tests(connection, params = {}, mocks_implemented = true)
-
   model_tests(connection.servers, params, mocks_implemented) do
 
     tests('#reload').returns(true) do
@@ -23,5 +22,4 @@ def server_tests(connection, params = {}, mocks_implemented = true)
     end
 
   end
-
 end
diff --git a/tests/helpers/compute/servers_helper.rb b/tests/helpers/compute/servers_helper.rb
index dfa6cad..60a2922 100644
--- a/tests/helpers/compute/servers_helper.rb
+++ b/tests/helpers/compute/servers_helper.rb
@@ -1,5 +1,4 @@
 def servers_tests(connection, params = {}, mocks_implemented = true)
-
   collection_tests(connection.servers, params, mocks_implemented) do
 
     if !Fog.mocking? || mocks_implemented
@@ -8,5 +7,4 @@ def servers_tests(connection, params = {}, mocks_implemented = true)
     end
 
   end
-
 end
diff --git a/tests/helpers/formats_helper.rb b/tests/helpers/formats_helper.rb
index 3d5d398..0053bb5 100644
--- a/tests/helpers/formats_helper.rb
+++ b/tests/helpers/formats_helper.rb
@@ -26,7 +26,6 @@ end
 
 module Shindo
   class Tests
-
     # Generates a Shindo test that compares a hash schema to the result
     # of the passed in block returning true if they match.
     #
diff --git a/tests/helpers/formats_helper_tests.rb b/tests/helpers/formats_helper_tests.rb
index f62c79e..dba2386 100644
--- a/tests/helpers/formats_helper_tests.rb
+++ b/tests/helpers/formats_helper_tests.rb
@@ -107,5 +107,4 @@ Shindo.tests('test_helper', 'meta') do
 
   end
 
-
 end
diff --git a/tests/helpers/mock_helper.rb b/tests/helpers/mock_helper.rb
index c2c8508..d1e315b 100644
--- a/tests/helpers/mock_helper.rb
+++ b/tests/helpers/mock_helper.rb
@@ -65,6 +65,9 @@ if Fog.mock?
     :ninefold_storage_token           => 'ninefold_storage_token',
 #    :public_key_path                  => '~/.ssh/id_rsa.pub',
 #    :private_key_path                 => '~/.ssh/id_rsa',
+    :opennebula_endpoint              => 'http://opennebula:2633/RPC2',
+    :opennebula_username              => 'oneadmin',
+    :opennebula_password              => 'oneadmin',
     :openstack_api_key                => 'openstack_api_key',
     :openstack_username               => 'openstack_username',
     :openstack_tenant                 => 'openstack_tenant',
@@ -74,6 +77,7 @@ if Fog.mock?
     :ovirt_password                   => '123123',
     :libvirt_uri                      => 'qemu://libvirt/system',
     :rackspace_api_key                => 'rackspace_api_key',
+    :rackspace_region                 => 'dfw',
     :rackspace_username               => 'rackspace_username',
     :riakcs_access_key_id             => 'riakcs_access_key_id',
     :riakcs_secret_access_key         => 'riakcs_secret_access_key',
diff --git a/tests/helpers/model_helper.rb b/tests/helpers/model_helper.rb
index afbe7a6..e026a7b 100644
--- a/tests/helpers/model_helper.rb
+++ b/tests/helpers/model_helper.rb
@@ -1,5 +1,4 @@
 def model_tests(collection, params = {}, mocks_implemented = true)
-
   tests('success') do
 
     @instance = collection.new(params)
@@ -10,7 +9,7 @@ def model_tests(collection, params = {}, mocks_implemented = true)
     end
 
     if block_given?
-      yield
+      yield(@instance)
     end
 
     tests("#destroy").succeeds do
@@ -19,7 +18,6 @@ def model_tests(collection, params = {}, mocks_implemented = true)
     end
 
   end
-
 end
 
 # Generates a unique identifier with a random differentiator.
@@ -31,5 +29,3 @@ def uniq_id(base_name = 'fog-test')
   suffix = rand(65536).to_s(16).rjust(4, '0')
   [base_name, suffix] * '-'
 end
-
-
diff --git a/tests/helpers/responds_to_helper.rb b/tests/helpers/responds_to_helper.rb
index f1482df..5982700 100644
--- a/tests/helpers/responds_to_helper.rb
+++ b/tests/helpers/responds_to_helper.rb
@@ -1,6 +1,5 @@
 module Shindo
   class Tests
-
     def responds_to(method_names)
       for method_name in [*method_names]
         tests("#respond_to?(:#{method_name})").returns(true) do
@@ -8,6 +7,5 @@ module Shindo
         end
       end
     end
-
   end
 end
diff --git a/tests/helpers/succeeds_helper.rb b/tests/helpers/succeeds_helper.rb
index fe6fb1b..b54589e 100644
--- a/tests/helpers/succeeds_helper.rb
+++ b/tests/helpers/succeeds_helper.rb
@@ -1,11 +1,9 @@
 module Shindo
   class Tests
-
     def succeeds
       test('succeeds') do
         !!instance_eval(&Proc.new)
       end
     end
-
   end
 end
diff --git a/tests/hp/models/block_storage_v2/volume_backups_tests.rb b/tests/hp/models/block_storage_v2/volume_backups_tests.rb
index 44cfa32..3365821 100644
--- a/tests/hp/models/block_storage_v2/volume_backups_tests.rb
+++ b/tests/hp/models/block_storage_v2/volume_backups_tests.rb
@@ -6,4 +6,4 @@ Shindo.tests("Fog::Compute::HPV2 | volume backups collection", ['hp', 'v2', 'blo
   collection_tests(HP[:block_storage_v2].volume_backups, {:name => 'fogbkp2tests', :description => 'fogbkp2tests-desc', :volume_id => @volume.id}, true)
 
   @volume.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute/addresses_tests.rb b/tests/hp/models/compute/addresses_tests.rb
index eb82177..a6065be 100644
--- a/tests/hp/models/compute/addresses_tests.rb
+++ b/tests/hp/models/compute/addresses_tests.rb
@@ -2,4 +2,4 @@ Shindo.tests("Fog::Compute[:hp] | addresses", ['hp']) do
 
   collection_tests(Fog::Compute[:hp].addresses, {}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute/key_pair_tests.rb b/tests/hp/models/compute/key_pair_tests.rb
index 4b4c49f..edacef6 100644
--- a/tests/hp/models/compute/key_pair_tests.rb
+++ b/tests/hp/models/compute/key_pair_tests.rb
@@ -23,5 +23,4 @@ Shindo.tests("Fog::Compute[:hp] | key_pair", ['hp']) do
     end
   end
 
-
 end
diff --git a/tests/hp/models/compute/key_pairs_tests.rb b/tests/hp/models/compute/key_pairs_tests.rb
index 60e34eb..a49b96c 100644
--- a/tests/hp/models/compute/key_pairs_tests.rb
+++ b/tests/hp/models/compute/key_pairs_tests.rb
@@ -2,4 +2,4 @@ Shindo.tests("Fog::Compute[:hp] | key_pairs", ['hp']) do
 
   collection_tests(Fog::Compute[:hp].key_pairs, {:name => 'fogkeyname'}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute_v2/addresses_tests.rb b/tests/hp/models/compute_v2/addresses_tests.rb
index 87d22ac..1fc99bf 100644
--- a/tests/hp/models/compute_v2/addresses_tests.rb
+++ b/tests/hp/models/compute_v2/addresses_tests.rb
@@ -4,4 +4,4 @@ Shindo.tests("Fog::Compute::HPV2 | addresses collection", ['hp', 'v2', 'compute'
 
   collection_tests(service.addresses, {}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute_v2/availability_zone_tests.rb b/tests/hp/models/compute_v2/availability_zone_tests.rb
index e0b5eed..2aab2cf 100644
--- a/tests/hp/models/compute_v2/availability_zone_tests.rb
+++ b/tests/hp/models/compute_v2/availability_zone_tests.rb
@@ -8,6 +8,4 @@ Shindo.tests("Fog::Compute::HPV2 | availability zone model", ['hp', 'v2', 'compu
     @zones.first.respond_to?('available?')
   end
 
-
-
 end
diff --git a/tests/hp/models/compute_v2/availability_zones_tests.rb b/tests/hp/models/compute_v2/availability_zones_tests.rb
index a97143d..f914203 100644
--- a/tests/hp/models/compute_v2/availability_zones_tests.rb
+++ b/tests/hp/models/compute_v2/availability_zones_tests.rb
@@ -10,4 +10,4 @@ Shindo.tests("Fog::Compute::HPV2 | availability zones collection", ['hp', 'v2',
     @zones.get('az1').name == 'az1'
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute_v2/key_pair_tests.rb b/tests/hp/models/compute_v2/key_pair_tests.rb
index 4368699..7551b8f 100644
--- a/tests/hp/models/compute_v2/key_pair_tests.rb
+++ b/tests/hp/models/compute_v2/key_pair_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests("Fog::Compute::HPV2 | key_pair model", ['hp', 'v2', 'compute']) do
 
   service = Fog::Compute.new(:provider => 'HP', :version => :v2)
-  
+
   model_tests(service.key_pairs, {:name => 'fogkeyname'}, true)
 
   after do
@@ -25,5 +25,4 @@ Shindo.tests("Fog::Compute::HPV2 | key_pair model", ['hp', 'v2', 'compute']) do
     end
   end
 
-
 end
diff --git a/tests/hp/models/compute_v2/key_pairs_tests.rb b/tests/hp/models/compute_v2/key_pairs_tests.rb
index 0f0fddf..a7c0b67 100644
--- a/tests/hp/models/compute_v2/key_pairs_tests.rb
+++ b/tests/hp/models/compute_v2/key_pairs_tests.rb
@@ -4,4 +4,4 @@ Shindo.tests("Fog::Compute::HPV2 | key pairs collection", ['hp', 'v2', 'compute'
 
   collection_tests(service.key_pairs, {:name => 'fogkeyname'}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute_v2/servers_tests.rb b/tests/hp/models/compute_v2/servers_tests.rb
index 2b364f0..27a655b 100644
--- a/tests/hp/models/compute_v2/servers_tests.rb
+++ b/tests/hp/models/compute_v2/servers_tests.rb
@@ -6,4 +6,4 @@ Shindo.tests("Fog::Compute::HPV2 | servers collection", ['hp', 'v2', 'compute'])
 
   collection_tests(service.servers, {:name => 'fogservercolltest', :flavor_id => 100, :image_id => @base_image_id}, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/compute_v2/volume_attachments_tests.rb b/tests/hp/models/compute_v2/volume_attachments_tests.rb
index 34b00f4..c5d280e 100644
--- a/tests/hp/models/compute_v2/volume_attachments_tests.rb
+++ b/tests/hp/models/compute_v2/volume_attachments_tests.rb
@@ -14,4 +14,4 @@ Shindo.tests("Fog::Compute::HPV2 | volume attachments collection", ['hp', 'v2',
   @volume.destroy
   @server.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/dns/domains_tests.rb b/tests/hp/models/dns/domains_tests.rb
index 5b92d66..fa3f06e 100644
--- a/tests/hp/models/dns/domains_tests.rb
+++ b/tests/hp/models/dns/domains_tests.rb
@@ -11,4 +11,4 @@ Shindo.tests('HP::DNS | domains collection', ['hp', 'dns', 'domains']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/dns/records_tests.rb b/tests/hp/models/dns/records_tests.rb
index ddf6093..17ec76d 100644
--- a/tests/hp/models/dns/records_tests.rb
+++ b/tests/hp/models/dns/records_tests.rb
@@ -6,4 +6,4 @@ Shindo.tests('HP::DNS | records collection', ['hp', 'dns', 'records']) do
   collection_tests(@domain.records, attributes, true)
 
   @domain.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/algorithms_tests.rb b/tests/hp/models/lb/algorithms_tests.rb
index f5e32ba..1e342e3 100644
--- a/tests/hp/models/lb/algorithms_tests.rb
+++ b/tests/hp/models/lb/algorithms_tests.rb
@@ -12,4 +12,4 @@ Shindo.tests('HP::LB | algorithms collection', ['hp', 'lb', 'algorithms']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/load_balancer_node_tests.rb b/tests/hp/models/lb/load_balancer_node_tests.rb
index 704423d..c222c40 100644
--- a/tests/hp/models/lb/load_balancer_node_tests.rb
+++ b/tests/hp/models/lb/load_balancer_node_tests.rb
@@ -6,4 +6,4 @@ Shindo.tests('HP::LB | load balancer node model', ['hp', 'lb', 'node']) do
   attributes = {:address => '15.185.1.1', :port => '80'}
   model_tests(@lb.nodes, attributes, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/load_balancer_nodes_tests.rb b/tests/hp/models/lb/load_balancer_nodes_tests.rb
index 46f8f60..993bb9f 100644
--- a/tests/hp/models/lb/load_balancer_nodes_tests.rb
+++ b/tests/hp/models/lb/load_balancer_nodes_tests.rb
@@ -24,4 +24,4 @@ Shindo.tests('HP::LB | load balancer nodes collection', ['hp', 'lb', 'node']) do
 
   @lb.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/load_balancer_tests.rb b/tests/hp/models/lb/load_balancer_tests.rb
index b24161b..74bf4c2 100644
--- a/tests/hp/models/lb/load_balancer_tests.rb
+++ b/tests/hp/models/lb/load_balancer_tests.rb
@@ -3,4 +3,4 @@ Shindo.tests('HP::LB | load balancer model', ['hp', 'lb', 'load_balancer']) do
   attributes = {:name => 'fog-lb', :nodes => [{'address' => '15.185.1.1', 'port' => '80'}]}
   model_tests(HP[:lb].load_balancers, attributes, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/load_balancer_virtual_ips_tests.rb b/tests/hp/models/lb/load_balancer_virtual_ips_tests.rb
index f1d0d58..e9472e1 100644
--- a/tests/hp/models/lb/load_balancer_virtual_ips_tests.rb
+++ b/tests/hp/models/lb/load_balancer_virtual_ips_tests.rb
@@ -19,4 +19,4 @@ Shindo.tests('HP::LB | load balancer virtual ips collection', ['hp', 'lb', 'virt
 
   @lb.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/load_balancers_tests.rb b/tests/hp/models/lb/load_balancers_tests.rb
index ee53622..4d231ef 100644
--- a/tests/hp/models/lb/load_balancers_tests.rb
+++ b/tests/hp/models/lb/load_balancers_tests.rb
@@ -19,4 +19,4 @@ Shindo.tests('HP::LB | load balancer collection', ['hp', 'lb', 'load_balancer'])
     @lb.destroy
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/lb/protocols_tests.rb b/tests/hp/models/lb/protocols_tests.rb
index 13035c8..55342ca 100644
--- a/tests/hp/models/lb/protocols_tests.rb
+++ b/tests/hp/models/lb/protocols_tests.rb
@@ -12,4 +12,4 @@ Shindo.tests('HP::LB | protocol collection', ['hp', 'lb', 'protocol']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/floating_ips_tests.rb b/tests/hp/models/network/floating_ips_tests.rb
index 94cb8c3..5fc986e 100644
--- a/tests/hp/models/network/floating_ips_tests.rb
+++ b/tests/hp/models/network/floating_ips_tests.rb
@@ -5,4 +5,4 @@ Shindo.tests('HP::Network | networking floating ips collection', ['hp', 'network
   attributes = {:floating_network_id => @ext_network.id}
   collection_tests(HP[:network].floating_ips, attributes, true)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/networks_tests.rb b/tests/hp/models/network/networks_tests.rb
index a5dc755..fd95e37 100644
--- a/tests/hp/models/network/networks_tests.rb
+++ b/tests/hp/models/network/networks_tests.rb
@@ -12,4 +12,4 @@ Shindo.tests('HP::Network | networking networks collection', ['hp', 'networking'
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/ports_tests.rb b/tests/hp/models/network/ports_tests.rb
index b504aeb..9e2164f 100644
--- a/tests/hp/models/network/ports_tests.rb
+++ b/tests/hp/models/network/ports_tests.rb
@@ -18,4 +18,4 @@ Shindo.tests('HP::Network | networking ports collection', ['hp', 'networking', '
   end
 
   @network.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/routers_tests.rb b/tests/hp/models/network/routers_tests.rb
index a06a230..dcd1a00 100644
--- a/tests/hp/models/network/routers_tests.rb
+++ b/tests/hp/models/network/routers_tests.rb
@@ -16,4 +16,4 @@ Shindo.tests('HP::Network | networking routers collection', ['hp', 'networking',
     @router.destroy
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/security_group_rules_tests.rb b/tests/hp/models/network/security_group_rules_tests.rb
index 96ec337..c08baee 100644
--- a/tests/hp/models/network/security_group_rules_tests.rb
+++ b/tests/hp/models/network/security_group_rules_tests.rb
@@ -20,4 +20,4 @@ Shindo.tests('HP::Network | networking security group rules collection', ['hp',
   end
 
   @secgroup.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/security_groups_tests.rb b/tests/hp/models/network/security_groups_tests.rb
index b3ddc92..33b5cad 100644
--- a/tests/hp/models/network/security_groups_tests.rb
+++ b/tests/hp/models/network/security_groups_tests.rb
@@ -17,4 +17,4 @@ Shindo.tests('HP::Network | networking security groups collection', ['hp', 'netw
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/network/subnets_tests.rb b/tests/hp/models/network/subnets_tests.rb
index b323cfd..ecac30f 100644
--- a/tests/hp/models/network/subnets_tests.rb
+++ b/tests/hp/models/network/subnets_tests.rb
@@ -19,4 +19,4 @@ Shindo.tests('HP::Network | networking subnets collection', ['hp', 'networking',
   end
 
   @network.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/storage/directories_tests.rb b/tests/hp/models/storage/directories_tests.rb
index fc87416..ea9a947 100644
--- a/tests/hp/models/storage/directories_tests.rb
+++ b/tests/hp/models/storage/directories_tests.rb
@@ -20,4 +20,4 @@ Shindo.tests("Fog::Storage[:hp] | directories", ['hp', 'storage']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/storage/directory_tests.rb b/tests/hp/models/storage/directory_tests.rb
index fcf20b5..cf7648f 100644
--- a/tests/hp/models/storage/directory_tests.rb
+++ b/tests/hp/models/storage/directory_tests.rb
@@ -124,7 +124,6 @@ Shindo.tests("Fog::Storage[:hp] | directory", ['hp', 'storage']) do
         @instance.revoke('invalid-acl')
       end
 
-
     end
 
   end
diff --git a/tests/hp/models/storage/file_tests.rb b/tests/hp/models/storage/file_tests.rb
index 6c2b8f1..1f69982 100644
--- a/tests/hp/models/storage/file_tests.rb
+++ b/tests/hp/models/storage/file_tests.rb
@@ -41,4 +41,4 @@ Shindo.tests("Fog::Storage[:hp] | directory", ['hp', 'storage']) do
 
   @directory.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/models/storage/files_tests.rb b/tests/hp/models/storage/files_tests.rb
index a211dad..4665b20 100644
--- a/tests/hp/models/storage/files_tests.rb
+++ b/tests/hp/models/storage/files_tests.rb
@@ -35,4 +35,4 @@ Shindo.tests("Fog::Storage[:hp] | files", ['hp', 'storage']) do
   @file.destroy
   @directory.destroy
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/compute/metadata_tests.rb b/tests/hp/requests/compute/metadata_tests.rb
index 688a6d1..1094cdd 100644
--- a/tests/hp/requests/compute/metadata_tests.rb
+++ b/tests/hp/requests/compute/metadata_tests.rb
@@ -67,4 +67,4 @@ Shindo.tests("Fog::Compute[:hp] | metadata requests", ['hp']) do
 
     @server.destroy
   end
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/compute/security_group_tests.rb b/tests/hp/requests/compute/security_group_tests.rb
index 0ca237d..d93939d 100644
--- a/tests/hp/requests/compute/security_group_tests.rb
+++ b/tests/hp/requests/compute/security_group_tests.rb
@@ -34,7 +34,6 @@ Shindo.tests("Fog::Compute[:hp] | security group requests", ['hp']) do
       Fog::Compute[:hp].list_security_groups.body
     end
 
-
     tests("#delete_security_group('#{@sec_group_id}')").succeeds do
       Fog::Compute[:hp].delete_security_group(@sec_group_id).body
     end
diff --git a/tests/hp/requests/compute/server_volume_tests.rb b/tests/hp/requests/compute/server_volume_tests.rb
index 81ba1fd..51b07a7 100644
--- a/tests/hp/requests/compute/server_volume_tests.rb
+++ b/tests/hp/requests/compute/server_volume_tests.rb
@@ -43,7 +43,6 @@ Shindo.tests("Fog::Compute[:hp] | volume requests", ['hp', 'compute', 'volumes']
 
   end
 
-
   tests('failure') do
 
     tests("#list_server_volumes(0)").raises(Fog::Compute::HP::NotFound) do
diff --git a/tests/hp/requests/compute_v2/availability_zone_tests.rb b/tests/hp/requests/compute_v2/availability_zone_tests.rb
index 18f2e13..d3438e1 100644
--- a/tests/hp/requests/compute_v2/availability_zone_tests.rb
+++ b/tests/hp/requests/compute_v2/availability_zone_tests.rb
@@ -16,4 +16,4 @@ Shindo.tests("Fog::Compute::HPV2 | availability_zone requests", ['hp', 'v2', 'co
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/compute_v2/metadata_tests.rb b/tests/hp/requests/compute_v2/metadata_tests.rb
index f147593..fda13f9 100644
--- a/tests/hp/requests/compute_v2/metadata_tests.rb
+++ b/tests/hp/requests/compute_v2/metadata_tests.rb
@@ -98,4 +98,4 @@ Shindo.tests("Fog::Compute::HPV2 | metadata requests", ['hp', 'v2', 'compute'])
     end
 
   end
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/compute_v2/server_security_group_tests.rb b/tests/hp/requests/compute_v2/server_security_group_tests.rb
index 2c0f061..767dfd0 100644
--- a/tests/hp/requests/compute_v2/server_security_group_tests.rb
+++ b/tests/hp/requests/compute_v2/server_security_group_tests.rb
@@ -39,5 +39,4 @@ Shindo.tests("Fog::Compute::HPV2 | server security group requests", ['hp', 'v2',
 
   end
 
-
 end
diff --git a/tests/hp/requests/compute_v2/server_volume_tests.rb b/tests/hp/requests/compute_v2/server_volume_tests.rb
index 3abe360..d3a8460 100644
--- a/tests/hp/requests/compute_v2/server_volume_tests.rb
+++ b/tests/hp/requests/compute_v2/server_volume_tests.rb
@@ -48,7 +48,6 @@ Shindo.tests("Fog::Compute::HPV2 | volume requests", ['hp', 'v2', 'compute', 'vo
 
   end
 
-
   tests('failure') do
 
     tests('#list_server_volumes(0)').raises(Fog::Compute::HPV2::NotFound) do
diff --git a/tests/hp/requests/dns/domain_tests.rb b/tests/hp/requests/dns/domain_tests.rb
index b33ef75..9cd06c3 100644
--- a/tests/hp/requests/dns/domain_tests.rb
+++ b/tests/hp/requests/dns/domain_tests.rb
@@ -69,4 +69,4 @@ Shindo.tests("HP::DNS | domain requests", ['hp', 'dns', 'domain']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/dns/records_tests.rb b/tests/hp/requests/dns/records_tests.rb
index d4d9cd8..6c0a500 100644
--- a/tests/hp/requests/dns/records_tests.rb
+++ b/tests/hp/requests/dns/records_tests.rb
@@ -61,5 +61,4 @@ Shindo.tests("HP::DNS | record requests", ['hp', 'dns', 'record']) do
 
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/algorithms_tests.rb b/tests/hp/requests/lb/algorithms_tests.rb
index 3148218..b0b2c69 100644
--- a/tests/hp/requests/lb/algorithms_tests.rb
+++ b/tests/hp/requests/lb/algorithms_tests.rb
@@ -11,5 +11,4 @@ Shindo.tests("HP::LB | algorithms", ['hp', 'lb', 'algorithms']) do
 
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/limits_tests.rb b/tests/hp/requests/lb/limits_tests.rb
index 6262beb..97f0fb5 100644
--- a/tests/hp/requests/lb/limits_tests.rb
+++ b/tests/hp/requests/lb/limits_tests.rb
@@ -6,7 +6,6 @@ Shindo.tests("HP::LB | limits requests", ['hp', 'lb', 'limits']) do
     'maxVIPsPerLoadBalancer'    => Integer,
   }
 
-
   tests('success') do
 
     tests('#list_limits').formats({'limits' => [{'values' => @limits_format }]}) do
@@ -14,5 +13,4 @@ Shindo.tests("HP::LB | limits requests", ['hp', 'lb', 'limits']) do
     end
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/load_balancer_nodes_tests.rb b/tests/hp/requests/lb/load_balancer_nodes_tests.rb
index b7efd47..193774a 100644
--- a/tests/hp/requests/lb/load_balancer_nodes_tests.rb
+++ b/tests/hp/requests/lb/load_balancer_nodes_tests.rb
@@ -43,5 +43,4 @@ Shindo.tests('HP::LB | load balancer nodes', ['hp', 'lb', 'nodes']) do
     end
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/load_balancer_tests.rb b/tests/hp/requests/lb/load_balancer_tests.rb
index 8e1aec9..19be317 100644
--- a/tests/hp/requests/lb/load_balancer_tests.rb
+++ b/tests/hp/requests/lb/load_balancer_tests.rb
@@ -53,4 +53,4 @@ Shindo.tests("HP::LB | load balancers requests", ['hp', 'lb', 'load_balancer'])
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/protocols_tests.rb b/tests/hp/requests/lb/protocols_tests.rb
index 2df7a19..9b92240 100644
--- a/tests/hp/requests/lb/protocols_tests.rb
+++ b/tests/hp/requests/lb/protocols_tests.rb
@@ -11,5 +11,4 @@ Shindo.tests("HP::LB | protocols requests", ['hp', 'lb', 'protocols']) do
     end
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/versions_tests.rb b/tests/hp/requests/lb/versions_tests.rb
index f1054a6..fa2eab8 100644
--- a/tests/hp/requests/lb/versions_tests.rb
+++ b/tests/hp/requests/lb/versions_tests.rb
@@ -13,5 +13,4 @@ Shindo.tests("HP::LB | versions requests", ['hp', 'lb', 'versions']) do
     end
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/lb/virtual_ips_tests.rb b/tests/hp/requests/lb/virtual_ips_tests.rb
index ade2d5d..3011b40 100644
--- a/tests/hp/requests/lb/virtual_ips_tests.rb
+++ b/tests/hp/requests/lb/virtual_ips_tests.rb
@@ -31,4 +31,4 @@ Shindo.tests("HP::LB | virtual ips requests", ['hp', 'lb', 'virtual_ips']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/network/floating_ip_tests.rb b/tests/hp/requests/network/floating_ip_tests.rb
index 20090e5..6ef9f63 100644
--- a/tests/hp/requests/network/floating_ip_tests.rb
+++ b/tests/hp/requests/network/floating_ip_tests.rb
@@ -67,4 +67,4 @@ Shindo.tests('HP::Network | networking floating ip requests', ['hp', 'networking
   # cleanup
   HP[:network].delete_port(@port_id)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/network/network_tests.rb b/tests/hp/requests/network/network_tests.rb
index bf8db6e..7b8ac7f 100644
--- a/tests/hp/requests/network/network_tests.rb
+++ b/tests/hp/requests/network/network_tests.rb
@@ -54,4 +54,4 @@ Shindo.tests('HP::Network | networking network requests', ['hp',  'networking',
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/network/port_tests.rb b/tests/hp/requests/network/port_tests.rb
index 57ac1d4..6d49918 100644
--- a/tests/hp/requests/network/port_tests.rb
+++ b/tests/hp/requests/network/port_tests.rb
@@ -68,4 +68,4 @@ Shindo.tests('HP::Network | networking port requests', ['hp', 'networking', 'por
   # cleanup
   HP[:network].delete_network(@network_id)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/network/router_tests.rb b/tests/hp/requests/network/router_tests.rb
index 551bb44..f0e3c0f 100644
--- a/tests/hp/requests/network/router_tests.rb
+++ b/tests/hp/requests/network/router_tests.rb
@@ -105,4 +105,4 @@ Shindo.tests('HP::Network | networking router requests', ['hp', 'networking', 'r
   #HP[:network].delete_port(@port_id)
   HP[:network].delete_network(@network_id)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/network/subnet_tests.rb b/tests/hp/requests/network/subnet_tests.rb
index f6c586a..f03cdb4 100644
--- a/tests/hp/requests/network/subnet_tests.rb
+++ b/tests/hp/requests/network/subnet_tests.rb
@@ -68,4 +68,4 @@ Shindo.tests('HP::Network | networking subnet requests', ['hp', 'networking', 's
   # cleanup
   HP[:network].delete_network(@network_id)
 
-end
\ No newline at end of file
+end
diff --git a/tests/hp/requests/storage/object_tests.rb b/tests/hp/requests/storage/object_tests.rb
index 389854c..70c3f4e 100644
--- a/tests/hp/requests/storage/object_tests.rb
+++ b/tests/hp/requests/storage/object_tests.rb
@@ -56,7 +56,7 @@ Shindo.tests("Fog::Storage[:hp] | object requests", ['hp', 'storage']) do
       Fog::Storage[:hp].delete_object(@dir_name, 'fog_object')
       Fog::Storage[:hp].delete_object(@dir_name, 'fog_delete_object')
     end
-    
+
     tests("#get_object_http_url('#{@directory.identity}', 'fog_object', expiration timestamp)").returns(true) do
       object_url = Fog::Storage[:hp].get_object_http_url(@dir_name, 'fog_object', (Time.now + 60))
       object_url.include? "fog_object"
@@ -115,7 +115,7 @@ Shindo.tests("Fog::Storage[:hp] | object requests", ['hp', 'storage']) do
     end
 
   end
-  
+
   @directory.destroy
 
 end
diff --git a/tests/hp/storage_tests.rb b/tests/hp/storage_tests.rb
index ec8c8b0..48c0536 100644
--- a/tests/hp/storage_tests.rb
+++ b/tests/hp/storage_tests.rb
@@ -1,25 +1,28 @@
-Shindo.tests('Fog::Storage::HP', ['hp', 'storage']) do
-  credentials = {
-    :auth_token => 'auth_token',
-    :endpoint_url => 'http://127.0.0.1/path/',
-    :cdn_endpoint_url => 'http://127.0.0.1/cdnpath/',
-    :service_catalog => {
-      :"Object Storage" => {
-      :zone => 'http://127.0.0.1/path/'},
-      :"CDN" => {
-      :zone => 'http://127.0.0.1/cdnpath/'}},
-    :expires => (DateTime.now + 1).to_s
-  }
-  options = {
-    :hp_access_key => 'key',
-    :hp_secret_key => 'secret',
-    :hp_tenant_id => 'tenant',
-    :hp_avl_zone => 'zone',
-    :hp_auth_uri => 'https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens',
-    :credentials => credentials
-  }
-  tests('Test cached Storage credentials').returns(credentials) do
-    conn = Fog::Storage::HP::Real.new(options)
-    conn.credentials
+unless ENV["FOG_MOCK"] == "true"
+  Shindo.tests('Fog::Storage::HP', ['hp', 'storage']) do
+    credentials = {
+      :auth_token       => 'auth_token',
+      :endpoint_url     => 'http://127.0.0.1/path/',
+      :cdn_endpoint_url => 'http://127.0.0.1/cdnpath/',
+      :service_catalog  => {
+        :"Object Storage" => {
+          :zone => 'http://127.0.0.1/path/'},
+        :"CDN"            => {
+          :zone => 'http://127.0.0.1/cdnpath/'}},
+      :expires          => (DateTime.now + 1).to_s
+    }
+    options     = {
+      :hp_access_key => 'key',
+      :hp_secret_key => 'secret',
+      :hp_tenant_id  => 'tenant',
+      :hp_avl_zone   => 'zone',
+      :hp_auth_uri   => 'https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens',
+      :credentials   => credentials
+    }
+    tests('Test cached Storage credentials').returns(credentials) do
+
+      conn = Fog::Storage::HP::Real.new(options)
+      conn.credentials
+    end
   end
 end
diff --git a/tests/hp/user_agent_tests.rb b/tests/hp/user_agent_tests.rb
index 2468d99..0807cdb 100644
--- a/tests/hp/user_agent_tests.rb
+++ b/tests/hp/user_agent_tests.rb
@@ -10,4 +10,4 @@ Shindo.tests('Fog::Compute[:hp] | user agent', ['hp', 'user_agent']) do
     conn = Fog::Compute::HP.new(:user_agent => "TesterClient/1.0.0")
     conn.instance_variable_get(:@connection_options)[:headers]['User-Agent']
   end
-end
\ No newline at end of file
+end
diff --git a/tests/internet_archive/models/storage/directory_tests.rb b/tests/internet_archive/models/storage/directory_tests.rb
index 2faaeaf..d4b6dff 100644
--- a/tests/internet_archive/models/storage/directory_tests.rb
+++ b/tests/internet_archive/models/storage/directory_tests.rb
@@ -39,5 +39,4 @@ Shindo.tests("Storage[:internet_archive] | directory", ["internetarchive"]) do
     end
   end
 
-
 end
diff --git a/tests/internet_archive/models/storage/url_tests.rb b/tests/internet_archive/models/storage/url_tests.rb
index 798c5e2..e5df5d0 100644
--- a/tests/internet_archive/models/storage/url_tests.rb
+++ b/tests/internet_archive/models/storage/url_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests('InternetArchive | url', ["internetarchive"]) do
     :ia_secret_access_key => 'abc',
     :region => 'us-east-1'
   )
-  
+
   @file = @storage.directories.new(:key => 'fognonbucket').files.new(:key => 'test.txt')
 
   if Fog.mock?
diff --git a/tests/internet_archive/requests/storage/bucket_tests.rb b/tests/internet_archive/requests/storage/bucket_tests.rb
index a7a3621..a0e9db7 100644
--- a/tests/internet_archive/requests/storage/bucket_tests.rb
+++ b/tests/internet_archive/requests/storage/bucket_tests.rb
@@ -23,14 +23,14 @@ Shindo.tests('Fog::Storage[:internetarchive] | bucket requests', ["internetarchi
     }
     @bucket_lifecycle_format = {
       'Rules' => [{
-         'ID'         => String, 
+         'ID'         => String,
          'Prefix'     => Fog::Nullable::String,
-         'Enabled'    => Fog::Boolean, 
+         'Enabled'    => Fog::Boolean,
          'Expiration' => Fog::Nullable::Hash,
          'Transition' => Fog::Nullable::Hash
        }]
     }
-      
+
     @service_format = {
       'Buckets' => [{
         'CreationDate'  => Time,
diff --git a/tests/internet_archive/signaturev4_tests.rb b/tests/internet_archive/signaturev4_tests.rb
index 9532a49..dc1eaec 100644
--- a/tests/internet_archive/signaturev4_tests.rb
+++ b/tests/internet_archive/signaturev4_tests.rb
@@ -18,7 +18,7 @@ Shindo.tests('InternetArchive | signaturev4', ['internetarchive']) do
       'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=0dc122f3b28b831ab48ba65cb47300de53fbe91b577fe113edac383730254a3b'
     end
   end
-  
+
   tests('get-vanilla-query-order-key') do
     returns(@signer.sign({:query => {'a' => 'foo', 'b' => 'foo'}, :headers => {'Host' => 'host.foo.com', 'Date' => 'Mon, 09 Sep 2011 23:36:00 GMT'}, :method => :get, :path => '/'}, Fog::Time.now)) do
       'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=0dc122f3b28b831ab48ba65cb47300de53fbe91b577fe113edac383730254a3b'
diff --git a/tests/joyent/requests/compute/machines_tests.rb b/tests/joyent/requests/compute/machines_tests.rb
index 3d2325c..3364411 100644
--- a/tests/joyent/requests/compute/machines_tests.rb
+++ b/tests/joyent/requests/compute/machines_tests.rb
@@ -34,7 +34,6 @@ Shindo.tests("Fog::Compute[:joyent] | machine requests", ["joyent"]) do
 
   @provider = Fog::Compute[:joyent]
 
-
   #
   # https://us-west-1.api.joyentcloud.com/docs#ListMachines
   #
diff --git a/tests/libvirt/models/compute/interface_tests.rb b/tests/libvirt/models/compute/interface_tests.rb
index 524b0cf..7de6917 100644
--- a/tests/libvirt/models/compute/interface_tests.rb
+++ b/tests/libvirt/models/compute/interface_tests.rb
@@ -17,7 +17,7 @@ Shindo.tests('Fog::Compute[:libvirt] | interface model', ['libvirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/libvirt/models/compute/network_tests.rb b/tests/libvirt/models/compute/network_tests.rb
index 0990453..155a598 100644
--- a/tests/libvirt/models/compute/network_tests.rb
+++ b/tests/libvirt/models/compute/network_tests.rb
@@ -17,7 +17,7 @@ Shindo.tests('Fog::Compute[:libvirt] | network model', ['libvirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/libvirt/models/compute/nic_tests.rb b/tests/libvirt/models/compute/nic_tests.rb
index 6b4ff89..290bec2 100644
--- a/tests/libvirt/models/compute/nic_tests.rb
+++ b/tests/libvirt/models/compute/nic_tests.rb
@@ -21,7 +21,7 @@ Shindo.tests('Fog::Compute[:libvirt] | nic model', ['libvirt']) do
       tests("The attributes hash should have key") do
         attributes.delete(:bridge)
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/libvirt/models/compute/pool_tests.rb b/tests/libvirt/models/compute/pool_tests.rb
index 0cb4cd8..03946ab 100644
--- a/tests/libvirt/models/compute/pool_tests.rb
+++ b/tests/libvirt/models/compute/pool_tests.rb
@@ -17,7 +17,7 @@ Shindo.tests('Fog::Compute[:libvirt] | interface model', ['libvirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/libvirt/models/compute/server_tests.rb b/tests/libvirt/models/compute/server_tests.rb
index ea1b7f4..8d731c3 100644
--- a/tests/libvirt/models/compute/server_tests.rb
+++ b/tests/libvirt/models/compute/server_tests.rb
@@ -48,7 +48,7 @@ Shindo.tests('Fog::Compute[:libvirt] | server model', ['libvirt']) do
       tests("The attributes hash should have key") do
         attributes.delete(:volumes)
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/libvirt/models/compute/volume_tests.rb b/tests/libvirt/models/compute/volume_tests.rb
index fadd36b..735a5f3 100644
--- a/tests/libvirt/models/compute/volume_tests.rb
+++ b/tests/libvirt/models/compute/volume_tests.rb
@@ -20,7 +20,7 @@ Shindo.tests('Fog::Compute[:libvirt] | volume model', ['libvirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/linode/requests/compute/datacenter_tests.rb b/tests/linode/requests/compute/datacenter_tests.rb
index 3fb7971..3e70e57 100644
--- a/tests/linode/requests/compute/datacenter_tests.rb
+++ b/tests/linode/requests/compute/datacenter_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:linode] | datacenter requests', ['linode']) do
 
   @datacenters_format = Linode::Compute::Formats::BASIC.merge({
-    'DATA' => [{ 
+    'DATA' => [{
       'DATACENTERID'  => Integer,
       'LOCATION'      => String
     }]
diff --git a/tests/linode/requests/compute/distribution_tests.rb b/tests/linode/requests/compute/distribution_tests.rb
index 97c8bb4..682469b 100644
--- a/tests/linode/requests/compute/distribution_tests.rb
+++ b/tests/linode/requests/compute/distribution_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:linode] | distribution requests', ['linode']) do
 
   @distributions_format = Linode::Compute::Formats::BASIC.merge({
-    'DATA' => [{ 
+    'DATA' => [{
       'CREATE_DT'           => String,
       'DISTRIBUTIONID'      => Integer,
       'IS64BIT'             => Integer,
diff --git a/tests/linode/requests/compute/helper.rb b/tests/linode/requests/compute/helper.rb
index 3219853..3a2804b 100644
--- a/tests/linode/requests/compute/helper.rb
+++ b/tests/linode/requests/compute/helper.rb
@@ -1,16 +1,10 @@
 class Linode
-
   module Compute
-
     module Formats
-
       BASIC = {
         'ERRORARRAY'  => [],
         'ACTION'      => String
       }
-
     end
-
   end
-
 end
diff --git a/tests/linode/requests/compute/kernel_tests.rb b/tests/linode/requests/compute/kernel_tests.rb
index fe5c041..42886a6 100644
--- a/tests/linode/requests/compute/kernel_tests.rb
+++ b/tests/linode/requests/compute/kernel_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:linode] | kernel requests', ['linode']) do
 
   @kernels_format = Linode::Compute::Formats::BASIC.merge({
-    'DATA' => [{ 
+    'DATA' => [{
       'LABEL'               => String,
       'ISXEN'               => Integer,
       'ISPVOPS'             => Integer,
diff --git a/tests/linode/requests/compute/linode_tests.rb b/tests/linode/requests/compute/linode_tests.rb
index 5141714..c1c49bc 100644
--- a/tests/linode/requests/compute/linode_tests.rb
+++ b/tests/linode/requests/compute/linode_tests.rb
@@ -55,7 +55,7 @@ Shindo.tests('Fog::Compute[:linode] | linode requests', ['linode']) do
 
   @disk_format = Linode::Compute::Formats::BASIC.merge({
     'DATA' => { 'JobID' => Integer, 'DiskID' => Integer }
-  })  
+  })
 
   tests('success') do
 
@@ -75,7 +75,7 @@ Shindo.tests('Fog::Compute[:linode] | linode requests', ['linode']) do
     end
 
     tests('#linode_list').formats(@linodes_format) do
-      pending if Fog.mocking?      
+      pending if Fog.mocking?
       Fog::Compute[:linode].linode_list.body
     end
 
@@ -94,7 +94,7 @@ Shindo.tests('Fog::Compute[:linode] | linode requests', ['linode']) do
       data = Fog::Compute[:linode].linode_disk_create(@linode_id, 'test1', 'ext3', 1).body
       @disk1_id = data['DATA']['DiskID']
       data
-    end    
+    end
 
     tests('#linode_disk_createfromdistribution').formats(@disk_format) do
       pending if Fog.mocking?
@@ -110,7 +110,7 @@ Shindo.tests('Fog::Compute[:linode] | linode requests', ['linode']) do
 
     # tests("#linode_reboot(#{@linode_id})").formats(@reboot_format) do
     #   Fog::Compute[:linode].linode_reboot(@linode_id).body
-    # end    
+    # end
 
     tests('#linode_disk_delete').formats(@disk_format) do
       pending if Fog.mocking?
diff --git a/tests/linode/requests/compute/linodeplans_tests.rb b/tests/linode/requests/compute/linodeplans_tests.rb
index f656b36..f6ec56f 100644
--- a/tests/linode/requests/compute/linodeplans_tests.rb
+++ b/tests/linode/requests/compute/linodeplans_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:linode] | linodeplans requests', ['linode']) do
 
   @linodeplans_format = Linode::Compute::Formats::BASIC.merge({
-    'DATA' => [{ 
+    'DATA' => [{
       'AVAIL' => {
          '2' => Integer,
          '3' => Integer,
@@ -15,7 +15,8 @@ Shindo.tests('Fog::Compute[:linode] | linodeplans requests', ['linode']) do
       'PRICE'   => Float,
       'RAM'     => Integer,
       'LABEL'   => String,
-      'XFER'    => Integer
+      'XFER'    => Integer,
+      'CORES'   => Integer
     }]
   })
 
diff --git a/tests/linode/requests/compute/stackscripts_tests.rb b/tests/linode/requests/compute/stackscripts_tests.rb
index a877afa..ed74320 100644
--- a/tests/linode/requests/compute/stackscripts_tests.rb
+++ b/tests/linode/requests/compute/stackscripts_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:linode] | stack_script requests', ['linode']) do
 
   @stack_scripts_format = Linode::Compute::Formats::BASIC.merge({
-    'DATA' => [{ 
+    'DATA' => [{
       'STACKSCRIPTID'       => Integer,
       'SCRIPT'              => String,
       'DESCRIPTION'         => String,
@@ -16,15 +16,15 @@ Shindo.tests('Fog::Compute[:linode] | stack_script requests', ['linode']) do
       'ISPUBLIC'            => Integer,
       'USERID'              => Integer
     }]
-  })  
+  })
 
   tests('success') do
 
     tests('#avail_stackscripts').formats(@stack_scripts_format) do
       pending if Fog.mocking?
       Fog::Compute[:linode].avail_stackscripts.body
-    end    
-    
+    end
+
     tests('#stackscript_list').formats(@stack_scripts_format) do
       pending # TODO: REV_NOTE can be either string or float?
       pending if Fog.mocking?
diff --git a/tests/linode/requests/dns/dns_tests.rb b/tests/linode/requests/dns/dns_tests.rb
index a0f6e1e..482ef7c 100644
--- a/tests/linode/requests/dns/dns_tests.rb
+++ b/tests/linode/requests/dns/dns_tests.rb
@@ -15,7 +15,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
         zones = response.body['DATA']
         @org_zone_count = zones.count
       end
-      
+
       response.status == 200
     end
 
@@ -30,7 +30,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
         @master_zone_id = response.body['DATA']['DomainID']
         @new_zones << @master_zone_id
       end
-      
+
       response.status == 200
     end
 
@@ -39,14 +39,14 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
 
       type = 'slave'
       @domain= generate_unique_domain
-      options = { :SOA_email => "netops@#{@domain}", :refresh_sec => 14400, :retry_sec => 3600, 
+      options = { :SOA_email => "netops@#{@domain}", :refresh_sec => 14400, :retry_sec => 3600,
                   :expire_sec => 604800, :ttl_sec => 28800, :status => 0, :master_ips => '1.2.3.4;2.3.4.5' }
       response = Fog::DNS[:linode].domain_create( @domain, type, options)
       if response.status == 200
         @slave_zone_id = response.body['DATA']['DomainID']
         @new_zones << @slave_zone_id
       end
-  
+
       response.status == 200
     end
 
@@ -54,7 +54,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       response = Fog::DNS[:linode].domain_list( @slave_zone_id)
       if response.status == 200
         zones = response.body['DATA']
@@ -63,13 +63,13 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
           zone= zones[0]
           if (zone['SOA_EMAIL'] == "netops@#{@domain}") and (zone['REFRESH_SEC'] == 14400) and
             (zone['RETRY_SEC'] == 3600) and (zone['EXPIRE_SEC'] == 604800) and (zone['TTL_SEC'] == 28800) and
-            (zone['STATUS'] == 0) and (zone['DOMAIN'] == @domain) and (zone['TYPE'] == 'slave') 
+            (zone['STATUS'] == 0) and (zone['DOMAIN'] == @domain) and (zone['TYPE'] == 'slave')
             (zone['MASTER_IPS'] == '1.2.3.4;2.3.4.5')
             result= true
-          end          
+          end
         end
       end
-      
+
       result
     end
 
@@ -77,13 +77,13 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       options = { :ttl_sec => 14400 }
       response = Fog::DNS[:linode].domain_update( @slave_zone_id, options)
       if response.status == 200
         result= true
       end
-  
+
       result
     end
 
@@ -91,7 +91,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       response = Fog::DNS[:linode].domain_list( @slave_zone_id)
       if response.status == 200
         zones = response.body['DATA']
@@ -100,10 +100,10 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
           zone= zones[0]
           if (zone['TTL_SEC'] == 14400)
             result= true
-          end          
+          end
         end
       end
-      
+
       result
     end
 
@@ -117,7 +117,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
         record_id = response.body['DATA']['ResourceID']
         @new_records << record_id
       end
-      
+
       response.status == 200
     end
 
@@ -131,7 +131,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
         record_id = response.body['DATA']['ResourceID']
         @new_records << record_id
       end
-      
+
       response.status == 200
     end
 
@@ -144,7 +144,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
         record_id = response.body['DATA']['ResourceID']
         @new_records << record_id
       end
-      
+
       response.status == 200
     end
 
@@ -157,7 +157,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
         @record_id = response.body['DATA']['ResourceID']
         @new_records << @record_id
       end
-      
+
       response.status == 200
     end
 
@@ -165,7 +165,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       domain= 'mail.' + @domain
       response = Fog::DNS[:linode].domain_resource_list(@master_zone_id, @record_id)
       if response.status == 200
@@ -178,13 +178,13 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
             result= true
           end
         end
-        
+
       end
-              
+
       result
     end
 
-    test("update record #{@record_id} - change target") do 
+    test("update record #{@record_id} - change target") do
       pending if Fog.mocking?
 
       options = { :target => 'mail2.' + @domain }
@@ -197,7 +197,7 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       domain= 'mail2.' + @domain
       response = Fog::DNS[:linode].domain_resource_list(@master_zone_id, @record_id)
       if response.status == 200
@@ -209,13 +209,13 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
             result= true
           end
         end
-        
+
       end
-              
+
       result
 
     end
-    
+
     test("delete #{@new_records.count} records created") do
       pending if Fog.mocking?
 
@@ -243,8 +243,8 @@ Shindo.tests('Fog::DNS[:linode] | DNS requests', ['linode', 'dns']) do
     end
 
   end
-  
+
   tests( 'failure') do
   end
-    
+
 end
diff --git a/tests/ninefold/models/storage/file_update_tests.rb b/tests/ninefold/models/storage/file_update_tests.rb
index 1a4fae8..b6f06b7 100644
--- a/tests/ninefold/models/storage/file_update_tests.rb
+++ b/tests/ninefold/models/storage/file_update_tests.rb
@@ -16,4 +16,4 @@ Shindo.tests("Storage[:ninefold] | nested directories", ['ninefold']) do
     @directory.destroy(:recursive => true)
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/ninefold/models/storage/nested_directories_tests.rb b/tests/ninefold/models/storage/nested_directories_tests.rb
index ad0de9e..2f82888 100644
--- a/tests/ninefold/models/storage/nested_directories_tests.rb
+++ b/tests/ninefold/models/storage/nested_directories_tests.rb
@@ -20,4 +20,4 @@ Shindo.tests("Storage[:ninefold] | nested directories", ['ninefold']) do
     ninefold.directories.get('sub').destroy(:recursive => true)
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/ninefold/requests/compute/helper.rb b/tests/ninefold/requests/compute/helper.rb
index 7129955..38260df 100644
--- a/tests/ninefold/requests/compute/helper.rb
+++ b/tests/ninefold/requests/compute/helper.rb
@@ -22,7 +22,6 @@ class Ninefold
         Fog::Compute[:ninefold].query_async_job_result(:jobid => job)
       end
       module_function :wait_for_job
-
     end
     module Formats
       module Lists
diff --git a/tests/ninefold/requests/compute/nat_tests.rb b/tests/ninefold/requests/compute/nat_tests.rb
index 2cba28c..390e9c7 100644
--- a/tests/ninefold/requests/compute/nat_tests.rb
+++ b/tests/ninefold/requests/compute/nat_tests.rb
@@ -56,7 +56,6 @@ Shindo.tests('Fog::Compute[:ninefold] | nat requests', ['ninefold']) do
       Ninefold::Compute::TestSupport.wait_for_job(job)['jobresult']
     end
 
-
     tests("#disable_static_nat()").formats(Ninefold::Compute::Formats::Nat::DISABLE_NAT_RESPONSE) do
       pending if Fog.mocking?
       job = Fog::Compute[:ninefold].disable_static_nat(:ipaddressid => @ipid)
diff --git a/tests/ninefold/requests/compute/virtual_machine_tests.rb b/tests/ninefold/requests/compute/virtual_machine_tests.rb
index 818ec15..0bc72c6 100644
--- a/tests/ninefold/requests/compute/virtual_machine_tests.rb
+++ b/tests/ninefold/requests/compute/virtual_machine_tests.rb
@@ -2,7 +2,6 @@ Shindo.tests('Fog::Compute[:ninefold] | server requests', ['ninefold']) do
 
   tests('success') do
 
-
     tests("#deploy_virtual_machine()").formats(Ninefold::Compute::Formats::VirtualMachines::VIRTUAL_MACHINE) do
       pending if Fog.mocking?
       networks = Fog::Compute[:ninefold].list_networks
diff --git a/tests/opennebula/compute_tests.rb b/tests/opennebula/compute_tests.rb
new file mode 100644
index 0000000..11ebbef
--- /dev/null
+++ b/tests/opennebula/compute_tests.rb
@@ -0,0 +1,16 @@
+Shindo.tests('Fog::Compute[:opennebula]', ['opennebula']) do
+
+  compute = Fog::Compute[:opennebula]
+
+  tests("Compute collections") do
+    %w{networks groups}.each do |collection|
+      test("it should respond to #{collection}") { compute.respond_to? collection }
+    end
+  end
+
+  tests("Compute requests") do
+    %w{list_networks}.each do |request|
+      test("it should respond to #{request}") { compute.respond_to? request }
+    end
+  end
+end
diff --git a/tests/opennebula/models/compute/group_tests.rb b/tests/opennebula/models/compute/group_tests.rb
new file mode 100644
index 0000000..221d93d
--- /dev/null
+++ b/tests/opennebula/models/compute/group_tests.rb
@@ -0,0 +1,27 @@
+Shindo.tests('Fog::Compute[:opennebula] | group model', ['opennebula']) do
+
+  groups = Fog::Compute[:opennebula].groups
+  group = groups.last
+
+  tests('The group model should') do
+    tests('have the action') do
+      test('reload') { group.respond_to? 'reload' }
+    end
+    tests('have attributes') do
+      model_attribute_hash = group.attributes
+      attributes = 
+      tests("The group model should respond to") do
+        [:name, :id, :to_label].each do |attribute|
+          test("#{attribute}") { group.respond_to? attribute }
+        end
+      end
+      tests("The attributes hash should have key") do
+        [:name, :id].each do |attribute|
+          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+        end
+      end
+    end
+    test('be a kind of Fog::Compute::OpenNebula::Group') { group.kind_of? Fog::Compute::OpenNebula::Group }
+  end
+
+end
diff --git a/tests/opennebula/models/compute/groups_tests.rb b/tests/opennebula/models/compute/groups_tests.rb
new file mode 100644
index 0000000..da85448
--- /dev/null
+++ b/tests/opennebula/models/compute/groups_tests.rb
@@ -0,0 +1,16 @@
+Shindo.tests('Fog::Compute[:opennebula] | groups collection', ['opennebula']) do
+
+  groups = Fog::Compute[:opennebula].groups
+
+  tests('The groups collection') do
+    test('should be a kind of Fog::Compute::OpenNebula::Groups') { groups.kind_of? Fog::Compute::OpenNebula::Groups }
+    tests('should be able to reload itself').succeeds { groups.reload }
+    tests('should be able to get a model by id') do
+      tests('by instance id').succeeds { groups.get groups.first.id }
+    end
+    tests('should be able to get a model by name') do
+      tests('by instance id').succeeds { groups.get_by_name "fogtest" }
+    end
+  end
+
+end
diff --git a/tests/opennebula/models/compute/network_tests.rb b/tests/opennebula/models/compute/network_tests.rb
new file mode 100644
index 0000000..9e61512
--- /dev/null
+++ b/tests/opennebula/models/compute/network_tests.rb
@@ -0,0 +1,27 @@
+Shindo.tests('Fog::Compute[:opennebula] | network model', ['opennebula']) do
+
+  networks = Fog::Compute[:opennebula].networks
+  network = networks.last
+
+  tests('The network model should') do
+    tests('have the action') do
+      test('reload') { network.respond_to? 'reload' }
+    end
+    tests('have attributes') do
+      model_attribute_hash = network.attributes
+      attributes = 
+      tests("The network model should respond to") do
+        [:name, :id, :vlan, :uid, :gid, :description].each do |attribute|
+          test("#{attribute}") { network.respond_to? attribute }
+        end
+      end
+      tests("The attributes hash should have key") do
+        [:name, :id, :uid, :gid].each do |attribute|
+          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+        end
+      end
+    end
+    test('be a kind of Fog::Compute::OpenNebula::Network') { network.kind_of? Fog::Compute::OpenNebula::Network }
+  end
+
+end
diff --git a/tests/opennebula/models/compute/networks_tests.rb b/tests/opennebula/models/compute/networks_tests.rb
new file mode 100644
index 0000000..56c88f0
--- /dev/null
+++ b/tests/opennebula/models/compute/networks_tests.rb
@@ -0,0 +1,13 @@
+Shindo.tests('Fog::Compute[:opennebula] | networks collection', ['opennebula']) do
+
+  networks = Fog::Compute[:opennebula].networks
+
+  tests('The networks collection') do
+    test('should be a kind of Fog::Compute::OpenNebula::Networks') { networks.kind_of? Fog::Compute::OpenNebula::Networks }
+    tests('should be able to reload itself').succeeds { networks.reload }
+    tests('should be able to get a model') do
+      tests('by instance id').succeeds { networks.get networks.first.id }
+    end
+  end
+
+end
diff --git a/tests/opennebula/requests/compute/vm_allocate_tests.rb b/tests/opennebula/requests/compute/vm_allocate_tests.rb
new file mode 100644
index 0000000..aecf6a2
--- /dev/null
+++ b/tests/opennebula/requests/compute/vm_allocate_tests.rb
@@ -0,0 +1,59 @@
+Shindo.tests("Fog::Compute[:opennebula] | vm_create and destroy request", 'opennebula') do
+
+  compute = Fog::Compute[:opennebula]
+  name_base = Time.now.to_i
+  f = compute.flavors.get_by_name("fogtest")
+
+  tests("Get 'fogtest' flavor/template") do
+    test("could not get template with name 'fogtest'! This is required for live tests!") {f.kind_of? Array}
+    raise ArgumentError, "Could not get a template with the name 'fogtest'" unless f
+  end
+
+  f = f.first
+  response = {}
+
+  tests("Allocate VM") do
+    response = compute.vm_allocate({:name => 'fog-'+name_base.to_s, :flavor => f})
+    test("response should be a kind of Hash") { response.kind_of?  Hash}
+    test("id should be a one-id (Fixnum)") { response['id'].is_a?  Fixnum}
+  end
+  tests("Destroy VM") do
+    compute.vm_destroy(response['id'])
+    vms = compute.list_vms({:id => response['id'], :mock_return => false})
+    test("get vm should be empty") { compute.list_vms({:id => response['id']}).empty?}
+  end
+
+  #tests("Create VM from template (clone)") do
+  #  response = compute.create_vm(:name => 'fog-'+(name_base+ 1).to_s, :template_name => 'hwp_small', :cluster_name => 'Default')
+  #  test("should be a kind of OVIRT::VM") { response.kind_of?  OVIRT::VM}
+  #end
+
+  tests("Fail Creating VM - no flavor") do
+    begin
+      response = compute.vm_allocate({:name => 'fog-'+name_base.to_s, :flavor => nil})
+      test("should be a kind of Hash") { response.kind_of?  Hash} #mock never raise exceptions
+    rescue => e
+      #should raise vm name already exist exception.
+      test("error should be a kind of ArgumentError") { e.kind_of?  ArgumentError}
+    end
+  end
+  tests("Fail Creating VM - nil name") do
+    begin
+      response = compute.vm_allocate({:name => nil, :flavor => f})
+      test("should be a kind of Hash") { response.kind_of?  Hash} #mock never raise exceptions
+    rescue => e
+      #should raise vm name already exist exception.
+      test("error should be a kind of ArgumentError") { e.kind_of?  ArgumentError}
+    end
+  end
+  tests("Fail Creating VM - empty name") do
+    begin
+      response = compute.vm_allocate({:name => "", :flavor => f})
+      test("should be a kind of Hash") { response.kind_of?  Hash} #mock never raise exceptions
+    rescue => e
+      #should raise vm name already exist exception.
+      test("error should be a kind of ArgumentError") { e.kind_of?  ArgumentError}
+    end
+  end
+
+end
diff --git a/tests/openstack/authenticate_tests.rb b/tests/openstack/authenticate_tests.rb
index 7979fba..83a5d03 100644
--- a/tests/openstack/authenticate_tests.rb
+++ b/tests/openstack/authenticate_tests.rb
@@ -102,9 +102,29 @@ Shindo.tests('OpenStack | authenticate', ['openstack']) do
       end
     end
 
+    tests("v2 missing storage service") do
+      Excon.stub({ :method => 'POST', :path => "/v2.0/tokens" },
+                 { :status => 200, :body => Fog::JSON.encode(body) })
+
+      raises(NoMethodError,
+            "undefined method `join' for \"object-store\":String") do
+        Fog::OpenStack.authenticate_v2(
+          :openstack_auth_uri     => URI('http://example/v2.0/tokens'),
+          :openstack_tenant       => 'admin',
+          :openstack_service_type => 'object-store')
+      end
+      raises(Fog::Errors::NotFound,
+            "Could not find service object-store.  Have compute, image") do
+        Fog::OpenStack.authenticate_v2(
+          :openstack_auth_uri     => URI('http://example/v2.0/tokens'),
+          :openstack_tenant       => 'admin',
+          :openstack_service_type => %w[object-store])
+      end
+    end
+
     tests("v2 auth with two compute services") do
       body_clone = body.clone
-      body_clone["access"]["serviceCatalog"] << 
+      body_clone["access"]["serviceCatalog"] <<
         {
         "endpoints" => [{
           "adminURL" =>
@@ -161,4 +181,3 @@ Shindo.tests('OpenStack | authenticate', ['openstack']) do
     Excon.defaults[:mock] = @old_mock_value
   end
 end
-
diff --git a/tests/openstack/models/compute/images_tests.rb b/tests/openstack/models/compute/images_tests.rb
index b2dd371..d36c9c1 100644
--- a/tests/openstack/models/compute/images_tests.rb
+++ b/tests/openstack/models/compute/images_tests.rb
@@ -11,4 +11,3 @@ Shindo.tests("Fog::Compute[:openstack] | images collection", ['openstack']) do
 
   end
 end
-
diff --git a/tests/openstack/models/compute/security_group_tests.rb b/tests/openstack/models/compute/security_group_tests.rb
index 2a10a97..de91cf6 100644
--- a/tests/openstack/models/compute/security_group_tests.rb
+++ b/tests/openstack/models/compute/security_group_tests.rb
@@ -17,7 +17,7 @@ Shindo.tests("Fog::Compute[:openstack] | security_group", ['openstack']) do
         returns('my_group') { security_group.name }
         returns('my group') { security_group.description }
         returns([])         { security_group.security_group_rules }
-        returns(true)       { security_group.tenant_id != nil }
+        returns(true, "Tenant Id is not nil")       { security_group.tenant_id != nil }
       end
 
       tests('#rules').succeeds do
@@ -30,9 +30,9 @@ Shindo.tests("Fog::Compute[:openstack] | security_group", ['openstack']) do
             :to_port         => 1234,
             :ip_range        => { "cidr" => "0.0.0.0/0" }
           )
-          returns(true) { security_group.security_group_rules.count == (rules_count + 1) }
-          security_group_rule = security_group.security_group_rules.detect { |r| r.id == rule.id }
-          returns(true) { security_group_rule.attributes == rule.attributes }
+          returns(true, "added security group rule") { security_group.security_group_rules.count == (rules_count + 1) }
+          security_group_rule = security_group.security_group_rules.find { |r| r.id == rule.id }
+          returns(true, "security group rule has rule attributes") { security_group_rule.attributes == rule.attributes }
         end
 
         tests("#destroy").succeeds do
@@ -44,7 +44,7 @@ Shindo.tests("Fog::Compute[:openstack] | security_group", ['openstack']) do
             :ip_range        => { "cidr" => "0.0.0.0/0" }
           )
           rule.destroy
-          returns(true) { rule.reload == nil }
+          returns(true, "successfully destroyed rule") { rule.reload == nil }
         end
       end
     ensure
diff --git a/tests/openstack/models/compute/server_tests.rb b/tests/openstack/models/compute/server_tests.rb
index 231e61d..50daf9c 100644
--- a/tests/openstack/models/compute/server_tests.rb
+++ b/tests/openstack/models/compute/server_tests.rb
@@ -63,11 +63,11 @@ Shindo.tests("Fog::Compute[:openstack] | server", ['openstack']) do
     end
 
     tests('#failed') do
-      
+
       fog = Fog::Compute[:openstack]
 
       flavor = fog.flavors.first.id
-      image  = fog.images.first.id     
+      image  = fog.images.first.id
 
       tests('successful server').returns(false) do
         server = fog.servers.new( :name       => 'test server',
@@ -218,4 +218,3 @@ Shindo.tests("Fog::Compute[:openstack] | server", ['openstack']) do
 
   end
 end
-
diff --git a/tests/openstack/models/identity/role_tests.rb b/tests/openstack/models/identity/role_tests.rb
index d9bd7b5..51a8287 100644
--- a/tests/openstack/models/identity/role_tests.rb
+++ b/tests/openstack/models/identity/role_tests.rb
@@ -24,4 +24,3 @@ Shindo.tests("Fog::Identity[:openstack] | role", ['openstack']) do
   @user.destroy
   @tenant.destroy
 end
-
diff --git a/tests/openstack/models/image/images_tests.rb b/tests/openstack/models/image/images_tests.rb
index 2d893c8..18f6a7a 100644
--- a/tests/openstack/models/image/images_tests.rb
+++ b/tests/openstack/models/image/images_tests.rb
@@ -11,7 +11,7 @@ Shindo.tests("Fog::Image[:openstack] | images", ['openstack']) do
       image = Fog::Image[:openstack].images.get(@instance['image']['id'])
       image.id == @instance['image']['id']
     end
-    
+
     tests('#destroy').succeeds do
       Fog::Image[:openstack].images.destroy(@instance['image']['id'])
     end
diff --git a/tests/openstack/models/network/floating_ip_tests.rb b/tests/openstack/models/network/floating_ip_tests.rb
index a94ed8d..5368ffa 100644
--- a/tests/openstack/models/network/floating_ip_tests.rb
+++ b/tests/openstack/models/network/floating_ip_tests.rb
@@ -5,14 +5,6 @@ Shindo.tests("Fog::Network[:openstack] | floating_ip", ['openstack']) do
     tests('#create').succeeds do
       @instance = Fog::Network[:openstack].floating_ips.create(:floating_network_id => 'f0000000-0000-0000-0000-000000000000')
 
-
-
-
-
-
-
-
-
       !@instance.id.nil?
     end
 
diff --git a/tests/openstack/models/network/floating_ips_tests.rb b/tests/openstack/models/network/floating_ips_tests.rb
index 7e78144..5095851 100644
--- a/tests/openstack/models/network/floating_ips_tests.rb
+++ b/tests/openstack/models/network/floating_ips_tests.rb
@@ -1,14 +1,6 @@
 Shindo.tests("Fog::Network[:openstack] | floating_ips", ['openstack']) do
   @floating_ip = Fog::Network[:openstack].floating_ips.create(:floating_network_id => 'f0000000-0000-0000-0000-000000000000')
 
-
-
-
-
-
-
-
-
   @floating_ips = Fog::Network[:openstack].floating_ips
 
   tests('success') do
diff --git a/tests/openstack/models/network/lb_health_monitor_tests.rb b/tests/openstack/models/network/lb_health_monitor_tests.rb
index 084a008..81409dc 100644
--- a/tests/openstack/models/network/lb_health_monitor_tests.rb
+++ b/tests/openstack/models/network/lb_health_monitor_tests.rb
@@ -49,4 +49,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_health_monitor", ['openstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_health_monitors_tests.rb b/tests/openstack/models/network/lb_health_monitors_tests.rb
index 3f20444..b5470e4 100644
--- a/tests/openstack/models/network/lb_health_monitors_tests.rb
+++ b/tests/openstack/models/network/lb_health_monitors_tests.rb
@@ -18,4 +18,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_health_monitors", ['openstack']) do
   end
 
   @lb_health_monitor.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_member_tests.rb b/tests/openstack/models/network/lb_member_tests.rb
index 8427c0c..0bcc1a5 100644
--- a/tests/openstack/models/network/lb_member_tests.rb
+++ b/tests/openstack/models/network/lb_member_tests.rb
@@ -25,4 +25,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_member", ['openstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_members_tests.rb b/tests/openstack/models/network/lb_members_tests.rb
index 3888fa9..53b2ef9 100644
--- a/tests/openstack/models/network/lb_members_tests.rb
+++ b/tests/openstack/models/network/lb_members_tests.rb
@@ -18,4 +18,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_members", ['openstack']) do
   end
 
   @lb_member.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_pool_tests.rb b/tests/openstack/models/network/lb_pool_tests.rb
index 6cfe93a..e97d2f4 100644
--- a/tests/openstack/models/network/lb_pool_tests.rb
+++ b/tests/openstack/models/network/lb_pool_tests.rb
@@ -50,4 +50,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_pool", ['openstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_pools_tests.rb b/tests/openstack/models/network/lb_pools_tests.rb
index db504b4..7a37fea 100644
--- a/tests/openstack/models/network/lb_pools_tests.rb
+++ b/tests/openstack/models/network/lb_pools_tests.rb
@@ -17,4 +17,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_pools", ['openstack']) do
   end
 
   @lb_pool.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_vip_tests.rb b/tests/openstack/models/network/lb_vip_tests.rb
index 390951a..d2adfb2 100644
--- a/tests/openstack/models/network/lb_vip_tests.rb
+++ b/tests/openstack/models/network/lb_vip_tests.rb
@@ -36,4 +36,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_vip", ['openstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/lb_vips_tests.rb b/tests/openstack/models/network/lb_vips_tests.rb
index 51ee026..9c76912 100644
--- a/tests/openstack/models/network/lb_vips_tests.rb
+++ b/tests/openstack/models/network/lb_vips_tests.rb
@@ -18,4 +18,4 @@ Shindo.tests("Fog::Network[:openstack] | lb_vips", ['openstack']) do
   end
 
   @lb_vip.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/network_tests.rb b/tests/openstack/models/network/network_tests.rb
index 4dca50d..5091b04 100644
--- a/tests/openstack/models/network/network_tests.rb
+++ b/tests/openstack/models/network/network_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests("Fog::Network[:openstack] | network", ['openstack']) do
 
   tests('success') do
-    
+
     tests('#create').succeeds do
       @instance = Fog::Network[:openstack].networks.create(:name => 'net_name',
                                                            :shared => false,
@@ -9,7 +9,7 @@ Shindo.tests("Fog::Network[:openstack] | network", ['openstack']) do
                                                            :tenant_id => 'tenant_id')
       !@instance.id.nil?
     end
-    
+
     tests('#create+extensions').succeeds do
       net = Fog::Network[:openstack].networks.create(
         :name => 'net_name',
@@ -26,9 +26,9 @@ Shindo.tests("Fog::Network[:openstack] | network", ['openstack']) do
       net.destroy
       net.provider_network_type == 'gre'
     end
-    
+
     tests('have attributes') do
-      attributes = [ 
+      attributes = [
         :name,
         :subnets,
         :shared,
diff --git a/tests/openstack/models/network/networks_tests.rb b/tests/openstack/models/network/networks_tests.rb
index 712b091..9ff67d0 100644
--- a/tests/openstack/models/network/networks_tests.rb
+++ b/tests/openstack/models/network/networks_tests.rb
@@ -18,4 +18,4 @@ Shindo.tests("Fog::Network[:openstack] | networks", ['openstack']) do
   end
 
   @network.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/port_tests.rb b/tests/openstack/models/network/port_tests.rb
index b32863a..af5dd13 100644
--- a/tests/openstack/models/network/port_tests.rb
+++ b/tests/openstack/models/network/port_tests.rb
@@ -25,4 +25,4 @@ Shindo.tests("Fog::Network[:openstack] | port", ['openstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/ports_tests.rb b/tests/openstack/models/network/ports_tests.rb
index d5488b9..7e77f69 100644
--- a/tests/openstack/models/network/ports_tests.rb
+++ b/tests/openstack/models/network/ports_tests.rb
@@ -22,4 +22,4 @@ Shindo.tests("Fog::Network[:openstack] | ports", ['openstack']) do
   end
 
   @port.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/subnet_tests.rb b/tests/openstack/models/network/subnet_tests.rb
index c334b01..21cc9cb 100644
--- a/tests/openstack/models/network/subnet_tests.rb
+++ b/tests/openstack/models/network/subnet_tests.rb
@@ -27,4 +27,4 @@ Shindo.tests("Fog::Network[:openstack] | subnet", ['openstack']) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/network/subnets_tests.rb b/tests/openstack/models/network/subnets_tests.rb
index e9e01fd..1a0acc9 100644
--- a/tests/openstack/models/network/subnets_tests.rb
+++ b/tests/openstack/models/network/subnets_tests.rb
@@ -24,4 +24,4 @@ Shindo.tests("Fog::Network[:openstack] | subnets", ['openstack']) do
   end
 
   @subnet.destroy
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/models/storage/file_tests.rb b/tests/openstack/models/storage/file_tests.rb
index 5daf228..b4b9361 100644
--- a/tests/openstack/models/storage/file_tests.rb
+++ b/tests/openstack/models/storage/file_tests.rb
@@ -47,7 +47,7 @@ Shindo.tests('Fog::OpenStack::Storage | file', ['openstack']) do
       tests('#metadata') do
 
         before do
-          @instance.metadata[:foo] = 'bar'  
+          @instance.metadata[:foo] = 'bar'
           @instance.save
         end
 
@@ -88,38 +88,38 @@ Shindo.tests('Fog::OpenStack::Storage | file', ['openstack']) do
       end
 
       tests('#metadata keys') do
-        
+
         after do
           clear_metadata
           @instance.save
         end
 
-        @instance.metadata[:foo_bar] = 'baz'  
+        @instance.metadata[:foo_bar] = 'baz'
         tests("should support compound key names").returns('baz') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
         end
 
-        @instance.metadata['foo'] = 'bar'  
+        @instance.metadata['foo'] = 'bar'
         tests("should support string keys").returns('bar') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo']
         end
 
-        @instance.metadata['foo_bar'] = 'baz'  
+        @instance.metadata['foo_bar'] = 'baz'
         tests("should support compound string key names").returns('baz') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
         end
 
-        @instance.metadata['foo-bar'] = 'baz'  
+        @instance.metadata['foo-bar'] = 'baz'
         tests("should support hyphenated keys").returns('baz') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
         end
 
-        @instance.metadata['foo-bar']  = 'baz'  
-        @instance.metadata[:'foo_bar'] = 'bref'  
+        @instance.metadata['foo-bar']  = 'baz'
+        @instance.metadata[:'foo_bar'] = 'bref'
         tests("should only support one value per metadata key").returns('bref') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
@@ -136,35 +136,34 @@ Shindo.tests('Fog::OpenStack::Storage | file', ['openstack']) do
       end
 
       @instance.access_control_allow_origin = 'http://example.com'
-      @instance.save              
+      @instance.save
       tests("#access_control_allow_origin should return access control attribute").returns('http://example.com') do
         @instance.access_control_allow_origin
       end
 
       @instance.access_control_allow_origin = 'foo'
-      @instance.save              
+      @instance.save
       tests("#access_control_allow_origin= should update access_control_allow_origin").returns('bar') do
         @instance.access_control_allow_origin = 'bar'
-        @instance.save                
+        @instance.save
         @instance.access_control_allow_origin
       end
 
       tests("#access_control_allow_origin= should not blow up on nil") do
         @instance.access_control_allow_origin = nil
-        @instance.save                        
+        @instance.save
       end
 
     end
 
   end
 
-
   model_tests(@directory.files, file_attributes, Fog.mocking?) do
 
     tests("#origin") do
 
       tests("#origin should default to nil").returns(nil) do
-        @instance.save                        
+        @instance.save
         @instance.origin
       end
 
@@ -176,7 +175,7 @@ Shindo.tests('Fog::OpenStack::Storage | file', ['openstack']) do
       @instance.attributes.delete('Origin')
 
       @instance.origin = 'foo'
-      @instance.save      
+      @instance.save
       tests("#origin= should update origin").returns('bar') do
         @instance.origin = 'bar'
         @instance.save
@@ -185,7 +184,7 @@ Shindo.tests('Fog::OpenStack::Storage | file', ['openstack']) do
 
       tests("#origin= should not blow up on nil") do
         @instance.origin = nil
-        @instance.save        
+        @instance.save
       end
 
     end
diff --git a/tests/openstack/requests/compute/address_tests.rb b/tests/openstack/requests/compute/address_tests.rb
index 3d02404..1d94f7b 100644
--- a/tests/openstack/requests/compute/address_tests.rb
+++ b/tests/openstack/requests/compute/address_tests.rb
@@ -15,7 +15,7 @@ Shindo.tests('Fog::Compute[:openstack] | address requests', ['openstack']) do
   @address_pools_format = {
     "name" => String
   }
-  
+
   tests('success') do
 
     tests('#allocate_address').formats({"floating_ip" => @address_format}) do
@@ -36,7 +36,7 @@ Shindo.tests('Fog::Compute[:openstack] | address requests', ['openstack']) do
     tests('#list_address_pools').formats({"floating_ip_pools" => [@address_pools_format]}) do
       compute.list_address_pools.body
     end
-    
+
     compute.servers.get(@server_id).wait_for { ready? }
 
     tests('#associate_address(server_id, ip_address)').succeeds do
diff --git a/tests/openstack/requests/compute/helper.rb b/tests/openstack/requests/compute/helper.rb
index ed24028..2d0e0cc 100644
--- a/tests/openstack/requests/compute/helper.rb
+++ b/tests/openstack/requests/compute/helper.rb
@@ -1,19 +1,13 @@
 class OpenStack
-
   module Compute
-
     module Formats
-
       SUMMARY = {
         'id'    => String,
         'name'  => String,
         'links'  => Array
       }
-
     end
-
   end
-
 end
 
 def get_flavor_ref
diff --git a/tests/openstack/requests/compute/limit_tests.rb b/tests/openstack/requests/compute/limit_tests.rb
index 0cc6a23..ffd032e 100644
--- a/tests/openstack/requests/compute/limit_tests.rb
+++ b/tests/openstack/requests/compute/limit_tests.rb
@@ -57,4 +57,3 @@ Shindo.tests('Fog::Compute[:openstack] | limits requests', ['openstack']) do
     end
   end
 end
-
diff --git a/tests/openstack/requests/compute/quota_tests.rb b/tests/openstack/requests/compute/quota_tests.rb
index 5be0c04..677edf7 100644
--- a/tests/openstack/requests/compute/quota_tests.rb
+++ b/tests/openstack/requests/compute/quota_tests.rb
@@ -58,4 +58,3 @@ Shindo.tests('Fog::Compute[:openstack] | quota requests', ['openstack']) do
 
   end
 end
-
diff --git a/tests/openstack/requests/compute/server_tests.rb b/tests/openstack/requests/compute/server_tests.rb
index 2875c6c..a1cffbe 100644
--- a/tests/openstack/requests/compute/server_tests.rb
+++ b/tests/openstack/requests/compute/server_tests.rb
@@ -25,7 +25,7 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
     'links'           => Array,
     'security_groups' => Fog::Nullable::Array,
   }
-  
+
   @reservation_format = {
     'reservation_id' => String,
   }
@@ -70,7 +70,7 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
       @reservation_id = data['reservation_id']
       data
     end
-    
+
     tests('#validate_multi_create') do
       passed = false
       @multi_create_servers = []
@@ -88,7 +88,7 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
         Fog::Compute[:openstack].servers.get(server).destroy
       }
     end
-   
+
     #LIST
     #NOTE: we can remove strict=false if we remove uuid from GET /servers
     tests('#list_servers').formats({'servers' => [OpenStack::Compute::Formats::SUMMARY]}, false) do
@@ -101,7 +101,7 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
     end
 
     #CHANGE PASSWORD
-    if set_password_enabled 
+    if set_password_enabled
       tests("#change_server_password(#{@server_id}, 'fogupdatedserver')").succeeds do
         Fog::Compute[:openstack].change_server_password(@server_id, 'foggy')
       end
@@ -113,7 +113,7 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
       Fog::Compute[:openstack].update_server(@server_id, :name => 'fogupdatedserver')
     end
     Fog::Compute[:openstack].servers.get(@server_id).wait_for { ready? }
-    
+
     #ADD SECURITY GROUP
     tests("#add_security_group(#{@server_id}, #{@security_group_name})").succeeds do
       Fog::Compute[:openstack].add_security_group(@server_id, @security_group_name)
@@ -164,6 +164,18 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
 
     Fog::Compute[:openstack].servers.get(@server_id).wait_for { ready? } if not Fog.mocking?
 
+    #STOP
+    tests("#stop_server(#{@server_id})").succeeds do
+      Fog::Compute[:openstack].stop_server(@server_id)
+    end
+
+    #START
+    tests("#start_server(#{@server_id})").succeeds do
+      Fog::Compute[:openstack].start_server(@server_id)
+    end
+
+    Fog::Compute[:openstack].servers.get(@server_id).wait_for { ready? } if not Fog.mocking?
+
     #DELETE
     tests("#delete_server(#{@server_id})").succeeds do
       Fog::Compute[:openstack].delete_server(@server_id)
@@ -195,6 +207,15 @@ Shindo.tests('Fog::Compute[:openstack] | server requests', ['openstack']) do
       Fog::Compute[:openstack].reboot_server(0)
     end
 
+    tests('#start_server(0)').raises(Fog::Compute::OpenStack::NotFound) do
+      pending if Fog.mocking?
+      Fog::Compute[:openstack].start_server(0)
+    end
+
+    tests('#stop_server(0)').raises(Fog::Compute::OpenStack::NotFound) do
+      pending if Fog.mocking?
+      Fog::Compute[:openstack].stop_server(0)
+    end
   end
 
 end
diff --git a/tests/openstack/requests/identity/helper.rb b/tests/openstack/requests/identity/helper.rb
index ad9bc74..bffc543 100644
--- a/tests/openstack/requests/identity/helper.rb
+++ b/tests/openstack/requests/identity/helper.rb
@@ -1,7 +1,5 @@
 class OpenStack
-
   module Identity
-
     def self.get_tenant_id
       identity = Fog::Identity[:openstack]
       ENV['OPENSTACK_TENANT_NAME'] || identity.list_tenants.body['tenants'].first['id']
@@ -11,7 +9,5 @@ class OpenStack
       identity = Fog::Identity[:openstack]
       ENV['OPENSTACK_USER_ID'] || identity.list_users.body['users'].first['id']
     end
-
   end
-
 end
diff --git a/tests/openstack/requests/identity/role_tests.rb b/tests/openstack/requests/identity/role_tests.rb
index 6bf25ab..b1187ca 100644
--- a/tests/openstack/requests/identity/role_tests.rb
+++ b/tests/openstack/requests/identity/role_tests.rb
@@ -43,4 +43,3 @@ Shindo.tests('Fog::Identity[:openstack] | role requests', ['openstack']) do
 
   end
 end
-
diff --git a/tests/openstack/requests/network/lb_health_monitor_tests.rb b/tests/openstack/requests/network/lb_health_monitor_tests.rb
index 559454c..5d117d8 100644
--- a/tests/openstack/requests/network/lb_health_monitor_tests.rb
+++ b/tests/openstack/requests/network/lb_health_monitor_tests.rb
@@ -90,4 +90,4 @@ Shindo.tests('Fog::Network[:openstack] | lb_health_monitor requests', ['openstac
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/requests/network/lb_member_tests.rb b/tests/openstack/requests/network/lb_member_tests.rb
index 7f5c857..721e358 100644
--- a/tests/openstack/requests/network/lb_member_tests.rb
+++ b/tests/openstack/requests/network/lb_member_tests.rb
@@ -57,4 +57,4 @@ Shindo.tests('Fog::Network[:openstack] | lb_member requests', ['openstack']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/requests/network/lb_pool_tests.rb b/tests/openstack/requests/network/lb_pool_tests.rb
index 5646ff1..994c8d4 100644
--- a/tests/openstack/requests/network/lb_pool_tests.rb
+++ b/tests/openstack/requests/network/lb_pool_tests.rb
@@ -77,4 +77,4 @@ Shindo.tests('Fog::Network[:openstack] | lb_pool requests', ['openstack']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/requests/network/lb_vip_tests.rb b/tests/openstack/requests/network/lb_vip_tests.rb
index b79fb94..b0b7011 100644
--- a/tests/openstack/requests/network/lb_vip_tests.rb
+++ b/tests/openstack/requests/network/lb_vip_tests.rb
@@ -68,4 +68,4 @@ Shindo.tests('Fog::Network[:openstack] | lb_vip requests', ['openstack']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/requests/network/port_tests.rb b/tests/openstack/requests/network/port_tests.rb
index ea59230..6e253d2 100644
--- a/tests/openstack/requests/network/port_tests.rb
+++ b/tests/openstack/requests/network/port_tests.rb
@@ -60,4 +60,4 @@ Shindo.tests('Fog::Network[:openstack] | port requests', ['openstack']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/requests/network/router_tests.rb b/tests/openstack/requests/network/router_tests.rb
index 75a3ea4..d0d9746 100644
--- a/tests/openstack/requests/network/router_tests.rb
+++ b/tests/openstack/requests/network/router_tests.rb
@@ -8,11 +8,11 @@ Shindo.tests('Fog::Network[:openstack] | router requests', ['openstack']) do
     :tenant_id             => String,
     :external_gateway_info => Fog::Nullable::Hash,
   }
-  
+
   tests('success') do
     tests('#create_router').formats({'router' => @router_format}) do
       attributes = {
-        :admin_state_up => true, 
+        :admin_state_up => true,
         :tenant_id => 'tenant_id'
       }
       Fog::Network[:openstack].create_router('router_name', attributes).body
@@ -30,7 +30,7 @@ Shindo.tests('Fog::Network[:openstack] | router requests', ['openstack']) do
     tests('#update_router').formats({'router' => @router_format}) do
       router_id = Fog::Network[:openstack].routers.all.first.id
       attributes = {
-        :name => 'net_name', 
+        :name => 'net_name',
         :external_gateway_info => { :network_id => 'net_id' },
         :status => 'ACTIVE',
         :admin_state_up => true
@@ -42,7 +42,7 @@ Shindo.tests('Fog::Network[:openstack] | router requests', ['openstack']) do
       router_id = Fog::Network[:openstack].routers.all.first.id
       net = Fog::Network[:openstack].networks.first
       attributes = {
-        :name => 'net_name', 
+        :name => 'net_name',
         :external_gateway_info => net,
         :status => 'ACTIVE',
         :admin_state_up => true
diff --git a/tests/openstack/requests/network/subnet_tests.rb b/tests/openstack/requests/network/subnet_tests.rb
index 1fc1c7c..ada254d 100644
--- a/tests/openstack/requests/network/subnet_tests.rb
+++ b/tests/openstack/requests/network/subnet_tests.rb
@@ -63,4 +63,4 @@ Shindo.tests('Fog::Network[:openstack] | subnet requests', ['openstack']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/requests/volume/quota_tests.rb b/tests/openstack/requests/volume/quota_tests.rb
index 5e5290a..1531f16 100644
--- a/tests/openstack/requests/volume/quota_tests.rb
+++ b/tests/openstack/requests/volume/quota_tests.rb
@@ -48,4 +48,3 @@ Shindo.tests('Fog::Volume[:openstack] | quota requests', ['openstack']) do
 
   end
 end
-
diff --git a/tests/openstack/storage_tests.rb b/tests/openstack/storage_tests.rb
index d7f2131..d514d0b 100644
--- a/tests/openstack/storage_tests.rb
+++ b/tests/openstack/storage_tests.rb
@@ -16,4 +16,3 @@ Shindo.tests('Fog::Storage[:openstack]', ['openstack', 'storage']) do
   end
 
 end
-
diff --git a/tests/openstack/version_tests.rb b/tests/openstack/version_tests.rb
index 1e9ecae..13ce039 100644
--- a/tests/openstack/version_tests.rb
+++ b/tests/openstack/version_tests.rb
@@ -52,4 +52,4 @@ Shindo.tests('OpenStack | versions', ['openstack']) do
     Excon.stubs.clear
     Excon.defaults[:mock] = @old_mock_value
   end
-end
\ No newline at end of file
+end
diff --git a/tests/openstack/volume_tests.rb b/tests/openstack/volume_tests.rb
index 2a8b0ba..044da88 100644
--- a/tests/openstack/volume_tests.rb
+++ b/tests/openstack/volume_tests.rb
@@ -12,4 +12,3 @@ Shindo.tests('Fog::Volume[:openstack]', ['openstack', 'volume']) do
   end
 
 end
-
diff --git a/tests/openvz/models/compute/server_tests.rb b/tests/openvz/models/compute/server_tests.rb
index 251f487..d7195d0 100644
--- a/tests/openvz/models/compute/server_tests.rb
+++ b/tests/openvz/models/compute/server_tests.rb
@@ -53,4 +53,3 @@ Shindo.tests("Fog::Compute[:openvz] | server model", ['openvz', 'compute']) do
   server.start
 
 end
-
diff --git a/tests/ovirt/models/compute/cluster_tests.rb b/tests/ovirt/models/compute/cluster_tests.rb
index 004cce7..ec6ab9e 100644
--- a/tests/ovirt/models/compute/cluster_tests.rb
+++ b/tests/ovirt/models/compute/cluster_tests.rb
@@ -21,7 +21,7 @@ Shindo.tests('Fog::Compute[:ovirt] | cluster model', ['ovirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/ovirt/models/compute/interface_tests.rb b/tests/ovirt/models/compute/interface_tests.rb
index 5fc836c..591d08f 100644
--- a/tests/ovirt/models/compute/interface_tests.rb
+++ b/tests/ovirt/models/compute/interface_tests.rb
@@ -17,7 +17,7 @@ Shindo.tests('Fog::Compute[:ovirt] | interface model', ['ovirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/ovirt/models/compute/server_tests.rb b/tests/ovirt/models/compute/server_tests.rb
index 06c0d88..60d7e86 100644
--- a/tests/ovirt/models/compute/server_tests.rb
+++ b/tests/ovirt/models/compute/server_tests.rb
@@ -41,7 +41,7 @@ Shindo.tests('Fog::Compute[:ovirt] | server model', ['ovirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/ovirt/models/compute/template_tests.rb b/tests/ovirt/models/compute/template_tests.rb
index b831c45..be7866e 100644
--- a/tests/ovirt/models/compute/template_tests.rb
+++ b/tests/ovirt/models/compute/template_tests.rb
@@ -18,7 +18,7 @@ Shindo.tests('Fog::Compute[:ovirt] | template model', ['ovirt']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/rackspace/auto_scale_tests.rb b/tests/rackspace/auto_scale_tests.rb
index 6b41614..9cafb80 100644
--- a/tests/rackspace/auto_scale_tests.rb
+++ b/tests/rackspace/auto_scale_tests.rb
@@ -23,7 +23,6 @@ Shindo.tests('Fog::Rackspace::AutoScale', ['rackspace']) do
     assert_method 'https://lon.identity.api.rackspacecloud.com/v2.0', :authenticate_v2
   end
 
-
   tests('current authentation') do
     pending if Fog.mocking?
 
@@ -33,7 +32,7 @@ Shindo.tests('Fog::Rackspace::AutoScale', ['rackspace']) do
       returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_groups
     end
     tests('dfw region').succeeds do
@@ -81,4 +80,4 @@ Shindo.tests('Fog::Rackspace::AutoScale', ['rackspace']) do
     returns(true) { [200, 203].include? @service.list_groups.status }
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/block_storage_tests.rb b/tests/rackspace/block_storage_tests.rb
index 951e736..4fd5d75 100644
--- a/tests/rackspace/block_storage_tests.rb
+++ b/tests/rackspace/block_storage_tests.rb
@@ -52,7 +52,7 @@ Shindo.tests('Fog::Rackspace::BlockStorage', ['rackspace']) do
 
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_volumes
     end
     tests('dfw region').succeeds  do
@@ -116,4 +116,4 @@ Shindo.tests('Fog::Rackspace::BlockStorage', ['rackspace']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/cdn_tests.rb b/tests/rackspace/cdn_tests.rb
index 37f875b..ecf7191 100644
--- a/tests/rackspace/cdn_tests.rb
+++ b/tests/rackspace/cdn_tests.rb
@@ -1,5 +1,5 @@
 Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
-  
+
   def assert_method(url, method)
     @service.instance_variable_set "@rackspace_auth_url", url
     returns(method) { @service.send :authentication_method }
@@ -12,15 +12,15 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
 
     assert_method 'https://identity.api.rackspacecloud.com', :authenticate_v1
     assert_method 'https://identity.api.rackspacecloud.com/v1', :authenticate_v1
-    assert_method 'https://identity.api.rackspacecloud.com/v1.1', :authenticate_v1    
+    assert_method 'https://identity.api.rackspacecloud.com/v1.1', :authenticate_v1
     assert_method 'https://identity.api.rackspacecloud.com/v2.0', :authenticate_v2
-    
-    assert_method 'https://lon.identity.api.rackspacecloud.com', :authenticate_v1    
+
+    assert_method 'https://lon.identity.api.rackspacecloud.com', :authenticate_v1
     assert_method 'https://lon.identity.api.rackspacecloud.com/v1', :authenticate_v1
     assert_method 'https://lon.identity.api.rackspacecloud.com/v1.1', :authenticate_v1
     assert_method 'https://lon.identity.api.rackspacecloud.com/v2.0', :authenticate_v2
   end
-  
+
   tests('authentication v1') do
     pending if Fog.mocking?
 
@@ -32,7 +32,7 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
       @service.get_containers
     end
     tests('custom endpoint') do
-      @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v1.0', 
+      @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v1.0',
         :rackspace_cdn_url => 'https://my-custom-cdn-endpoint.com'
         returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
         returns(true, "uses custom endpoint") { (@service.instance_variable_get("@uri").host =~ /my-custom-cdn-endpoint\.com/) != nil }
@@ -41,14 +41,14 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
 
   tests('authentication v2') do
     pending if Fog.mocking?
-    
+
     tests('variables populated').succeeds do
       @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
       returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
       returns(false, "path populated") { @service.instance_variable_get("@uri").path.nil? }
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
 
       @service.get_containers
     end
@@ -65,30 +65,30 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
       @service.get_containers
     end
     tests('custom endpoint') do
-      @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', 
+      @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0',
         :rackspace_cdn_url => 'https://my-custom-cdn-endpoint.com'
         returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
         returns(true, "uses custom endpoint") { (@service.instance_variable_get("@uri").host =~ /my-custom-cdn-endpoint\.com/) != nil }
     end
   end
-  
+
   tests('default auth') do
     pending if Fog.mocking?
-    
+
     tests('no params').succeeds do
       @service = Fog::CDN::Rackspace.new :rackspace_region => nil
       returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
       returns(true, "uses DFW") { (@service.instance_variable_get("@uri").host =~ /cdn1/) != nil }
       @service.get_containers
     end
-    
+
     tests('specify region').succeeds do
       @service = Fog::CDN::Rackspace.new :rackspace_region => :ord
       returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
       returns(true) { (@service.instance_variable_get("@uri").host =~ /cdn2/) != nil }
       @service.get_containers
     end
-    
+
     tests('custom endpoint') do
       @service = Fog::CDN::Rackspace.new :rackspace_cdn_url => 'https://my-custom-cdn-endpoint.com'
         returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
@@ -111,7 +111,7 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
   end
 
   pending if Fog.mocking?
-  
+
   def container_meta_attributes
     @cdn.head_container(@directory.key).headers
   end
@@ -129,15 +129,15 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
 
   @directory = Fog::Storage[:rackspace].directories.create(directory_attributes)
   @cdn = @directory.service.cdn
-    
-  begin      
+
+  begin
     tests('publish_container').succeeds do
-      returns(nil, "CDN is not enabled") { container_meta_attributes['X-CDN-Enabled'] }
+      returns("False", "CDN is not enabled") { container_meta_attributes['X-CDN-Enabled'] }
       urls = @cdn.publish_container @directory
       returns(true, "hash contains expected urls") { Fog::CDN::Rackspace::Base::URI_HEADERS.values.all? { |url_type| urls[url_type] } }
-      returns("True", "CDN is enabled") { container_meta_attributes['X-Cdn-Enabled'] }        
+      returns("True", "CDN is enabled") { container_meta_attributes['X-Cdn-Enabled'] }
     end
-    
+
     tests('urls') do
       tests('CDN enabled container').returns(false) do
         @cdn.publish_container @directory
@@ -152,22 +152,22 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
         @cdn.urls(non_existent_container).empty?
       end
     end
-    
+
     tests('urls_from_headers') do
-      headers = { 
-        "X-Cdn-Streaming-Uri"=>"http://168e307d41afe64f1a62-d1e9259b2132e81da48ed3e1e802ef22.r2.stream.cf1.rackcdn.com", 
-        "X-Cdn-Uri"=>"http://6e8f4bf5125c9c2e4e3a-d1e9259b2132e81da48ed3e1e802ef22.r2.cf1.rackcdn.com", 
-        "Date"=>"Fri, 15 Feb 2013 18:36:41 GMT", 
-        "Content-Length"=>"0", 
-        "X-Trans-Id"=>"tx424df53b79bc43fe994d3cec0c4d2d8a", 
-        "X-Ttl"=>"3600", 
-        "X-Cdn-Ssl-Uri"=>"https://f83cb7d39e0b9ff9581b-d1e9259b2132e81da48ed3e1e802ef22.ssl.cf1.rackcdn.com", 
-        "X-Cdn-Ios-Uri"=>"http://a590286a323fec6aed22-d1e9259b2132e81da48ed3e1e802ef22.iosr.cf1.rackcdn.com", 
-        "X-Cdn-Enabled"=>"True", 
-        "Content-Type"=>"text/html; charset=UTF-8", 
+      headers = {
+        "X-Cdn-Streaming-Uri"=>"http://168e307d41afe64f1a62-d1e9259b2132e81da48ed3e1e802ef22.r2.stream.cf1.rackcdn.com",
+        "X-Cdn-Uri"=>"http://6e8f4bf5125c9c2e4e3a-d1e9259b2132e81da48ed3e1e802ef22.r2.cf1.rackcdn.com",
+        "Date"=>"Fri, 15 Feb 2013 18:36:41 GMT",
+        "Content-Length"=>"0",
+        "X-Trans-Id"=>"tx424df53b79bc43fe994d3cec0c4d2d8a",
+        "X-Ttl"=>"3600",
+        "X-Cdn-Ssl-Uri"=>"https://f83cb7d39e0b9ff9581b-d1e9259b2132e81da48ed3e1e802ef22.ssl.cf1.rackcdn.com",
+        "X-Cdn-Ios-Uri"=>"http://a590286a323fec6aed22-d1e9259b2132e81da48ed3e1e802ef22.iosr.cf1.rackcdn.com",
+        "X-Cdn-Enabled"=>"True",
+        "Content-Type"=>"text/html; charset=UTF-8",
         "X-Log-Retention"=>"False"
       }
-        
+
         urls = @cdn.send(:urls_from_headers, headers)
         returns(4) { urls.size }
         returns("http://168e307d41afe64f1a62-d1e9259b2132e81da48ed3e1e802ef22.r2.stream.cf1.rackcdn.com") { urls[:streaming_uri] }
@@ -175,13 +175,12 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
         returns("https://f83cb7d39e0b9ff9581b-d1e9259b2132e81da48ed3e1e802ef22.ssl.cf1.rackcdn.com") { urls[:ssl_uri] }
         returns("http://a590286a323fec6aed22-d1e9259b2132e81da48ed3e1e802ef22.iosr.cf1.rackcdn.com") { urls[:ios_uri] }
     end
-    
+
     tests('purge') do
       pending
     end
-    
+
   ensure
     @directory.destroy if @directory
   end
 end
-
diff --git a/tests/rackspace/compute_tests.rb b/tests/rackspace/compute_tests.rb
index e15fd7c..492846c 100644
--- a/tests/rackspace/compute_tests.rb
+++ b/tests/rackspace/compute_tests.rb
@@ -49,7 +49,7 @@ Shindo.tests('Rackspace | Compute', ['rackspace']) do
 
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_flavors
     end
 
diff --git a/tests/rackspace/compute_v2_tests.rb b/tests/rackspace/compute_v2_tests.rb
index 2def605..2e4412c 100644
--- a/tests/rackspace/compute_v2_tests.rb
+++ b/tests/rackspace/compute_v2_tests.rb
@@ -51,7 +51,7 @@ Shindo.tests('Fog::Compute::RackspaceV2', ['rackspace']) do
       returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_flavors
     end
     tests('dfw region').succeeds do
diff --git a/tests/rackspace/databases_tests.rb b/tests/rackspace/databases_tests.rb
index ad955fb..e1f6557 100644
--- a/tests/rackspace/databases_tests.rb
+++ b/tests/rackspace/databases_tests.rb
@@ -2,7 +2,6 @@ Shindo.tests('Fog::Rackspace::Databases', ['rackspace']) do |variable|
 
   pending if Fog.mocking?
 
-
   def assert_method(url, method)
     @service.instance_variable_set "@rackspace_auth_url", url
     returns(method) { @service.send :authentication_method }
@@ -52,7 +51,7 @@ Shindo.tests('Fog::Rackspace::Databases', ['rackspace']) do |variable|
 
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.flavors
     end
     tests('dfw region').succeeds do
diff --git a/tests/rackspace/dns_tests.rb b/tests/rackspace/dns_tests.rb
index 353f420..a4aeb37 100644
--- a/tests/rackspace/dns_tests.rb
+++ b/tests/rackspace/dns_tests.rb
@@ -54,7 +54,7 @@ Shindo.tests('Fog::DNS::Rackspace', ['rackspace']) do
 
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_domains
     end
     tests('custom endpoint') do
@@ -107,4 +107,4 @@ Shindo.tests('Fog::DNS::Rackspace', ['rackspace']) do
     returns("param1=1&param2=2") { @service.send(:array_to_query_string, {:param1 => [1], :param2 => [2]}) }
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/helper.rb b/tests/rackspace/helper.rb
index 5a906ad..fb893ac 100644
--- a/tests/rackspace/helper.rb
+++ b/tests/rackspace/helper.rb
@@ -60,6 +60,19 @@ module Shindo
       sleep 30 unless Fog.mocking?
     end
 
+    def wait_for_volume_state(service, volume_id, state)
+      current_state = nil
+      until current_state == state
+        current_state = service.get_volume(volume_id).body['volume']['status']
+        if current_state == 'error'
+          Fog::Logger.warning caller
+          Fog::Logger.warning "Volume is in an error state!"
+          return
+        end
+        sleep 10 unless Fog.mocking?
+      end
+    end
+
     def rackspace_test_image_id(service)
       image_id  = Fog.credentials[:rackspace_image_id]
       # I chose to use the first Ubuntu because it will work with the smallest flavor and it doesn't require a license
diff --git a/tests/rackspace/identity_tests.rb b/tests/rackspace/identity_tests.rb
index 68b6ad7..8da9423 100644
--- a/tests/rackspace/identity_tests.rb
+++ b/tests/rackspace/identity_tests.rb
@@ -23,4 +23,4 @@ Shindo.tests('Fog::Rackspace::Identity', ['rackspace']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/load_balancer_tests.rb b/tests/rackspace/load_balancer_tests.rb
index f3b0f09..b25264c 100644
--- a/tests/rackspace/load_balancer_tests.rb
+++ b/tests/rackspace/load_balancer_tests.rb
@@ -51,7 +51,7 @@ Shindo.tests('Fog::Rackspace::LoadBalancers', ['rackspace']) do
       returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_load_balancers
     end
     tests('dfw region').succeeds do
@@ -101,7 +101,6 @@ Shindo.tests('Fog::Rackspace::LoadBalancers', ['rackspace']) do
     end
   end
 
-
   tests('reauthentication') do
     pending if Fog.mocking?
 
diff --git a/tests/rackspace/models/auto_scale/group_tests.rb b/tests/rackspace/models/auto_scale/group_tests.rb
index 18f57b6..03e8d0d 100644
--- a/tests/rackspace/models/auto_scale/group_tests.rb
+++ b/tests/rackspace/models/auto_scale/group_tests.rb
@@ -9,7 +9,6 @@ Shindo.tests('Fog::Rackspace::AutoScale | group', ['rackspace', 'rackspace_autos
 		:group_config => GROUP_CONFIG_OPTIONS
 	}
 
-
 	model_tests(service.groups, options, false) do
     pending if Fog.mocking?
 		tests('#policies').succeeds do
@@ -33,4 +32,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | group', ['rackspace', 'rackspace_autos
     end
 	end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/auto_scale/groups_tests.rb b/tests/rackspace/models/auto_scale/groups_tests.rb
index fcb4d0c..d87970d 100644
--- a/tests/rackspace/models/auto_scale/groups_tests.rb
+++ b/tests/rackspace/models/auto_scale/groups_tests.rb
@@ -14,4 +14,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | groups', ['rackspace', 'rackspace_auto
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/auto_scale/policies_tests.rb b/tests/rackspace/models/auto_scale/policies_tests.rb
index 15931ff..a2156e2 100644
--- a/tests/rackspace/models/auto_scale/policies_tests.rb
+++ b/tests/rackspace/models/auto_scale/policies_tests.rb
@@ -2,7 +2,6 @@ Shindo.tests('Fog::Rackspace::AutoScale | policies', ['rackspace', 'rackspace_au
   pending if Fog.mocking?
   service = Fog::Rackspace::AutoScale.new :rackspace_region => :ord
 
-
   begin
     group = service.groups.create({
       :policies => POLICIES_OPTIONS,
@@ -22,4 +21,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | policies', ['rackspace', 'rackspace_au
     deactive_auto_scale_group(group)
     group.destroy if group
   end
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/auto_scale/policy_tests.rb b/tests/rackspace/models/auto_scale/policy_tests.rb
index 3cb02fb..e8566b2 100644
--- a/tests/rackspace/models/auto_scale/policy_tests.rb
+++ b/tests/rackspace/models/auto_scale/policy_tests.rb
@@ -32,4 +32,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | policy', ['rackspace', 'rackspace_auto
     group.destroy if group
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/auto_scale/webhook_tests.rb b/tests/rackspace/models/auto_scale/webhook_tests.rb
index 72833f9..0e8e79e 100644
--- a/tests/rackspace/models/auto_scale/webhook_tests.rb
+++ b/tests/rackspace/models/auto_scale/webhook_tests.rb
@@ -39,4 +39,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | webhook', ['rackspace', 'rackspace_aut
     group.destroy if group
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/auto_scale/webhooks_tests.rb b/tests/rackspace/models/auto_scale/webhooks_tests.rb
index a018239..4ebf880 100644
--- a/tests/rackspace/models/auto_scale/webhooks_tests.rb
+++ b/tests/rackspace/models/auto_scale/webhooks_tests.rb
@@ -25,4 +25,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | webhooks', ['rackspace', 'rackspace_au
     group.destroy if group
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/compute_v2/image_tests.rb b/tests/rackspace/models/compute_v2/image_tests.rb
index f3c4371..3641229 100644
--- a/tests/rackspace/models/compute_v2/image_tests.rb
+++ b/tests/rackspace/models/compute_v2/image_tests.rb
@@ -58,7 +58,6 @@ Shindo.tests('Fog::Compute::RackspaceV2 | image', ['rackspace']) do
     end
   end
 
-
   tests("success") do
     begin
       server = service.servers.create(options)
diff --git a/tests/rackspace/models/compute_v2/keypairs_tests.rb b/tests/rackspace/models/compute_v2/keypairs_tests.rb
index a9ac0f1..5e1e0eb 100644
--- a/tests/rackspace/models/compute_v2/keypairs_tests.rb
+++ b/tests/rackspace/models/compute_v2/keypairs_tests.rb
@@ -42,6 +42,6 @@ Shindo.tests('Fog::Compute::RackspaceV2 | key_pairs', ['rackspace']) do
     ensure
         key.destroy if key
     end
-    
+
   end
 end
diff --git a/tests/rackspace/models/compute_v2/metadata_tests.rb b/tests/rackspace/models/compute_v2/metadata_tests.rb
index 8f117ef..b2a5e04 100644
--- a/tests/rackspace/models/compute_v2/metadata_tests.rb
+++ b/tests/rackspace/models/compute_v2/metadata_tests.rb
@@ -4,13 +4,13 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
 
   service = Fog::Compute::RackspaceV2.new
   test_time = Time.now.to_i.to_s
-  
+
   tests('success') do
     begin
-      @server = service.servers.create(:name => "fog_server_#{test_time}", 
+      @server = service.servers.create(:name => "fog_server_#{test_time}",
       :flavor_id => rackspace_test_flavor_id(service),
       :image_id => rackspace_test_image_id(service))
-      
+
       @server.wait_for { ready? }
 
       tests('server') do
@@ -18,7 +18,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
           @server.wait_for { ready? }
         end
       end
-      
+
       tests('image') do
         @image = @server.create_image("fog_image_#{test_time}", :metadata => {:my_key => 'my_value'})
         @image.wait_for { ready? }
@@ -27,18 +27,18 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
           metadata = @image.metadata.all
           my_metadata = metadata.select {|datum| datum.key == 'my_key'}
           returns(1) { my_metadata.size }
-          returns('my_value') {my_metadata[0].value } 
+          returns('my_value') {my_metadata[0].value }
         end
 
         tests("#get('my_key')").returns('my_value') do
           pending if Fog.mocking? && !mocks_implemented
-          @image.metadata.get('my_key').value     
-        end        
+          @image.metadata.get('my_key').value
+        end
       end
-      
+
     ensure
       @image.destroy if @image
       @server.destroy if @server
     end
   end
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/compute_v2/server_tests.rb b/tests/rackspace/models/compute_v2/server_tests.rb
index 8751b13..da2545b 100644
--- a/tests/rackspace/models/compute_v2/server_tests.rb
+++ b/tests/rackspace/models/compute_v2/server_tests.rb
@@ -67,11 +67,11 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
 
   model_tests(service.servers, options, true) do
     @instance.wait_for { ready? }
-    
+
     tests('#metadata[\'fog_test\']').returns('true') do
       @instance.metadata['fog_test']
     end
-    
+
      tests("includes #{@network.label}").returns(true) do
        @instance.addresses.keys.include?(@network.label)
      end
@@ -95,7 +95,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
       returns("::1") { @instance.access_ipv6_address }
       returns(new_name) { @instance.name }
     end
-    
+
     tests('#reboot("SOFT")').succeeds do
       @instance.reboot('SOFT')
       returns('REBOOT') { @instance.state }
@@ -224,13 +224,13 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
       server
     }
 
-    commands = lambda { 
-      Fog::SSH::Mock.data[@address].first[:commands] 
+    commands = lambda {
+      Fog::SSH::Mock.data[@address].first[:commands]
     }
 
     test("leaves user unlocked only when requested") do
       create_server.call(ATTRIBUTES.merge(:no_passwd_lock => true))
-      commands.call.none? { |c| c =~ /passwd\s+-l\s+root/ } 
+      commands.call.none? { |c| c =~ /passwd\s+-l\s+root/ }
     end
 
     test("provide a password when the passed isn't locked") do
@@ -260,7 +260,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
       @instance.resize(4)
       returns('RESIZE') { @instance.state }
     end
-  
+
     @instance.wait_for { ready?('VERIFY_RESIZE') }
     sleep 60 unless Fog.mocking?
     tests('#revert_resize').succeeds do
diff --git a/tests/rackspace/models/databases/database_tests.rb b/tests/rackspace/models/databases/database_tests.rb
index 34169dd..95157fd 100644
--- a/tests/rackspace/models/databases/database_tests.rb
+++ b/tests/rackspace/models/databases/database_tests.rb
@@ -13,5 +13,17 @@ Shindo.tests('Fog::Rackspace::Databases | database', ['rackspace']) do
 
   model_tests(instance.databases, { :name => "db_#{Time.now.to_i.to_s}" }, false)
 
+  user_no_host = instance.users.create(:name => "foo", :password => "foo")
+  user_with_host = instance.users.create(:name => "bar", :host => "10.20.30.40", :password => "bar")
+    
+  db = instance.databases.create(:name => "Test_#{Time.now.to_i}")
+
+  db.grant_access_for(user_no_host)
+  db.grant_access_for(user_with_host)
+  
+  db.revoke_access_for(user_no_host)
+  db.revoke_access_for(user_with_host)
+    
+
   instance.destroy
 end
diff --git a/tests/rackspace/models/identity/service_catalog_tests.rb b/tests/rackspace/models/identity/service_catalog_tests.rb
index 821216d..a35479b 100644
--- a/tests/rackspace/models/identity/service_catalog_tests.rb
+++ b/tests/rackspace/models/identity/service_catalog_tests.rb
@@ -37,20 +37,20 @@ Shindo.tests('Fog::Rackspace::ServiceCatalog | users', ['rackspace']) do
 
       @service_catalog = Fog::Rackspace::Identity::ServiceCatalog.from_response(nil, before_hash)
     end
-  
+
     tests('services') do
       services = ["cloudBlockStorage", "cloudDNS", "cloudDatabases", "cloudFiles", "cloudFilesCDN", "cloudLoadBalancers", "cloudMonitoring", "cloudServers", "cloudServersOpenStack", "not_here"]
 
-      returns(services) { @service_catalog.services.collect {|s| s.to_s }.sort }
+      returns(services) { @service_catalog.services.map {|s| s.to_s }.sort }
     end
-  
+
   tests('get_endpoints') do
     endpoints = [{"region"=>"DFW", "versionId"=>"2", "tenantId"=>"777", "versionList"=>"https://dfw.servers.api.rackspacecloud.com/", "versionInfo"=>"https://dfw.servers.api.rackspacecloud.com/v2", "publicURL"=>"https://dfw.servers.api.rackspacecloud.com/v2/777"}, {"region"=>"ORD", "versionId"=>"2", "tenantId"=>"777", "versionList"=>"https://ord.servers.api.rackspacecloud.com/", "versionInfo"=>"https://ord.servers.api.rackspacecloud.com/v2", "publicURL"=>"https://ord.servers.api.rackspac [...]
     returns(endpoints) { @service_catalog.get_endpoints(:cloudServersOpenStack) }
     returns(endpoints) { @service_catalog.get_endpoints('cloudServersOpenStack') }
     returns({}) { @service_catalog.get_endpoints('non-existent') }
   end
-  
+
   tests('get_endpoint') do
     tests('service with mulitple endpoints') do
       returns("https://dfw.servers.api.rackspacecloud.com/v2/777") { @service_catalog.get_endpoint(:cloudServersOpenStack, :dfw) }
@@ -59,7 +59,7 @@ Shindo.tests('Fog::Rackspace::ServiceCatalog | users', ['rackspace']) do
       returns("https://dfw.servers.api.rackspacecloud.com/v2/777") { @service_catalog.get_endpoint('cloudServersOpenStack', 'dfw') }
       returns("https://servers.api.rackspacecloud.com/v2/777") { @service_catalog.get_endpoint('cloudServersOpenStack', :global) }
     end
-    
+
     tests('with one endpoint') do
       tests('catalog contains global endpoint') do
         catalog_hash =  [{"type"=>"volume", "endpoints"=>[{"tenantId"=>"777", "publicURL"=>"https://blockstorage.api.rackspacecloud.com/v1/777"}], "name"=>"cloudBlockStorage"}]
@@ -98,7 +98,7 @@ Shindo.tests('Fog::Rackspace::ServiceCatalog | users', ['rackspace']) do
       returns("https://snet-storage101.ord1.clouddrive.com/v1/Mosso777") { @service_catalog.get_endpoint(:cloudFiles, :ord, true) }
       returns("https://storage101.ord1.clouddrive.com/v1/Mosso777") { @service_catalog.get_endpoint(:cloudFiles, :ord, false) }
     end
-    
+
     tests('error conditions') do
       raises(RuntimeError) { @service_catalog.get_endpoint(:cloudServersOpenStack) }
       raises(RuntimeError) { @service_catalog.get_endpoint(:cloudServersOpenStack, :sat) }
@@ -106,9 +106,9 @@ Shindo.tests('Fog::Rackspace::ServiceCatalog | users', ['rackspace']) do
       raises(RuntimeError) { @service_catalog.get_endpoint(:not_here, :dfw) }
       raises(RuntimeError) { @service_catalog.get_endpoint('non-existent') }
       raises(RuntimeError)  { @service_catalog.get_endpoint(:cloudServersOpenStack, :ord, true) }
-    end    
+    end
   end
-  
+
   tests('reload').succeeds do
     pending if Fog.mocking?
 
@@ -151,4 +151,4 @@ Shindo.tests('Fog::Rackspace::ServiceCatalog | users', ['rackspace']) do
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/load_balancers/load_balancer_tests.rb b/tests/rackspace/models/load_balancers/load_balancer_tests.rb
index bea2754..94348e7 100644
--- a/tests/rackspace/models/load_balancers/load_balancer_tests.rb
+++ b/tests/rackspace/models/load_balancers/load_balancer_tests.rb
@@ -2,16 +2,29 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
 
   pending if Fog.mocking?
 
-  LOAD_BALANCER_ATTRIBUTES = {
-      :name => 'fog' + Time.now.to_i.to_s,
-      :protocol => 'HTTP',
-      :port => 80,
-      :virtual_ips => [{ :type => 'PUBLIC'}],
-      :nodes => [{ :address => '1.1.1.1', :port => 80, :condition => 'ENABLED'}]
-    }
+  MINIMAL_LB_ATTRIBUTES = {
+    :name => "fog#{Time.now.to_i}",
+    :protocol => 'HTTP',
+    :virtual_ips => [{ :type => 'PUBLIC' }],
+  }
+
+  NORMAL_LB_ATTRIBUTES = MINIMAL_LB_ATTRIBUTES.merge({
+    :port => 8080,
+    :nodes => [{ :address => '1.1.1.1', :port => 80, :condition => 'ENABLED' }]
+  })
+
+  FULL_LB_ATTRIBUTES = NORMAL_LB_ATTRIBUTES.merge({
+    :algorithm => 'LEAST_CONNECTIONS',
+    :timeout => 60
+  })
+
+  HTTPS_REDIRECT_LB_ATTRIBUTES = FULL_LB_ATTRIBUTES.merge({
+    :protocol => 'HTTPS',
+    :https_redirect => true
+  })
 
   given_a_load_balancer_service do
-    model_tests(@service.load_balancers, LOAD_BALANCER_ATTRIBUTES, false) do
+    model_tests(@service.load_balancers, NORMAL_LB_ATTRIBUTES, false) do
 
       @instance.wait_for { ready? }
       tests('#save => saving existing with port = 88').succeeds do
@@ -41,7 +54,7 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
         returns(false) { @instance.connection_logging }
       end
 
-   @instance.wait_for { ready? }
+      @instance.wait_for { ready? }
       tests('#enable_content_caching').succeeds do
         @instance.enable_content_caching
         returns(true) { @instance.content_caching }
@@ -169,11 +182,20 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
       @instance.wait_for { ready? }
     end
 
-    tests('create(...with algorithm...)') do
-      attributes = LOAD_BALANCER_ATTRIBUTES.clone
-      attributes[:algorithm] = 'LEAST_CONNECTIONS'
-      attributes[:timeout] = 60
-      @lb = @service.load_balancers.create attributes
+    tests('create with minimal attributes') do
+      @lb = @service.load_balancers.create MINIMAL_LB_ATTRIBUTES
+
+      returns(MINIMAL_LB_ATTRIBUTES[:name]) { @lb.name }
+      returns('HTTP') { @lb.protocol }
+      returns(80) { @lb.port }
+
+      @lb.wait_for { ready? }
+
+      @lb.destroy
+    end
+
+    tests('create with full attributes') do
+      @lb = @service.load_balancers.create FULL_LB_ATTRIBUTES
       returns('LEAST_CONNECTIONS') { @lb.algorithm }
       returns(60) { @lb.timeout }
 
@@ -182,9 +204,19 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
       @lb.destroy
     end
 
+    tests('create with httpsRedirect') do
+      @lb = @service.load_balancers.create HTTPS_REDIRECT_LB_ATTRIBUTES
+      returns('HTTPS') { @lb.protocol }
+      returns(true) { @lb.https_redirect }
+
+      @lb.wait_for { ready? }
+
+      @lb.destroy
+    end
+
 
     tests('failure') do
-      @lb = @service.load_balancers.new LOAD_BALANCER_ATTRIBUTES
+      @lb = @service.load_balancers.new NORMAL_LB_ATTRIBUTES
       tests('#usage => Requires ID').raises(ArgumentError) do
         @lb.usage
       end
diff --git a/tests/rackspace/models/monitoring/alarm_examples_tests.rb b/tests/rackspace/models/monitoring/alarm_examples_tests.rb
index 1e3e4b5..fd9d568 100644
--- a/tests/rackspace/models/monitoring/alarm_examples_tests.rb
+++ b/tests/rackspace/models/monitoring/alarm_examples_tests.rb
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Rackspace::Monitoring | alarm_examples', ['rackspace','racksp
       service.alarm_examples.get(alarm_example_id)
     end
     tests('evaluate').succeeds do
-      values = {'string'=> '12345'} 
+      values = {'string'=> '12345'}
       service.alarm_examples.evaluate(alarm_example_id,values)
     end
   end
diff --git a/tests/rackspace/models/monitoring/alarm_tests.rb b/tests/rackspace/models/monitoring/alarm_tests.rb
index d1bf796..c34b65d 100644
--- a/tests/rackspace/models/monitoring/alarm_tests.rb
+++ b/tests/rackspace/models/monitoring/alarm_tests.rb
@@ -18,7 +18,7 @@ Shindo.tests('Fog::Rackspace::Monitoring | alarm', ['rackspace','rackspace_monit
       check.entity = entity
       alarm = Fog::Rackspace::Monitoring::Alarm.new
       alarm.check = check.id
-      
+
       returns(Fog::Rackspace::Monitoring::Alarm) { alarm.class }
       returns(check_id) { alarm.check.id }
     end
diff --git a/tests/rackspace/models/monitoring/check_tests.rb b/tests/rackspace/models/monitoring/check_tests.rb
index 1a5b3b4..9a788b9 100644
--- a/tests/rackspace/models/monitoring/check_tests.rb
+++ b/tests/rackspace/models/monitoring/check_tests.rb
@@ -2,7 +2,6 @@ Shindo.tests('Fog::Rackspace::Monitoring | check', ['rackspace','rackspace_monit
   pending if Fog.mocking?
   service = Fog::Rackspace::Monitoring.new
 
-
   tests('#entity=') do
     tests('should create new entity if object is a string') do
       check = Fog::Rackspace::Monitoring::Check.new
diff --git a/tests/rackspace/models/monitoring/check_types_tests.rb b/tests/rackspace/models/monitoring/check_types_tests.rb
index 9d30fd2..2377f99 100644
--- a/tests/rackspace/models/monitoring/check_types_tests.rb
+++ b/tests/rackspace/models/monitoring/check_types_tests.rb
@@ -1,9 +1,9 @@
 Shindo.tests('Fog::Rackspace::Monitoring | check_types', ['rackspace','rackspace_monitoring']) do
   pending if Fog.mocking?
   service = Fog::Rackspace::Monitoring.new
-  
+
   @check_types = service.check_types
-  
+
   tests('#all').succeeds do
     @check_types.all
   end
diff --git a/tests/rackspace/models/monitoring/data_points_tests.rb b/tests/rackspace/models/monitoring/data_points_tests.rb
index fe00860..1875e4b 100644
--- a/tests/rackspace/models/monitoring/data_points_tests.rb
+++ b/tests/rackspace/models/monitoring/data_points_tests.rb
@@ -1,14 +1,14 @@
 Shindo.tests('Fog::Rackspace::Monitoring | datapoints', ['rackspace','rackspace_monitoring']) do
   pending if Fog.mocking?
   service = Fog::Rackspace::Monitoring.new
-  
+
   begin
     label = "fog_#{Time.now.to_i.to_s}"
     @entity = service.entities.create :label => label
     @check = service.checks.create CHECK_CREATE_OPTIONS.merge(:label => label, :entity => @entity)
     sleep(@check.period + 30) unless Fog.mocking?
     @metric = service.metrics(:check => @check).first
-    
+
     tests('#datapoints').succeeds do
      service.data_points(:metric => @metric).fetch({ :from => ((Time.now.to_i * 1000) - (3600 * 1000)) })
     end
diff --git a/tests/rackspace/models/monitoring/metric_tests.rb b/tests/rackspace/models/monitoring/metric_tests.rb
index a907f4a..53e1fe7 100644
--- a/tests/rackspace/models/monitoring/metric_tests.rb
+++ b/tests/rackspace/models/monitoring/metric_tests.rb
@@ -1,14 +1,14 @@
 Shindo.tests('Fog::Rackspace::Monitoring | metrics', ['rackspace','rackspace_monitoring']) do
   pending if Fog.mocking?
   service = Fog::Rackspace::Monitoring.new
-  
+
   begin
     label = "fog_#{Time.now.to_i.to_s}"
     @entity = service.entities.create :label => label
     @check = service.checks.create CHECK_CREATE_OPTIONS.merge(:label => label, :entity => @entity)
     sleep(@check.period + 30) unless Fog.mocking?
     @metric = service.metrics(:check => @check).first
-    
+
     tests('#datapoints').succeeds do
      @metric.datapoints
     end
diff --git a/tests/rackspace/models/monitoring/metrics_tests.rb b/tests/rackspace/models/monitoring/metrics_tests.rb
index 46d6a98..7805cc4 100644
--- a/tests/rackspace/models/monitoring/metrics_tests.rb
+++ b/tests/rackspace/models/monitoring/metrics_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests('Fog::Rackspace::Monitoring | metrics', ['rackspace','rackspace_mon
     label = "fog_#{Time.now.to_i.to_s}"
     @entity = service.entities.create :label => label
     @check = service.checks.create CHECK_CREATE_OPTIONS.merge(:label => label, :entity => @entity)
-    
+
     tests('#list_metrics').succeeds do
       service.metrics(:check => @check).all
     end
diff --git a/tests/rackspace/models/monitoring/notification_tests.rb b/tests/rackspace/models/monitoring/notification_tests.rb
index 08ba1ea..96417f9 100644
--- a/tests/rackspace/models/monitoring/notification_tests.rb
+++ b/tests/rackspace/models/monitoring/notification_tests.rb
@@ -3,7 +3,7 @@ Shindo.tests('Fog::Rackspace::Monitoring | notification', ['rackspace','rackspac
   service = Fog::Rackspace::Monitoring.new
 
   options = { :label => "fog_#{Time.now.to_i.to_s}", :type => "email", :details => {:address => "test at test.com"} }
-  
+
   model_tests(service.notifications, options, false) do
 
     tests('#update').succeeds do
diff --git a/tests/rackspace/models/storage/account_tests.rb b/tests/rackspace/models/storage/account_tests.rb
index fcc9fa7..27ea243 100644
--- a/tests/rackspace/models/storage/account_tests.rb
+++ b/tests/rackspace/models/storage/account_tests.rb
@@ -19,8 +19,8 @@ Shindo.tests('Fog::Rackspace::Storage | account', ['rackspace']) do
     key = "testing-update-#{Time.now.to_i}"
     @account.meta_temp_url_key = "testing-update-#{Time.now.to_i}"
     @account.save
-    
+
     headers = @account.service.head_containers.headers
     returns(key) { headers['X-Account-Meta-Temp-Url-Key'] }
   end
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/storage/directories_tests.rb b/tests/rackspace/models/storage/directories_tests.rb
index 85eca32..fed33dd 100644
--- a/tests/rackspace/models/storage/directories_tests.rb
+++ b/tests/rackspace/models/storage/directories_tests.rb
@@ -4,7 +4,7 @@ Shindo.tests('Fog::Rackspace::Storage | directories', ['rackspace']) do
 
   begin
     @name = "fog-directories-test-#{Time.now.to_i.to_s}"
-    @filename = 'lorem.txt'    
+    @filename = 'lorem.txt'
     @dir = @service.directories.create :key => @name, :metadata => {:fog_test => true}
     @file = @dir.files.create :key => @filename, :body => lorem_file
 
@@ -17,10 +17,10 @@ Shindo.tests('Fog::Rackspace::Storage | directories', ['rackspace']) do
       returns( Fog::Storage.get_body_size(lorem_file)) {instance.bytes }
       returns(@filename) { instance.files.first.key }
     end
-    
+
   ensure
     @file.destroy if @file
     @dir.destroy if @dir
   end
-   
-end
\ No newline at end of file
+
+end
diff --git a/tests/rackspace/models/storage/directory_tests.rb b/tests/rackspace/models/storage/directory_tests.rb
index c4494e7..e6723e9 100644
--- a/tests/rackspace/models/storage/directory_tests.rb
+++ b/tests/rackspace/models/storage/directory_tests.rb
@@ -1,41 +1,41 @@
 Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do
 
   @service = Fog::Storage[:rackspace]
-  
+
   def container_meta_attributes
     @service.head_container(@instance.key).headers.reject {|k, v| !(k =~ /X-Container-Meta-/)}
   end
-  
+
   directory_attributes = {
     # Add a random suffix to prevent collision
     :key => "fog-directory-tests-#{rand(65536)}"
   }
-  
+
    model_tests(@service.directories, directory_attributes, Fog.mocking?) do
-     
+
      tests('#public?').returns(false) do
        @instance.public?
      end
-     
+
      tests('#public_url') do
-       
+
        tests('http').returns(nil) do
          @instance.public_url
         end
 
-        @instance.cdn_cname = "my_cname.com"        
+        @instance.cdn_cname = "my_cname.com"
         tests('cdn_cname').returns(nil) do
           @instance.public_url
         end
-        
+
         @instance.cdn_cname = nil
         @service.instance_variable_set "@rackspace_cdn_ssl", true
         tests('ssl').returns(nil) do
           @instance.public_url
-        end   
-        @service.instance_variable_set "@rackspace_cdn_ssl", nil             
+        end
+        @service.instance_variable_set "@rackspace_cdn_ssl", nil
      end
-     
+
      tests('#ios_url').returns(nil) do
        @instance.ios_url
      end
@@ -43,11 +43,11 @@ Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do
      tests('#streaming_url').returns(nil) do
        @instance.streaming_url
      end
-     
+
      tests('cdn') do
        @instance.public = true
        @instance.save
-       
+
        tests('#public?').returns(true) do
          @instance.public?
        end
@@ -58,7 +58,7 @@ Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do
            @instance.public_url  =~ /http:\/\//
           end
 
-          @instance.cdn_cname = "my_cname.com"        
+          @instance.cdn_cname = "my_cname.com"
           tests('cdn_cname').returns(0) do
             @instance.public_url  =~ /my_cname\.com/
           end
@@ -67,7 +67,7 @@ Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do
           @service.instance_variable_set "@rackspace_cdn_ssl", true
           tests('ssl').returns(0) do
             @instance.public_url =~ /https:\/\/.+\.ssl\./
-          end   
+          end
           @service.instance_variable_set "@rackspace_cdn_ssl", nil
        end
 
@@ -78,13 +78,13 @@ Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do
        tests('#streaming_url').returns(0) do
          @instance.streaming_url =~ /http:\/\/.+\.stream\./
        end
-       
+
      end
      tests("reload") do
        @instance.reload
        returns(nil) { @instance.instance_variable_get("@urls") }
        returns(nil) { @instance.instance_variable_get("@files") }
-       returns(nil) { @instance.instance_variable_get("@public") }       
+       returns(nil) { @instance.instance_variable_get("@public") }
      end
    end
 
@@ -112,27 +112,27 @@ Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do
          @instance.save
          container_meta_attributes
        end
-       
+
        tests('should retrieve metadata when necessary') do
          @service.put_container(@instance.key, {"X-Container-Meta-List-Test"=>"true"} )
          dir = @service.directories.find {|d| d.key == @instance.key }
          returns(nil) { dir.instance_variable_get("@metadata") }
          returns('true') { dir.metadata[:list_test] }
        end
-       
+
        tests("should reload metadata after calling reload").returns("42") do
          @service.put_container @instance.key, "X-Container-Meta-Answer" => 42
          @instance.reload
          @instance.metadata[:answer]
        end
-       
+
        tests("should reload metadata after calling reload").returns("42") do
          @service.put_container @instance.key, "X-Container-Meta-Answer" => 42
          @instance.reload
          @instance.metadata[:answer]
        end
-       
+
      end
    end
-      
-end
\ No newline at end of file
+
+end
diff --git a/tests/rackspace/models/storage/file_tests.rb b/tests/rackspace/models/storage/file_tests.rb
index 4c204d4..160f008 100644
--- a/tests/rackspace/models/storage/file_tests.rb
+++ b/tests/rackspace/models/storage/file_tests.rb
@@ -68,7 +68,7 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
       tests('#metadata') do
 
         before do
-          @instance.metadata[:foo] = 'bar'  
+          @instance.metadata[:foo] = 'bar'
           @instance.save
         end
 
@@ -89,17 +89,17 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
           @instance.metadata[:foo] = nil
           @instance.save
           object_meta_attributes
-        end      
+        end
 
         tests("removes one key while leaving the other") do
           @instance.metadata[:color] = "green"
           @instance.save
           returns({"X-Object-Meta-Foo"=>"bar", "X-Object-Meta-Color"=>"green"}) { object_meta_attributes  }
-                    
+
           tests("set metadata[:color] = nil").returns({"X-Object-Meta-Foo"=>"bar"}) do
             @instance.metadata[:color] = nil
             @instance.save
-            
+
             object_meta_attributes
           end
         end
@@ -118,10 +118,10 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
       ensure
         @file.destroy if @file
       end
-      
+
       tests('urls') do
         tests('no CDN') do
-          
+
           tests('url') do
             tests('http').succeeds do
               expire_time = Time.now + 3600
@@ -152,7 +152,7 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
               @directory.service.instance_variable_set "@rackspace_cdn_ssl", true
               tests('ssl').returns(nil) do
                 @instance.public_url
-              end   
+              end
               @directory.service.instance_variable_set "@rackspace_cdn_ssl", nil
            end
 
@@ -168,12 +168,12 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
           tests('#public_url') do
             @directory.public = true
             @directory.save
-            
+
             tests('http').returns(0) do
               @instance.public_url  =~ /http:\/\/.*#{@instance.key}/
              end
 
-             @directory.cdn_cname = "my_cname.com"        
+             @directory.cdn_cname = "my_cname.com"
              tests('cdn_cname').returns(0) do
                @instance.public_url  =~ /my_cname\.com.*#{@instance.key}/
              end
@@ -182,7 +182,7 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
              @directory.service.instance_variable_set "@rackspace_cdn_ssl", true
              tests('ssl').returns(0) do
                @instance.public_url =~ /https:\/\/.+\.ssl\..*#{@instance.key}/
-             end   
+             end
              @directory.service.instance_variable_set "@rackspace_cdn_ssl", nil
           end
 
@@ -216,33 +216,33 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
         end
       end
     end
-    
+
       tests('#metadata keys') do
-        
+
         after do
           clear_metadata
           @instance.save
         end
 
-        @instance.metadata[:foo_bar] = 'baz'  
+        @instance.metadata[:foo_bar] = 'baz'
         tests("should support compound key names").returns('baz') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
         end
 
-        @instance.metadata['foo'] = 'bar'  
+        @instance.metadata['foo'] = 'bar'
         tests("should support string keys").returns('bar') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo']
         end
 
-        @instance.metadata['foo_bar'] = 'baz'  
+        @instance.metadata['foo_bar'] = 'baz'
         tests("should support compound string key names").returns('baz') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
         end
 
-        @instance.metadata['foo-bar'] = 'baz'  
+        @instance.metadata['foo-bar'] = 'baz'
         tests("should support hyphenated keys").returns('baz') do
           @instance.save
           object_meta_attributes['X-Object-Meta-Foo-Bar']
@@ -258,41 +258,43 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
       end
 
       @instance.access_control_allow_origin = 'http://example.com'
-      @instance.save              
+      @instance.save
       tests("#access_control_allow_origin should return access control attribute").returns('http://example.com') do
         @instance.access_control_allow_origin
       end
 
       @instance.access_control_allow_origin = 'foo'
-      @instance.save              
+      @instance.save
       tests("#access_control_allow_origin= should update access_control_allow_origin").returns('bar') do
         @instance.access_control_allow_origin = 'bar'
-        @instance.save                
+        @instance.save
         @instance.access_control_allow_origin
       end
 
       tests("#access_control_allow_origin= should not blow up on nil") do
         @instance.access_control_allow_origin = nil
-        @instance.save                        
+        @instance.save
       end
 
     end
 
     tests("#delete_at") do
+      @delete_at_time = (Time.now + 300).to_i
+
       tests("#delete_at should default to nil").returns(nil) do
         @instance.delete_at
       end
 
-      @instance.delete_at = 1
+      @instance.delete_at = @delete_at_time
       @instance.save
-      tests("#delete_at should return delete_at attribute").returns(1) do
+      tests("#delete_at should return delete_at attribute").returns(@delete_at_time) do
         @instance.delete_at
       end
 
-      @instance.delete_at = 1
+      @instance.delete_at = @delete_at_time
       @instance.save
-      tests("#delete_at= should update delete_at").returns(2) do
-        @instance.delete_at = 2
+      tests("#delete_at= should update delete_at").returns(@delete_at_time + 100) do
+        @instance.delete_at = @delete_at_time + 100
         @instance.save
         @instance.delete_at
       end
@@ -304,20 +306,22 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
     end
 
     tests("#delete_after") do
+      @delete_after_time = (Time.now + 300).to_i
+
       tests("#delete_after should default to nil").returns(nil) do
         @instance.delete_after
       end
 
-      @instance.delete_after = 1
+      @instance.delete_after = @delete_after_time
       @instance.save
-      tests("#delete_after should return delete_after attribute").returns(1) do
+      tests("#delete_after should return delete_after attribute").returns(@delete_after_time) do
         @instance.delete_after
       end
 
-      @instance.delete_after = 1
+      @instance.delete_after = @delete_after_time
       @instance.save
-      tests("#delete_after= should update delete_after").returns(2) do
-        @instance.delete_after = 2
+      tests("#delete_after= should update delete_after").returns(@delete_after_time + 100) do
+        @instance.delete_after = @delete_after_time + 100
         @instance.save
         @instance.delete_after
       end
@@ -329,13 +333,12 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
     end
   end
 
-
   model_tests(@directory.files, file_attributes, Fog.mocking?) do
 
     tests("#origin") do
 
       tests("#origin should default to nil").returns(nil) do
-        @instance.save                        
+        @instance.save
         @instance.origin
       end
 
@@ -347,7 +350,7 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
       @instance.attributes.delete('Origin')
 
       @instance.origin = 'foo'
-      @instance.save      
+      @instance.save
       tests("#origin= should update origin").returns('bar') do
         @instance.origin = 'bar'
         @instance.save
@@ -356,7 +359,7 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
 
       tests("#origin= should not blow up on nil") do
         @instance.origin = nil
-        @instance.save        
+        @instance.save
       end
 
     end
diff --git a/tests/rackspace/models/storage/files_tests.rb b/tests/rackspace/models/storage/files_tests.rb
index 0124bbf..9eace79 100644
--- a/tests/rackspace/models/storage/files_tests.rb
+++ b/tests/rackspace/models/storage/files_tests.rb
@@ -10,7 +10,6 @@ Shindo.tests("Fog::Rackspace::Storage | files", ['rackspace', 'storage']) do
     :public => true
   }
 
-
   tests('success') do
     collection_tests(Fog::Storage[:rackspace].directories.create(directory_attributes).files, file_attributes, Fog.mocking?)
 
@@ -37,5 +36,4 @@ Shindo.tests("Fog::Rackspace::Storage | files", ['rackspace', 'storage']) do
     @directory.destroy
   end
 
-
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/models/storage/metadata_tests.rb b/tests/rackspace/models/storage/metadata_tests.rb
index 492bcbf..99db184 100644
--- a/tests/rackspace/models/storage/metadata_tests.rb
+++ b/tests/rackspace/models/storage/metadata_tests.rb
@@ -1,20 +1,20 @@
 require 'fog/rackspace/models/storage/metadata'
 require 'fog/rackspace/models/storage/directory'
+require 'fog/rackspace/models/storage/directories'
 require 'fog/rackspace/models/storage/file'
 
-
 Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
-  
+
   def assert_directory(obj, assert_value)
     metadata = Fog::Storage::Rackspace::Metadata.new obj
     returns(assert_value) { metadata.send :directory? }
   end
-  
+
   def assert_file(obj, assert_value)
     metadata = Fog::Storage::Rackspace::Metadata.new obj
     returns(assert_value) { metadata.send :file? }
   end
-  
+
   tests('Directory') do
     @directory = Fog::Storage::Rackspace::Directory.new
     tests('#to_key') do
@@ -27,38 +27,73 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
         metadata.send(:to_key, "bad-key")
       end
     end
-  
+
+    tests('#[]') do
+      tests('[:symbol_test]=42') do
+        metadata = Fog::Storage::Rackspace::Metadata.new @directory
+
+        metadata[:symbol_test] = 42
+        returns(42) { metadata[:symbol_test] }
+        returns(42) { metadata['symbol_test'] }
+        returns(nil) { metadata[:nil_test] }
+      end
+
+      tests('[\'string_test\']=55') do
+        metadata = Fog::Storage::Rackspace::Metadata.new @directory
+
+        metadata['string_test'] = 55
+        returns(55) { metadata[:string_test] }
+        returns(55) { metadata['string_test'] }
+        returns(nil) { metadata['nil_test'] }
+      end
+
+      tests('set string and symbol') do
+        metadata = Fog::Storage::Rackspace::Metadata.new @directory
+
+        metadata[:key_test] = 55
+        metadata['key_test'] = 55
+        returns(1) { metadata.size }
+      end
+
+      tests('key to remove').returns("X-Remove-Container-Meta-Thumbnail-Image") do
+        metadata = Fog::Storage::Rackspace::Metadata.new @directory
+
+        metadata.send(:to_header_key, :thumbnail_image, nil)
+      end
+    end
+
+
     tests('#to_header_key') do
       metadata = Fog::Storage::Rackspace::Metadata.new @directory
-    
+
       tests('key to add').returns("X-Container-Meta-Thumbnail-Image") do
         metadata.send(:to_header_key, :thumbnail_image, true)
       end
-    
+
       tests('key to remove').returns("X-Remove-Container-Meta-Thumbnail-Image") do
         metadata.send(:to_header_key, :thumbnail_image, nil)
-      end    
+      end
     end
-  
+
     tests('#to_headers').returns({"X-Container-Meta-Preview"=>true, "X-Remove-Container-Meta-Delete-Me"=>1}) do
       metadata = Fog::Storage::Rackspace::Metadata.new @directory
       metadata[:preview] = true
       metadata[:delete_me] = nil
-    
-      metadata.to_headers    
+
+      metadata.to_headers
     end
-  
+
   tests("#from_headers").returns({:my_boolean=>"true", :my_integer=>"42", :my_string=>"I am a string"}) do
     headers = {
       "X-Container-Meta-My-Integer"=> "42",
-      "X-Container-Meta-My-Boolean"=> "true", 
-      "X-Container-Meta-My-String"=> "I am a string" 
+      "X-Container-Meta-My-Boolean"=> "true",
+      "X-Container-Meta-My-String"=> "I am a string"
     }
 
       metadata = Fog::Storage::Rackspace::Metadata.from_headers @directory, headers
       metadata.data
     end
-  
+
      tests("#delete").returns({"X-Remove-Container-Meta-Delete-Me"=>1}) do
        metadata = Fog::Storage::Rackspace::Metadata.new @directory
         metadata.delete(:delete_me)
@@ -67,7 +102,6 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
      end
    end
 
-
    tests('File') do
      @file = Fog::Storage::Rackspace::File.new
      tests('#to_key') do
@@ -90,7 +124,7 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
 
        tests('key to remove').returns("X-Remove-Object-Meta-Thumbnail-Image") do
          metadata.send(:to_header_key, :thumbnail_image, nil)
-       end    
+       end
      end
 
      tests('#to_headers').returns({"X-Object-Meta-Preview"=>true, "X-Remove-Object-Meta-Delete-Me"=>1}) do
@@ -98,13 +132,13 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
        metadata[:preview] = true
        metadata[:delete_me] = nil
 
-       metadata.to_headers    
+       metadata.to_headers
      end
 
      tests("#from_headers").returns({:my_boolean=>"true", :my_integer=>"42", :my_string=>"I am a string"}) do
        headers = {
          "X-Object-Meta-My-Integer"=> "42",
-         "X-Object-Meta-My-Boolean"=> "true", 
+         "X-Object-Meta-My-Boolean"=> "true",
          "X-Object-Meta-My-String"=> "I am a string"
        }
 
@@ -119,7 +153,7 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
          metadata.to_headers
       end
     end
-      
+
    tests("#respond_to?") do
      tests('Should respond to all of the methods in Hash class').returns(true) do
        metadata = Fog::Storage::Rackspace::Metadata.new @file
@@ -130,45 +164,45 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do
        metadata.methods.all? {|method| metadata.respond_to?(method)}
      end
    end
-   
+
    tests("#method_missing").returns(true) do
      metadata = Fog::Storage::Rackspace::Metadata.new @file
       metadata[:test] = true
       metadata[:test]
    end
-   
+
    tests('#directory?') do
      assert_directory Fog::Storage::Rackspace::Directories, true
-     assert_directory Fog::Storage::Rackspace::Directory, true       
+     assert_directory Fog::Storage::Rackspace::Directory, true
      assert_directory Fog::Storage::Rackspace::Directory.new, true
 
      assert_directory nil, false
      assert_directory Fog::Storage::Rackspace::Files, false
      assert_directory Fog::Storage::Rackspace::File, false
      assert_directory Fog::Storage::Rackspace::File.new, false
-     assert_directory "I am a string!", false      
+     assert_directory "I am a string!", false
    end
-   
+
    tests('#file?') do
      assert_file Fog::Storage::Rackspace::Directories, false
-     assert_file Fog::Storage::Rackspace::Directory, false    
+     assert_file Fog::Storage::Rackspace::Directory, false
      assert_file Fog::Storage::Rackspace::Directory.new, false
 
      assert_file nil, false
      assert_file Fog::Storage::Rackspace::Files, true
      assert_file Fog::Storage::Rackspace::File, true
      assert_file Fog::Storage::Rackspace::File.new, true
-     assert_file "I am a string!", false      
+     assert_file "I am a string!", false
    end
-   
+
    tests('#parent_class') do
      tests('Fog::Storage::Rackspace::Directory object') do
        metadata = Fog::Storage::Rackspace::Metadata.new Fog::Storage::Rackspace::Directory.new
-       returns(Fog::Storage::Rackspace::Directory) { metadata.send :parent_class }       
+       returns(Fog::Storage::Rackspace::Directory) { metadata.send :parent_class }
      end
      tests('Fog::Storage::Rackspace::Directory class') do
        metadata = Fog::Storage::Rackspace::Metadata.new Fog::Storage::Rackspace::Directory
-       returns(Fog::Storage::Rackspace::Directory) { metadata.send :parent_class }       
+       returns(Fog::Storage::Rackspace::Directory) { metadata.send :parent_class }
      end
    end
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/monitoring_tests.rb b/tests/rackspace/monitoring_tests.rb
index 95a69cb..f98b12c 100644
--- a/tests/rackspace/monitoring_tests.rb
+++ b/tests/rackspace/monitoring_tests.rb
@@ -23,7 +23,6 @@ Shindo.tests('Fog::Rackspace::Monitoring', ['rackspace','rackspace_monitoring'])
     assert_method 'https://lon.identity.api.rackspacecloud.com/v2.0', :authenticate_v2
   end
 
-
   tests('current authentation') do
     pending if Fog.mocking?
 
@@ -33,7 +32,7 @@ Shindo.tests('Fog::Rackspace::Monitoring', ['rackspace','rackspace_monitoring'])
       returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.list_entities
     end
     tests('custom endpoint') do
@@ -74,4 +73,4 @@ Shindo.tests('Fog::Rackspace::Monitoring', ['rackspace','rackspace_monitoring'])
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/queues_tests.rb b/tests/rackspace/queues_tests.rb
index b187693..2bc04c7 100644
--- a/tests/rackspace/queues_tests.rb
+++ b/tests/rackspace/queues_tests.rb
@@ -35,7 +35,7 @@ Shindo.tests('Fog::Rackspace::Queues', ['rackspace']) do
 
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.queues
     end
     tests('dfw region').succeeds do
diff --git a/tests/rackspace/rackspace_tests.rb b/tests/rackspace/rackspace_tests.rb
index a9ee31e..1022bbc 100644
--- a/tests/rackspace/rackspace_tests.rb
+++ b/tests/rackspace/rackspace_tests.rb
@@ -53,4 +53,4 @@ Shindo.tests('Fog::Rackspace', ['rackspace']) do
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/auto_scale/config_tests.rb b/tests/rackspace/requests/auto_scale/config_tests.rb
index 4a649ef..ba78382 100644
--- a/tests/rackspace/requests/auto_scale/config_tests.rb
+++ b/tests/rackspace/requests/auto_scale/config_tests.rb
@@ -1,5 +1,5 @@
 Shindo.tests('Fog::Rackspace::AutoScale | config_tests', ['rackspace', 'rackspace_autoscale']) do
-  
+
   pending if Fog.mocking?
   service = Fog::Rackspace::AutoScale.new :rackspace_region => :ord
 
@@ -94,4 +94,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | config_tests', ['rackspace', 'rackspac
 
   # service.delete_group(@group_id)
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/auto_scale/group_tests.rb b/tests/rackspace/requests/auto_scale/group_tests.rb
index c2a86c7..0cb4b43 100644
--- a/tests/rackspace/requests/auto_scale/group_tests.rb
+++ b/tests/rackspace/requests/auto_scale/group_tests.rb
@@ -1,8 +1,8 @@
 Shindo.tests('Fog::Rackspace::AutoScale | group_tests', ['rackspace', 'rackspace_autoscale']) do
-	
-	pending if Fog.mocking? 
+
+	pending if Fog.mocking?
 	service = Fog::Rackspace::AutoScale.new :rackspace_region => :ord
-  
+
 	tests('success') do
 		tests('#create new group').formats(GROUP_FORMAT) do
 			response = service.create_group(LAUNCH_CONFIG_OPTIONS, GROUP_CONFIG_OPTIONS, POLICIES_OPTIONS).body
@@ -47,4 +47,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | group_tests', ['rackspace', 'rackspace
     end
 	end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/auto_scale/helper.rb b/tests/rackspace/requests/auto_scale/helper.rb
index c63ec80..0403976 100644
--- a/tests/rackspace/requests/auto_scale/helper.rb
+++ b/tests/rackspace/requests/auto_scale/helper.rb
@@ -28,23 +28,23 @@ GROUP_STATE_FORMAT =  {
   }
 
 GET_GROUP_HEADERS_FORMAT = {
-  "Content-Type"=>String, 
-  "Via"=>String, 
-  "x-response-id"=>String, 
-  "Date"=>String, 
-  "Transfer-Encoding"=>String, 
+  "Content-Type"=>String,
+  "Via"=>String,
+  "x-response-id"=>String,
+  "Date"=>String,
+  "Transfer-Encoding"=>String,
   "Server"=>String
 }
 
 GROUP_DELETE_DATA_FORMAT = {
   :headers=> {
-    "Content-Type"=>String, 
-    "Via"=>String, 
-    "x-response-id"=>String, 
-    "Date"=>String, 
+    "Content-Type"=>String,
+    "Via"=>String,
+    "x-response-id"=>String,
+    "Date"=>String,
     "Server"=>String
-  }, 
-  :status=>Integer, 
+  },
+  :status=>Integer,
   :remote_ip=>String
 }
 
@@ -97,11 +97,11 @@ GROUP_CONFIG_FORMAT = {
 }
 
 POLICY_FORMAT = {
-    "name"=> String, 
-    "links"=> Array, 
-    "cooldown"=>Integer, 
-    "type"=>String, 
-    "id"=>String, 
+    "name"=> String,
+    "links"=> Array,
+    "cooldown"=>Integer,
+    "type"=>String,
+    "id"=>String,
     "change"=>Integer
   }
 
@@ -221,4 +221,4 @@ def deactive_auto_scale_group(group)
   config.min_entities = 0
   config.max_entities = 0
   config.save
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/auto_scale/policy_tests.rb b/tests/rackspace/requests/auto_scale/policy_tests.rb
index b718cfc..a1ac911 100644
--- a/tests/rackspace/requests/auto_scale/policy_tests.rb
+++ b/tests/rackspace/requests/auto_scale/policy_tests.rb
@@ -1,4 +1,4 @@
-Shindo.tests('Fog::Rackspace::AutoScale | policy_tests', ['rackspace', 'rackspace_autoscale']) do 
+Shindo.tests('Fog::Rackspace::AutoScale | policy_tests', ['rackspace', 'rackspace_autoscale']) do
 
   pending if Fog.mocking?
   service = Fog::Rackspace::AutoScale.new :rackspace_region => :ord
@@ -58,14 +58,14 @@ Shindo.tests('Fog::Rackspace::AutoScale | policy_tests', ['rackspace', 'rackspac
     tests('#update policy').raises(Fog::Rackspace::AutoScale::BadRequest) do
       service.update_policy(@group_id, 123, {})
     end
-    
+
     tests('#execute policy').raises(Fog::Rackspace::AutoScale::NotFound) do
       service.execute_policy(@group_id, 123)
     end
-    
+
     tests('#delete policy').raises(Fog::Rackspace::AutoScale::NotFound) do
       service.delete_policy(@group_id, 123)
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/auto_scale/webhook_tests.rb b/tests/rackspace/requests/auto_scale/webhook_tests.rb
index e1f5d83..3f4a539 100644
--- a/tests/rackspace/requests/auto_scale/webhook_tests.rb
+++ b/tests/rackspace/requests/auto_scale/webhook_tests.rb
@@ -55,4 +55,4 @@ Shindo.tests('Fog::Rackspace::AutoScale | webhook_tests', ['rackspace', 'rackspa
     end
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/block_storage/volume_tests.rb b/tests/rackspace/requests/block_storage/volume_tests.rb
index 309a53f..c7422f5 100644
--- a/tests/rackspace/requests/block_storage/volume_tests.rb
+++ b/tests/rackspace/requests/block_storage/volume_tests.rb
@@ -10,6 +10,7 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume_tests', ['rackspace']) do
     'volume_type' => String,
     'availability_zone' => String,
     'snapshot_id' => Fog::Nullable::String,
+    'image_id' => Fog::Nullable::String,
     'attachments' => Array,
     'metadata' => Hash
   }
@@ -25,12 +26,23 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume_tests', ['rackspace']) do
   service = Fog::Rackspace::BlockStorage.new
 
   tests('success') do
-    id = nil
+    ids = []
     size = 100
 
     tests("#create_volume(#{size})").formats(get_volume_format) do
       data = service.create_volume(size).body
-      id = data['volume']['id']
+      ids << data['volume']['id']
+      data
+    end
+
+    tests("#create_volume for a bootable volume").formats(get_volume_format) do
+      # Find a suitable image.
+      image_id = rackspace_test_image_id(Fog::Compute.new(:provider => 'rackspace'))
+      data = service.create_volume(size, :image_id => image_id).body
+      tests("assigned an image id").returns(image_id) do
+        data['volume']['image_id']
+      end
+      ids << data['volume']['id']
       data
     end
 
@@ -38,12 +50,16 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume_tests', ['rackspace']) do
       service.list_volumes.body
     end
 
-    tests("#get_volume(#{id})").formats(get_volume_format) do
-      service.get_volume(id).body
+    tests("#get_volume(#{ids.first})").formats(get_volume_format) do
+      service.get_volume(ids.first).body
     end
 
-    tests("#delete_volume(#{id})").succeeds do
-      service.delete_volume(id)
+    ids.each do |id|
+      tests("#delete_volume(#{id})").succeeds do
+        wait_for_volume_state(service, id, 'available')
+
+        service.delete_volume(id)
+      end
     end
   end
 
diff --git a/tests/rackspace/requests/cdn/cdn_tests.rb b/tests/rackspace/requests/cdn/cdn_tests.rb
index 8745f50..f1684ca 100644
--- a/tests/rackspace/requests/cdn/cdn_tests.rb
+++ b/tests/rackspace/requests/cdn/cdn_tests.rb
@@ -12,7 +12,7 @@ Shindo.tests('Fog::CDN[:rackspace] | CDN requests', ['rackspace']) do
     "cdn_ssl_uri" => String,
     "cdn_uri" => String
   }]
-  
+
   @container_headers = {
     "Content-Length" => String,
     "X-Cdn-Enabled" => String,
@@ -25,13 +25,13 @@ Shindo.tests('Fog::CDN[:rackspace] | CDN requests', ['rackspace']) do
     "X-Trans-Id" => String,
     "Date" => String
   }
-  
-  begin 
+
+  begin
     unless Fog.mocking?
       @directory = Fog::Storage[:rackspace].directories.create(:key => 'fogcontainertests')
       @file = @directory.files.create(:key => 'fog_object', :body => lorem_file)
     end
-  
+
     tests('success') do
 
       tests("#put_container('fogcontainertests')").succeeds do
@@ -52,7 +52,7 @@ Shindo.tests('Fog::CDN[:rackspace] | CDN requests', ['rackspace']) do
 
       #NOTE: you are only allow 25 object purges per day. If this fails, you may be over the limit
       tests("#delete_object('fog_object')").succeeds do
-        Fog::CDN[:rackspace].delete_object('fogcontainertests', 'fog_object')        
+        Fog::CDN[:rackspace].delete_object('fogcontainertests', 'fog_object')
       end
     end
   ensure
@@ -61,16 +61,15 @@ Shindo.tests('Fog::CDN[:rackspace] | CDN requests', ['rackspace']) do
       @directory.destroy if @directory
     end
   end
-  
+
   tests('failure') do
-    
+
     tests("#head_container('missing_container')").raises(Fog::Storage::Rackspace::NotFound) do
       Fog::CDN[:rackspace].head_container('missing_container')
     end
-    
+
     tests("#post_container('missing_container')").raises(Fog::Storage::Rackspace::NotFound) do
       Fog::CDN[:rackspace].post_container('missing_container', 'X-TTL' => 5000)
     end
   end
 end
-
diff --git a/tests/rackspace/requests/compute/address_tests.rb b/tests/rackspace/requests/compute/address_tests.rb
index ef38c70..c7d1ee7 100644
--- a/tests/rackspace/requests/compute/address_tests.rb
+++ b/tests/rackspace/requests/compute/address_tests.rb
@@ -1,9 +1,9 @@
 Shindo.tests('Fog::Compute[:rackspace] | address requests', ['rackspace']) do
 
   @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)
-  
+
   tests('success') do
- 
+
     @server = @service.servers.create(:flavor_id => 1, :image_id => 19)
 
     tests("#list_addresses(#{@server.id})").formats({'addresses' => {'private' => [String], 'public' => [String]}}) do
@@ -24,7 +24,7 @@ Shindo.tests('Fog::Compute[:rackspace] | address requests', ['rackspace']) do
   end
 
   tests('failure') do
-  
+
     tests('#list_addresses(0)').raises(Fog::Compute::Rackspace::NotFound) do
       @service.list_addresses(0)
     end
diff --git a/tests/rackspace/requests/compute/flavor_tests.rb b/tests/rackspace/requests/compute/flavor_tests.rb
index 59874a6..1969f6a 100644
--- a/tests/rackspace/requests/compute/flavor_tests.rb
+++ b/tests/rackspace/requests/compute/flavor_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('Fog::Compute[:rackspace] | flavor requests', ['rackspace']) do
     'ram'   => Integer
   }
 
-  @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)  
+  @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)
 
   tests('success') do
     tests('#get_flavor_details(1)').formats(@flavor_format) do
diff --git a/tests/rackspace/requests/compute/helper.rb b/tests/rackspace/requests/compute/helper.rb
index d1fae4f..6ef36c6 100644
--- a/tests/rackspace/requests/compute/helper.rb
+++ b/tests/rackspace/requests/compute/helper.rb
@@ -1,16 +1,10 @@
 class Rackspace
-
   module Compute
-
     module Formats
-
       SUMMARY = {
         'id'    => Integer,
         'name'  => String
       }
-
     end
-
   end
-
 end
diff --git a/tests/rackspace/requests/compute/image_tests.rb b/tests/rackspace/requests/compute/image_tests.rb
index 4f486b4..2307be1 100644
--- a/tests/rackspace/requests/compute/image_tests.rb
+++ b/tests/rackspace/requests/compute/image_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests('Fog::Compute[:rackspace] | image requests', ['rackspace']) do
     'updated'   => String
   }
 
-  @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)  
+  @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)
 
   tests('success') do
 
diff --git a/tests/rackspace/requests/compute/server_tests.rb b/tests/rackspace/requests/compute/server_tests.rb
index 4d62297..d17c178 100644
--- a/tests/rackspace/requests/compute/server_tests.rb
+++ b/tests/rackspace/requests/compute/server_tests.rb
@@ -14,8 +14,8 @@ Shindo.tests('Fog::Compute[:rackspace] | server requests', ['rackspace']) do
     'progress'  => Integer,
     'status'    => String
   }
-  
-  @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)  
+
+  @service = Fog::Compute.new(:provider => :rackspace, :version => :v1)
 
   tests('success') do
 
diff --git a/tests/rackspace/requests/compute_v2/address_tests.rb b/tests/rackspace/requests/compute_v2/address_tests.rb
index 361082c..296ed67 100644
--- a/tests/rackspace/requests/compute_v2/address_tests.rb
+++ b/tests/rackspace/requests/compute_v2/address_tests.rb
@@ -3,7 +3,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | address requests', ['rackspace']) do
   @service = Fog::Compute.new(:provider => 'Rackspace', :version => 'V2')
   image_id  = rackspace_test_image_id(@service)
   flavor_id = rackspace_test_flavor_id(@service)
-  
+
   tests('success') do
     unless Fog.mocking?
       @server = @service.servers.create(:flavor_id => flavor_id, :image_id => image_id, :name => "address-tests-#{Time.now.to_i}")
@@ -12,17 +12,17 @@ Shindo.tests('Fog::Compute::RackspaceV2 | address requests', ['rackspace']) do
     else
       @server_id = 42
     end
-    
-    address_format =  { "addresses"=> { 
-      "private" => [{"addr" => String, "version" => Integer}], 
+
+    address_format =  { "addresses"=> {
+      "private" => [{"addr" => String, "version" => Integer}],
       "public" => [{"addr" => String, "version" => Integer }, {"addr"=> String, "version" => Integer}]}
     }
 
-    begin 
+    begin
       tests("#list_addresses(#{@server_id})").formats(address_format) do
          @service.list_addresses(@server_id).body
       end
-      
+
       tests("#list_addresses_by_network(#{@server_id}, 'private')").formats(address_format["addresses"].reject {|k,v| k != "private"}) do
         @service.list_addresses_by_network(@server_id, "private").body
       end
diff --git a/tests/rackspace/requests/compute_v2/attachment_tests.rb b/tests/rackspace/requests/compute_v2/attachment_tests.rb
index e5fd3af..1b2379f 100644
--- a/tests/rackspace/requests/compute_v2/attachment_tests.rb
+++ b/tests/rackspace/requests/compute_v2/attachment_tests.rb
@@ -24,7 +24,6 @@ Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
   volume_id = block_storage_service.create_volume(100).body['volume']['id']
   device_id = '/dev/xvde'
 
-
   tests('success') do
     wait_for_request("Waiting for server to become ready") do
       compute_service.get_server(server_id).body['server']['status'] == 'ACTIVE'
diff --git a/tests/rackspace/requests/compute_v2/image_tests.rb b/tests/rackspace/requests/compute_v2/image_tests.rb
index 2c46f99..895cc15 100644
--- a/tests/rackspace/requests/compute_v2/image_tests.rb
+++ b/tests/rackspace/requests/compute_v2/image_tests.rb
@@ -1,6 +1,6 @@
 Shindo.tests('Fog::Compute::RackspaceV2 | image_tests', ['rackspace']) do
   service   = Fog::Compute.new(:provider => 'Rackspace', :version => 'V2')
-    
+
   image_format = {
     'id' => String,
     'name' => String,
@@ -32,7 +32,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | image_tests', ['rackspace']) do
   begin
     test_time = Time.now.to_i.to_s
     @server = service.servers.create(:name => "fog-image-tests_#{test_time}",
-     :flavor_id => rackspace_test_flavor_id(service), 
+     :flavor_id => rackspace_test_flavor_id(service),
      :image_id => rackspace_test_image_id(service))
     @server.wait_for { ready? }
     @image_id = nil
@@ -70,7 +70,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | image_tests', ['rackspace']) do
         service.get_image(Fog::Rackspace::MockData::NOT_FOUND_ID)
       end
     end
-  ensure 
+  ensure
     @image.destroy if @image
     @server.destroy if @server
   end
diff --git a/tests/rackspace/requests/compute_v2/metadata_tests.rb b/tests/rackspace/requests/compute_v2/metadata_tests.rb
index 1b42cdf..3617453 100644
--- a/tests/rackspace/requests/compute_v2/metadata_tests.rb
+++ b/tests/rackspace/requests/compute_v2/metadata_tests.rb
@@ -1,22 +1,22 @@
 Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
-  
+
   @service = Fog::Compute.new(:provider => 'Rackspace', :version => 'V2')
   image_id  = rackspace_test_image_id(@service)
   flavor_id = rackspace_test_flavor_id(@service)
-  
+
   tests('success') do
     begin
       metadata = {"tag" => "database"}
-      
+
       unless Fog.mocking?
         name = "fog-server-metadata-#{Time.now.to_i}"
-        @server = @service.servers.create(:name => name, 
+        @server = @service.servers.create(:name => name,
                                           :flavor_id => flavor_id,
                                           :image_id => image_id,
                                           :metadata => metadata)
         @server.wait_for { ready? }
-        
-        
+
+
         @server_id = @server.id
         @image  = @server.create_image(name, :metadata => metadata)
         @image_id = @image.id
@@ -24,7 +24,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
         @image_id = 1
         @server_id = 1
       end
-      
+
         tests("servers") do
           tests('list_metadata').returns("metadata" => metadata) do
             @service.list_metadata("servers", @server_id).body
@@ -45,21 +45,21 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
             @service.delete_metadata_item("servers", @server_id, "environment")
           end
         end
-        
+
         tests("images") do
           @image.wait_for { ready? } unless Fog.mocking?
-          
+
           tests('list_metadata').returns(metadata) do
             h = @service.list_metadata("images", @image_id).body
             h["metadata"].reject {|k,v| k.downcase != "tag"} #only look at the metadata we created
           end
           tests('set_metadata').returns({"environment" => "dev"}) do
             h = @service.set_metadata("images", @image_id, {"environment" => "dev"}).body
-            h["metadata"].reject {|k,v| k.downcase != "environment"} #only look at the metadata we created            
+            h["metadata"].reject {|k,v| k.downcase != "environment"} #only look at the metadata we created
           end
           tests('update_metadata').returns({"environment" => "dev", "tag" => "database"}) do
             h = @service.update_metadata("images", @image_id, {"environment" => "dev", "tag" => "database"}).body
-            h["metadata"].reject {|k,v| !['environment', 'tag'].include?(k.downcase)} #only look at the metadata we created            
+            h["metadata"].reject {|k,v| !['environment', 'tag'].include?(k.downcase)} #only look at the metadata we created
           end
           tests('get_metadata_item').returns("meta" => {"environment" => "dev"}) do
             @service.get_metadata_item("images", @image_id, "environment").body
@@ -73,7 +73,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
         end
     ensure
       @image.destroy if @image
-      @server.destroy if @server      
+      @server.destroy if @server
     end
   end
 
@@ -93,14 +93,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
           @service.get_metadata_item(collection, 0, "environment")
         end
         tests('set_server_metadata_item').raises(Fog::Compute::RackspaceV2::NotFound) do
-          @service.set_metadata_item(collection, 0, "environment", "test")      
+          @service.set_metadata_item(collection, 0, "environment", "test")
         end
         tests('delete_server_metadata_item').raises(Fog::Compute::RackspaceV2::NotFound)  do
-          @service.delete_metadata_item(collection, 0, "environment")      
+          @service.delete_metadata_item(collection, 0, "environment")
         end
       end
     end
   end
 end
-
-
diff --git a/tests/rackspace/requests/compute_v2/server_tests.rb b/tests/rackspace/requests/compute_v2/server_tests.rb
index 486d066..8abf3b9 100644
--- a/tests/rackspace/requests/compute_v2/server_tests.rb
+++ b/tests/rackspace/requests/compute_v2/server_tests.rb
@@ -61,6 +61,11 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do
     server_name = "fog#{Time.now.to_i.to_s}"
     image_id = rackspace_test_image_id(service)
     flavor_id = rackspace_test_flavor_id(service)
+    bootable_flavor_id = if Fog.mocking?
+      flavor_id
+    else
+      service.flavors.find { |f| f.name =~ /Performance/ }.id
+    end
 
     tests("#create_server(#{server_name}, #{image_id}, #{flavor_id}, 1, 1)").formats(create_server_format) do
       body = service.create_server(server_name, image_id, flavor_id, 1, 1).body
@@ -68,7 +73,29 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do
       body
     end
     wait_for_server_state(service, server_id, 'ACTIVE', 'ERROR')
-    
+
+    tests("#create_server(#{server_name}_bfv_1, '', #{flavor_id}, 1, 1, :boot_volume_id => bootable_volume_id)").succeeds do
+      # First, create a bootable volume.
+      volume_service = Fog::Rackspace::BlockStorage.new
+      bootable_volume_id = volume_service.create_volume(100, :image_id => image_id).body['volume']['id']
+      wait_for_volume_state(volume_service, bootable_volume_id, 'available')
+
+      body = service.create_server(server_name + "_bfv_1", '', bootable_flavor_id, 1, 1, :boot_volume_id => bootable_volume_id).body
+      bfv_server_id = body['server']['id']
+      wait_for_server_state(service, bfv_server_id, 'ACTIVE', 'ERROR')
+      service.delete_server(bfv_server_id)
+
+      wait_for_volume_state(volume_service, bootable_volume_id, 'available')
+      volume_service.delete_volume(bootable_volume_id)
+    end
+
+    tests("#create_server(#{server_name}_bfv_2, '', #{flavor_id}, 1, 1, :boot_image_id => #{image_id})").succeeds do
+      body = service.create_server(server_name + "_bfv_2", '', bootable_flavor_id, 1, 1, :boot_image_id => image_id).body
+      bfv_server_id = body['server']['id']
+      wait_for_server_state(service, bfv_server_id, 'ACTIVE', 'ERROR')
+      service.delete_server(bfv_server_id)
+    end
+
     tests('#list_servers').formats(list_servers_format, false) do
       service.list_servers.body
     end
@@ -80,10 +107,10 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do
     tests("#update_server(#{server_id}, #{server_name}_update) LEGACY").formats(get_server_format) do
       service.update_server(server_id, "#{server_name}_update").body
     end
-    
+
     tests("#update_server(#{server_id}, { 'name' => #{server_name}_update)} ").formats(get_server_format) do
       service.update_server(server_id, 'name' => "#{server_name}_update").body
-    end    
+    end
 
     tests('#change_server_password').succeeds do
       service.change_server_password(server_id, 'some_server_password')
@@ -101,13 +128,13 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do
     end
     wait_for_server_state(service, server_id, 'ACTIVE', 'ERROR')
     sleep 120 unless Fog.mocking?
-    
+
     tests('#resize_server').succeeds do
       resize_flavor_id = Fog.mocking? ? flavor_id : service.flavors[1].id
       service.resize_server(server_id, resize_flavor_id)
     end
     wait_for_server_state(service, server_id, 'VERIFY_RESIZE', 'ACTIVE')
-    
+
    tests('#confirm_resize_server').succeeds do
       service.confirm_resize_server(server_id)
     end
@@ -136,6 +163,6 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do
 
     tests('#delete_server').succeeds do
       service.delete_server(server_id)
-    end    
-  end 
+    end
+  end
 end
diff --git a/tests/rackspace/requests/dns/dns_tests.rb b/tests/rackspace/requests/dns/dns_tests.rb
index af8c595..362b78c 100644
--- a/tests/rackspace/requests/dns/dns_tests.rb
+++ b/tests/rackspace/requests/dns/dns_tests.rb
@@ -93,7 +93,7 @@ Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
         wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].remove_domain(@root_domain_id, :delete_subdomains => true)
 
         test('domain and subdomains were really deleted') do
-          (Fog::DNS[:rackspace].list_domains.body['domains'].collect { |domain| domain['name'] } & [domain_name, 'subdomain.' + domain_name]).empty?
+          (Fog::DNS[:rackspace].list_domains.body['domains'].map { |domain| domain['name'] } & [domain_name, 'subdomain.' + domain_name]).empty?
         end
       end
     end
diff --git a/tests/rackspace/requests/dns/helper.rb b/tests/rackspace/requests/dns/helper.rb
index 84c4c25..1b11827 100644
--- a/tests/rackspace/requests/dns/helper.rb
+++ b/tests/rackspace/requests/dns/helper.rb
@@ -106,7 +106,7 @@ def domains_tests(service, domains_attributes, custom_delete = false)
   tests("create_domains(#{domains_attributes})").formats(CREATE_DOMAINS_FORMAT) do
     response = wait_for service, service.create_domains(domains_attributes)
     @domain_details = response.body['response']['domains']
-    @domain_ids = @domain_details.collect { |domain| domain['id'] }
+    @domain_ids = @domain_details.map { |domain| domain['id'] }
     response.body['response']
   end
 
@@ -122,5 +122,3 @@ def domains_tests(service, domains_attributes, custom_delete = false)
     end
   end
 end
-
-
diff --git a/tests/rackspace/requests/dns/records_tests.rb b/tests/rackspace/requests/dns/records_tests.rb
index d066e31..98c1527 100644
--- a/tests/rackspace/requests/dns/records_tests.rb
+++ b/tests/rackspace/requests/dns/records_tests.rb
@@ -41,7 +41,7 @@ Shindo.tests('Fog::DNS[:rackspace] | dns records requests', ['rackspace', 'dns']
 
       tests("add_records(#{@domain_id}, #{records_attributes})").formats(RECORD_LIST_FORMAT) do
         response = wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].add_records(@domain_id, records_attributes)
-        @record_ids = response.body['response']['records'].collect { |record| record['id'] }
+        @record_ids = response.body['response']['records'].map { |record| record['id'] }
         response.body['response']
       end
 
diff --git a/tests/rackspace/requests/identity/token_tests.rb b/tests/rackspace/requests/identity/token_tests.rb
index 29a4c2b..9570599 100644
--- a/tests/rackspace/requests/identity/token_tests.rb
+++ b/tests/rackspace/requests/identity/token_tests.rb
@@ -58,7 +58,7 @@ Shindo.tests('Fog::Rackspace::Identity | tokens', ['rackspace']) do
       connection = identity_service.instance_variable_get("@connection")
       excon = connection.instance_variable_get("@excon")
       data = excon.instance_variable_get("@data")
-      data.has_key?(:ssl_verify_peer)
+      data.key?(:ssl_verify_peer)
     end
   end
 
diff --git a/tests/rackspace/requests/load_balancers/get_stats_tests.rb b/tests/rackspace/requests/load_balancers/get_stats_tests.rb
index ebb8b34..a2e4d93 100644
--- a/tests/rackspace/requests/load_balancers/get_stats_tests.rb
+++ b/tests/rackspace/requests/load_balancers/get_stats_tests.rb
@@ -10,4 +10,4 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_get_stats', ['racksp
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/requests/load_balancers/helper.rb b/tests/rackspace/requests/load_balancers/helper.rb
index 407462b..b595338 100644
--- a/tests/rackspace/requests/load_balancers/helper.rb
+++ b/tests/rackspace/requests/load_balancers/helper.rb
@@ -160,7 +160,7 @@ LOAD_BALANCER_FORMAT = {
     'timeout' => Integer,
     'cluster' => { 'name' => String },
     'virtualIps' => [VIRTUAL_IP_FORMAT],
-    'nodes' => [SINGLE_NODE_FORMAT],
+    'nodes' => Fog::Nullable::Array,
     'created' => { 'time' => String },
     'updated' => { 'time' => String },
     'contentCaching' => { 'enabled' => Fog::Boolean }
@@ -227,5 +227,3 @@ YlnFahKZ2j0CpYvg0lJjfN0Lvj7Sm6GBA74n2OrGuB14H27wklD+PtIEFniyxKbq
 5TDO0l4yDgkR7PsckmZqK22GP9c3fQkmXodtpV1wRjcSAxxVWYm+S24XvMFERs3j
 yXEf+VJ0H+voAvxgbAk=
 -----END CERTIFICATE-----'
-
-
diff --git a/tests/rackspace/requests/load_balancers/load_balancer_tests.rb b/tests/rackspace/requests/load_balancers/load_balancer_tests.rb
index 525a3ce..abd18b6 100644
--- a/tests/rackspace/requests/load_balancers/load_balancer_tests.rb
+++ b/tests/rackspace/requests/load_balancers/load_balancer_tests.rb
@@ -6,19 +6,27 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
     tests('success') do
 
       @lb_id = nil
+      @lb_ids = []
       @lb_name = 'fog' + Time.now.to_i.to_s
 
-      tests("#create_load_balancer(#{@lb_name}, 'HTTP', 80,...)").formats(LOAD_BALANCER_FORMAT) do
-        data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC'}], [{ :address => '1.1.1.1', :port => 80, :condition => 'ENABLED'}]).body
+      tests("#create_load_balancer(#{@lb_name}, 'HTTP')").formats(LOAD_BALANCER_FORMAT) do
+        data = @service.create_load_balancer(@lb_name, 'HTTP').body
         @lb_id = data['loadBalancer']['id']
+        @lb_ids << @lb_id
+        data
+      end
+
+      tests("#create_load_balancer(#{@lb_name}, 'HTTP', 80,...)").formats(LOAD_BALANCER_FORMAT) do
+        data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC' }], [{ :address => '1.1.1.1', :port => 80, :condition => 'ENABLED' }]).body
+        @lb_ids << data['loadBalancer']['id']
         data
       end
 
       tests("#create_load_balancer(#{@lb_name}, 'HTTP', 80,...with algorithm)").formats(LOAD_BALANCER_FORMAT) do
-        data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC'}], 
+        data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC'}],
                                              [{ :address => '1.1.1.1', :port => 80, :condition => 'ENABLED'}],
                                              { :algorithm => 'LEAST_CONNECTIONS', :timeout => 30 }).body
-        @lb_id = data['loadBalancer']['id']
+        @lb_ids << data['loadBalancer']['id']
         returns('LEAST_CONNECTIONS') { data['loadBalancer']['algorithm'] }
         returns(30) { data['loadBalancer']['timeout'] }
         data
@@ -52,8 +60,10 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
         sleep 10
       end
 
-      tests("#delete_load_balancer(#{@ld_id})").succeeds do
-        @service.delete_load_balancer(@lb_id).body
+      @lb_ids.each do |id|
+        tests("#delete_load_balancer(#{id})").succeeds do
+          @service.delete_load_balancer(id).body
+        end
       end
     end
 
diff --git a/tests/rackspace/requests/monitoring/agent_tests.rb b/tests/rackspace/requests/monitoring/agent_tests.rb
index f0f2505..e91ca35 100644
--- a/tests/rackspace/requests/monitoring/agent_tests.rb
+++ b/tests/rackspace/requests/monitoring/agent_tests.rb
@@ -4,7 +4,7 @@ Shindo.tests('Fog::Rackspace::Monitoring | agent_tests', ['rackspace','rackspace
   agent_token = nil
   options = { "label" => "Bar" }
   values_format = Hash
-  
+
   tests('success') do
     tests('#create new agent token').formats(DATA_FORMAT) do
       response = account.create_agent_token(options).data
@@ -16,12 +16,11 @@ Shindo.tests('Fog::Rackspace::Monitoring | agent_tests', ['rackspace','rackspace
     end
     tests("#list_agents") do
     	data_matches_schema(values_format, {:allow_extra_keys => true}) { account.list_agents.body }
-    end     
+    end
     tests("#get_agent") do
     	data_matches_schema(values_format, {:allow_extra_keys => true}) { account.get_agent("agent_id").body }
     end
 
-
     tests('#get agent token').formats(LIST_HEADERS_FORMAT) do
       account.get_agent_token(agent_token).data[:headers]
     end
@@ -51,8 +50,8 @@ Shindo.tests('Fog::Rackspace::Monitoring | agent_tests', ['rackspace','rackspace
     end
     tests("#get_system_info") do
     	data_matches_schema(values_format, {:allow_extra_keys => true}) { account.get_system_info("agent_id").body }
-    end   
-    
+    end
+
   end
 
   tests('failure') do
@@ -70,6 +69,6 @@ Shindo.tests('Fog::Rackspace::Monitoring | agent_tests', ['rackspace','rackspace
     end
     tests('#fail to get agent (-1)').raises(Fog::Rackspace::Monitoring::NotFound) do
       account.get_agent(-1)
-    end    
+    end
   end
 end
diff --git a/tests/rackspace/requests/monitoring/alarm_example_tests.rb b/tests/rackspace/requests/monitoring/alarm_example_tests.rb
index 21b9041..0825fe3 100644
--- a/tests/rackspace/requests/monitoring/alarm_example_tests.rb
+++ b/tests/rackspace/requests/monitoring/alarm_example_tests.rb
@@ -1,5 +1,5 @@
 Shindo.tests('Fog::Rackspace::Monitoring | alarm_example_tests', ['rackspace','rackspace_monitoring']) do
-  pending if Fog.mocking? 
+  pending if Fog.mocking?
 
   account = Fog::Rackspace::Monitoring.new
   example_id = "remote.http_body_match_1"
diff --git a/tests/rackspace/requests/monitoring/alarm_tests.rb b/tests/rackspace/requests/monitoring/alarm_tests.rb
index c60d661..b88d41e 100644
--- a/tests/rackspace/requests/monitoring/alarm_tests.rb
+++ b/tests/rackspace/requests/monitoring/alarm_tests.rb
@@ -1,5 +1,5 @@
 Shindo.tests('Fog::Rackspace::Monitoring | alarm_tests', ['rackspace','rackspace_monitoring']) do
-  
+
 
   account = Fog::Rackspace::Monitoring.new
   entity_id = account.create_entity(:label => "Foo").data[:headers]["X-Object-ID"]
diff --git a/tests/rackspace/requests/monitoring/helper.rb b/tests/rackspace/requests/monitoring/helper.rb
index c28fbbd..15cfd4f 100644
--- a/tests/rackspace/requests/monitoring/helper.rb
+++ b/tests/rackspace/requests/monitoring/helper.rb
@@ -56,7 +56,6 @@ GET_MONITORING_ZONE = {
     "source_ips" => [String]
 }
 
-
 # {"values"=>
 #   [{"id"=>"ch4GimHQsQ",
 #     "label"=>nil,
@@ -84,7 +83,6 @@ GET_MONITORING_ZONE = {
 #    "next_marker"=>nil,
 #    "next_href"=>nil}}
 
-
 # {"values"=>
 #   [{"id"=>String,
 #     "label"=>String,
@@ -95,8 +93,7 @@ GET_MONITORING_ZONE = {
 #    "limit"=>Integer,
 #    "marker"=>nil,
 #    "next_marker"=>nil,
-#    "next_href"=>nil}}   
-
+#    "next_href"=>nil}}
 
 CHECK_CREATE_OPTIONS = {
   :details => {
@@ -134,7 +131,7 @@ OVERVIEW_FORMAT = {
       :limit => Integer,
       :marker => String,
       :next_marker => String,
-      :next_href => String 
+      :next_href => String
     }
   },
   :headers => LIST_HEADERS_FORMAT,
diff --git a/tests/rackspace/requests/monitoring/list_tests.rb b/tests/rackspace/requests/monitoring/list_tests.rb
index 7079fd6..2236ba7 100644
--- a/tests/rackspace/requests/monitoring/list_tests.rb
+++ b/tests/rackspace/requests/monitoring/list_tests.rb
@@ -1,10 +1,10 @@
 Shindo.tests('Fog::Rackspace::Monitoring | list_tests', ['rackspace','rackspace_monitoring']) do
 
   account = Fog::Rackspace::Monitoring.new
-  if Fog.mocking? 
+  if Fog.mocking?
     entity_id = "peoigne93"
     check_id = "2090wgn93"
-  else 
+  else
     entity_id = account.create_entity(:label => "Foo").data[:headers]["X-Object-ID"]
     check_id = account.create_check(entity_id,CHECK_CREATE_OPTIONS).data[:headers]["X-Object-ID"]
   end
@@ -13,9 +13,9 @@ Shindo.tests('Fog::Rackspace::Monitoring | list_tests', ['rackspace','rackspace_
   now = Time.now.to_i
   SLEEP_TIME= 2
   sleep(SLEEP_TIME) unless Fog.mocking?
-  
+
   tests('success') do
-    
+
     tests('#get list of monitoring zones').formats(LIST_MONITORING_ZONE) do
       pending if Fog.mocking?
       account.list_monitoring_zones.body
@@ -26,7 +26,6 @@ Shindo.tests('Fog::Rackspace::Monitoring | list_tests', ['rackspace','rackspace_
       account.get_monitoring_zone('mzdfw').body
     end
 
-
     tests('#get list of checks').formats(LIST_HEADERS_FORMAT) do
       account.list_checks(entity_id).data[:headers]
     end
diff --git a/tests/rackspace/requests/monitoring/notification_tests.rb b/tests/rackspace/requests/monitoring/notification_tests.rb
index 01f4cd7..7b61c0d 100644
--- a/tests/rackspace/requests/monitoring/notification_tests.rb
+++ b/tests/rackspace/requests/monitoring/notification_tests.rb
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Rackspace::Monitoring | notification_tests', ['rackspace','ra
     tests('#create new notification').formats(DATA_FORMAT) do
       pending if Fog.mocking?
       response = account.create_notification(:label => "Foo", :type => "email", :details => {:address => "test at test.com"}).data
-      
+
       notification_id = response[:headers]["X-Object-ID"]
       response
     end
diff --git a/tests/rackspace/requests/queues/helper.rb b/tests/rackspace/requests/queues/helper.rb
index 3587c73..aa1a94e 100644
--- a/tests/rackspace/requests/queues/helper.rb
+++ b/tests/rackspace/requests/queues/helper.rb
@@ -27,7 +27,7 @@ MESSAGE_FORMAT = {
 
 LIST_MESSAGES_FORMAT = {
  'messages' => [MESSAGE_FORMAT],
- 'links' => LINKS_FORMAT 
+ 'links' => LINKS_FORMAT
 }
 
 CREATE_CLAIM_FORMAT = [
diff --git a/tests/rackspace/requests/storage/account_tests.rb b/tests/rackspace/requests/storage/account_tests.rb
index 3925107..1a932bd 100644
--- a/tests/rackspace/requests/storage/account_tests.rb
+++ b/tests/rackspace/requests/storage/account_tests.rb
@@ -12,5 +12,4 @@ Shindo.tests('Fog::Storage[:rackspace] | account requests', ["rackspace"]) do
 
   end
 
-
 end
diff --git a/tests/rackspace/requests/storage/container_tests.rb b/tests/rackspace/requests/storage/container_tests.rb
index 1429d2a..4cac82e 100644
--- a/tests/rackspace/requests/storage/container_tests.rb
+++ b/tests/rackspace/requests/storage/container_tests.rb
@@ -64,4 +64,4 @@ Shindo.tests('Fog::Storage[:rackspace] | container requests', ["rackspace"]) do
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/rackspace/storage_tests.rb b/tests/rackspace/storage_tests.rb
index 1618335..b81963f 100644
--- a/tests/rackspace/storage_tests.rb
+++ b/tests/rackspace/storage_tests.rb
@@ -46,7 +46,7 @@ Shindo.tests('Rackspace | Storage', ['rackspace']) do
 
       identity_service = @service.instance_variable_get("@identity_service")
       returns(false, "identity service was used") { identity_service.nil? }
-      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
+      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").key?(:ssl_verify_peer) }
       @service.head_containers
     end
     tests('dfw region').succeeds do
@@ -126,4 +126,3 @@ Shindo.tests('Rackspace | Storage', ['rackspace']) do
     end
   end
 end
-
diff --git a/tests/rage4/requests/dns/dns_tests.rb b/tests/rage4/requests/dns/dns_tests.rb
index 2d12153..7d8f717 100644
--- a/tests/rage4/requests/dns/dns_tests.rb
+++ b/tests/rage4/requests/dns/dns_tests.rb
@@ -24,7 +24,6 @@ Shindo.tests('Fog::DNS[:rage4] | DNS requests', ['rage4', 'dns']) do
       response.status == 200
     end
 
-
     test("create domain") do
       pending if Fog.mocking?
 
@@ -108,7 +107,6 @@ Shindo.tests('Fog::DNS[:rage4] | DNS requests', ['rage4', 'dns']) do
 
     end
 
-
     test("show_current_usage") do
       pending if Fog.mocking?
 
@@ -256,7 +254,6 @@ Shindo.tests('Fog::DNS[:rage4] | DNS requests', ['rage4', 'dns']) do
       @created_domain_list.each do |domain_id|
         response = Fog::DNS[:rage4].delete_domain(domain_id)
 
-
         returns(true) {response.body['status']}
         returns(domain_id) {response.body['id']}
         returns("") {response.body['error'] }
diff --git a/tests/riakcs/requests/usage/usage_tests.rb b/tests/riakcs/requests/usage/usage_tests.rb
index f46b3e0..b25df99 100644
--- a/tests/riakcs/requests/usage/usage_tests.rb
+++ b/tests/riakcs/requests/usage/usage_tests.rb
@@ -1,17 +1,17 @@
 Shindo.tests('RiakCS::Usage | usage requests', ['riakcs']) do
 
   @blank_usage_format = {
-    'Access' => { 
+    'Access' => {
       'Nodes'   => [],
-      'Errors'  => [] 
+      'Errors'  => []
     },
-    'Storage' => { 
+    'Storage' => {
       'Samples' => [],
-      'Errors'  => [] 
+      'Errors'  => []
     }
   }
 
-  tests('Statistics retrieval with no data returned') do 
+  tests('Statistics retrieval with no data returned') do
 
     start_time = Time.now.utc + 86400
     end_time   = start_time   + 86400
diff --git a/tests/sakuracloud/helper.rb b/tests/sakuracloud/helper.rb
deleted file mode 100644
index 79a64db..0000000
--- a/tests/sakuracloud/helper.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-def volume_service
-  Fog::Volume[:sakuracloud]
-end
-
-def compute_service
-  Fog::Compute[:sakuracloud]
-end
diff --git a/tests/sakuracloud/requests/compute/plans_tests.rb b/tests/sakuracloud/requests/compute/plans_tests.rb
deleted file mode 100644
index c6e67ca..0000000
--- a/tests/sakuracloud/requests/compute/plans_tests.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Compute[:sakuracloud] | list_plans request', ['sakuracloud', 'compute']) do
-
-  @plan_format = {
-    'Index'        => Integer,
-    'ID'           => Integer,
-    'Name'         => String,
-    'CPU'          => Integer,
-    'MemoryMB'     => Integer,
-    'Availability' => String
-  }
-
-  tests('success') do
-
-    tests('#list_plans') do
-      serverplans = compute_service.list_plans
-      test 'returns a Hash' do
-        serverplans.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('ServerPlans').formats(@plan_format, false) do
-          serverplans.body['ServerPlans'].first
-        end
-      else
-        returns(200) { serverplans.status }
-        returns(false) { serverplans.body.empty? }
-      end
-    end
-
-  end
-
-end
diff --git a/tests/sakuracloud/requests/compute/servers_tests.rb b/tests/sakuracloud/requests/compute/servers_tests.rb
deleted file mode 100644
index 4d813b9..0000000
--- a/tests/sakuracloud/requests/compute/servers_tests.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Compute[:sakuracloud] | list_servers request', ['sakuracloud', 'compute']) do
-
-  @servers_format = {
-    'Index'        => Integer,
-    'ID'           => Integer,
-    'Name'         => String,
-    'ServerPlan'   => Hash,
-    'Instance'     => Hash,
-    'Disks'        => Array
-  }
-
-  tests('success') do
-
-    tests('#list_servers') do
-      servers = compute_service.list_servers
-      test 'returns a Hash' do
-        servers.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('Servers').formats(@servers_format, false) do
-          servers.body['Servers'].first
-        end
-      else
-        returns(200) { servers.status }
-        returns(true) { servers.body.is_a? Hash }
-      end
-    end
-  end
-end
-
-Shindo.tests('Fog::Compute[:sakuracloud] | create_servers request', ['sakuracloud', 'compute']) do
-  tests('success') do
-    tests('#create_servers') do
-      servers = compute_service.create_server('foobar', 2001)
-      test 'returns a Hash' do
-        servers.body.is_a? Hash
-      end
-
-      unless Fog.mock?
-        returns(201) { servers.status }
-        returns(true) { servers.body.is_a? Hash }
-      end
-    end
-  end
-end
diff --git a/tests/sakuracloud/requests/compute/ssh_keys_tests.rb b/tests/sakuracloud/requests/compute/ssh_keys_tests.rb
deleted file mode 100644
index eb0211a..0000000
--- a/tests/sakuracloud/requests/compute/ssh_keys_tests.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Compute[:sakuracloud] | list_ssh_keys request', ['sakuracloud', 'compute']) do
-
-  @sshkey_format = {
-    'Index'        => Integer,
-    'ID'           => String,
-    'Name'           => String,
-    'PublicKey'    => String
-  }
-
-  tests('success') do
-
-    tests('#list_ssh_keys') do
-      sshkeys = compute_service.list_ssh_keys
-      test 'returns a Hash' do
-        sshkeys.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('SSHKeys').formats(@sshkey_format, false) do
-          sshkeys.body['SSHKeys'].first
-        end
-      else
-        returns(200) { sshkeys.status }
-        returns(false) { sshkeys.body.empty? }
-      end
-    end
-
-  end
-
-end
diff --git a/tests/sakuracloud/requests/compute/zones_tests.rb b/tests/sakuracloud/requests/compute/zones_tests.rb
deleted file mode 100644
index 3af044e..0000000
--- a/tests/sakuracloud/requests/compute/zones_tests.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Compute[:sakuracloud] | list_zones request', ['sakuracloud', 'compute']) do
-
-  @zone_format = {
-    'Index'        => Integer,
-    'ID'           => Integer,
-    'Name'         => String,
-    'Description'  => String
-  }
-
-  tests('success') do
-
-    tests('#list_zones') do
-      zones = compute_service.list_zones
-      test 'returns a Hash' do
-        zones.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('Zones').formats(@zone_format, false) do
-          zones.body['Zones'].first
-        end
-      else
-        returns(200) { zones.status }
-        returns(false) { zones.body.empty? }
-      end
-    end
-
-  end
-
-end
diff --git a/tests/sakuracloud/requests/volume/archives_tests.rb b/tests/sakuracloud/requests/volume/archives_tests.rb
deleted file mode 100644
index a91dd13..0000000
--- a/tests/sakuracloud/requests/volume/archives_tests.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Volume[:sakuracloud] | list_archives request', ['sakuracloud', 'volume']) do
-
-  @archive_format = {
-    'Index'        => Integer,
-    'ID'           => Integer,
-    'Name'         => String,
-    'SizeMB'       => Integer,
-    'Plan'         => Hash
-  }
-
-  tests('success') do
-
-    tests('#list_archives') do
-      archives = volume_service.list_archives
-      test 'returns a Hash' do
-        archives.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('Archives').formats(@archive_format, false) do
-          archives.body['Archives'].first
-        end
-      else
-        returns(200) { archives.status }
-        returns(false) { archives.body.empty? }
-      end
-    end
-
-  end
-
-end
diff --git a/tests/sakuracloud/requests/volume/disks_tests.rb b/tests/sakuracloud/requests/volume/disks_tests.rb
deleted file mode 100644
index 5ebb4a7..0000000
--- a/tests/sakuracloud/requests/volume/disks_tests.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Volume[:sakuracloud] | list_disks request', ['sakuracloud', 'volume']) do
-
-  @disks_format = {
-    'Index'        => Integer,
-    'ID'           => Integer,
-    'Name'         => String,
-    'Connection'   => String,
-    'Availability' => String,
-    'SizeMB'       => Integer,
-    'Plan'         => Hash
-  }
-
-  tests('success') do
-
-    tests('#list_disks') do
-      disks = volume_service.list_disks
-      test 'returns a Hash' do
-        disks.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('Disks').formats(@disks_format, false) do
-          disks.body['Disks'].first
-        end
-      else
-        returns(200) { disks.status }
-        returns(true) { disks.body.is_a? Hash }
-      end
-    end
-  end
-end
-
-Shindo.tests('Fog::Volume[:sakuracloud] | create_disks request', ['sakuracloud', 'volume']) do
-  tests('success') do
-    tests('#create_disks') do
-      disks = volume_service.create_disk('foobar', 4, 112500463685)
-      test 'returns a Hash' do
-        disks.body.is_a? Hash
-      end
-
-      unless Fog.mock?
-        returns(202) { disks.status }
-        returns(true) { disks.body.is_a? Hash }
-      end
-    end
-  end
-end
diff --git a/tests/sakuracloud/requests/volume/plans_tests.rb b/tests/sakuracloud/requests/volume/plans_tests.rb
deleted file mode 100644
index e7b9bae..0000000
--- a/tests/sakuracloud/requests/volume/plans_tests.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# coding: utf-8
-Shindo.tests('Fog::Volume[:sakuracloud] | list_plans request', ['sakuracloud', 'volume']) do
-
-  @plan_format = {
-    'Index'        => Integer,
-    'ID'           => Integer,
-    'Name'         => String,
-    'Availability' => String
-  }
-
-  tests('success') do
-
-    tests('#list_plans') do
-      diskplans = volume_service.list_plans
-      test 'returns a Hash' do
-        diskplans.body.is_a? Hash
-      end
-      if Fog.mock?
-        tests('DiskPlans').formats(@plan_format, false) do
-          diskplans.body['DiskPlans'].first
-        end
-      else
-        returns(200) { diskplans.status }
-        returns(false) { diskplans.body.empty? }
-      end
-    end
-
-  end
-
-end
diff --git a/tests/serverlove/requests/compute/image_tests.rb b/tests/serverlove/requests/compute/image_tests.rb
index 482b0db..aa523ca 100644
--- a/tests/serverlove/requests/compute/image_tests.rb
+++ b/tests/serverlove/requests/compute/image_tests.rb
@@ -13,7 +13,7 @@ Shindo.tests('Fog::Compute[:serverlove] | drive requests', ['serverlove']) do
     'read:requests'     => String,
     'write:requests'    => String
   }
-  
+
   tests('success') do
 
     attributes = { 'name' => 'Test', 'size' => '24234567890' }
@@ -21,23 +21,23 @@ Shindo.tests('Fog::Compute[:serverlove] | drive requests', ['serverlove']) do
     tests("#create_image").formats(@image_format) do
       @image = Fog::Compute[:serverlove].create_image(attributes).body
     end
-    
+
     tests("#list_images").succeeds do
       Fog::Compute[:serverlove].images
     end
-    
+
     tests("#update_image").returns(true) do
       @image['name'] = "Diff"
       Fog::Compute[:serverlove].update_image(@image['drive'], { :name => @image['name'], :size => @image['size']})
       Fog::Compute[:serverlove].images.get(@image['drive']).name == "Diff"
     end
-    
+
     tests("#load_standard_image").returns(true) do
       # Load centos
       Fog::Compute[:serverlove].load_standard_image(@image['drive'], '88ed067f-d2b8-42ce-a25f-5297818a3b6f')
       Fog::Compute[:serverlove].images.get(@image['drive']).imaging != "" # This will be "x%" when imaging
     end
-    
+
     tests("waits for imaging...").returns(true) do
       while(percent_complete = Fog::Compute[:serverlove].images.get(@image['drive']).imaging)
         sleep(1)
@@ -47,7 +47,7 @@ Shindo.tests('Fog::Compute[:serverlove] | drive requests', ['serverlove']) do
       STDERR.print "100% "
       true
     end
-    
+
     tests("#destroy_image").succeeds do
       Fog::Compute[:serverlove].destroy_image(@image['drive'])
     end
diff --git a/tests/serverlove/requests/compute/server_tests.rb b/tests/serverlove/requests/compute/server_tests.rb
index c3d3701..b402b97 100644
--- a/tests/serverlove/requests/compute/server_tests.rb
+++ b/tests/serverlove/requests/compute/server_tests.rb
@@ -1,5 +1,5 @@
 Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do
-  
+
   @server_format = {
     'server'            => String,
     'name'              => String,
@@ -15,9 +15,9 @@ Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do
     'nic:0:dhcp'        => String,
     'nic:0:model'       => String
   }
-  
+
   tests('success') do
-    
+
     attributes = { 'name' => 'Test', 'cpu' => '1000', 'mem' => '1000', 'persistent' => 'true' }
 
     tests("#create_server").formats(@server_format) do
@@ -27,20 +27,20 @@ Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do
     tests("#list_servers").succeeds do
       Fog::Compute[:serverlove].servers
     end
-    
+
     tests("#update_server").returns(true) do
       @server['name'] = "Diff"
       Fog::Compute[:serverlove].update_server(@server['server'], { :name => @server['name']})
       Fog::Compute[:serverlove].servers.get(@server['server']).name == "Diff"
     end
-    
+
     tests("assigns drive to server").succeeds do
       @image = Fog::Compute[:serverlove].create_image('name' => 'Test', 'size' => '24234567890').body
       # Load debian
       Fog::Compute[:serverlove].load_standard_image(@image['drive'], 'aca2fa0b-40bc-4e06-ad99-f1467690d5de')
       Fog::Compute[:serverlove].update_server(@server['server'], { 'ide:0:0' => @image['drive'], 'boot' => 'ide:0:0'})
     end
-    
+
     tests("waits for imaging...").returns(true) do
       while(percent_complete = Fog::Compute[:serverlove].images.get(@image['drive']).imaging)
         sleep(1)
@@ -50,22 +50,22 @@ Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do
       STDERR.print "100% "
       true
     end
-    
+
     tests("#start_server").returns(true) do
       Fog::Compute[:serverlove].start_server(@server['server'])
       Fog::Compute[:serverlove].servers.get(@server['server']).status == "active"
     end
-    
+
     tests("#reset_server").returns(true) do
       Fog::Compute[:serverlove].reset_server(@server['server'])
       Fog::Compute[:serverlove].servers.get(@server['server']).status == "active"
     end
-    
+
     tests("#shutdown_server").succeeds do
       Fog::Compute[:serverlove].shutdown_server(@server['server'])
       # Can't guarantee the OS will honour this command so don't test status
     end
-    
+
     tests("#stop_server").returns(true) do
       Fog::Compute[:serverlove].start_server(@server['server'])
       Fog::Compute[:serverlove].stop_server(@server['server'])
@@ -75,7 +75,7 @@ Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do
     tests("#destroy_server").succeeds do
       Fog::Compute[:serverlove].destroy_server(@server['server'])
     end
-    
+
     tests("destroy test drive").succeeds do
       Fog::Compute[:serverlove].destroy_image(@image['drive'])
     end
diff --git a/tests/serverlove/util/compute/password_generator_tests.rb b/tests/serverlove/util/compute/password_generator_tests.rb
index 3913b9a..07c0c16 100644
--- a/tests/serverlove/util/compute/password_generator_tests.rb
+++ b/tests/serverlove/util/compute/password_generator_tests.rb
@@ -7,13 +7,13 @@ Shindo.tests('Fog::Compute::Serverlove::PasswordGenerator | generate password',
   tests("@password.length").returns(8) do
     @password.length
   end
-  
+
   tests("@password contains one capital letter").returns(true) do
     @password.match(/[A-Z]/) && true
   end
-  
+
   tests("@password contains one lower case letter").returns(true) do
     @password.match(/[a-z]/) && true
   end
-  
-end
\ No newline at end of file
+
+end
diff --git a/tests/storage/models/directories_tests.rb b/tests/storage/models/directories_tests.rb
index b9aed26..1bec221 100644
--- a/tests/storage/models/directories_tests.rb
+++ b/tests/storage/models/directories_tests.rb
@@ -14,4 +14,4 @@ for provider, config in storage_providers
 
   end
 
-end
\ No newline at end of file
+end
diff --git a/tests/storm_on_demand/requests/compute/server_tests.rb b/tests/storm_on_demand/requests/compute/server_tests.rb
index 826ed62..072c624 100644
--- a/tests/storm_on_demand/requests/compute/server_tests.rb
+++ b/tests/storm_on_demand/requests/compute/server_tests.rb
@@ -21,11 +21,11 @@ Shindo.tests('Fog::Compute[:stormondemand] | server requests', ['stormondemand']
       'active' => Integer,
       'create_date' => String
   }
-  
+
   @servers_format = {
     'items' => [@server_format]
   }
-    
+
   tests('success') do
 
     @uniq_id = nil
diff --git a/tests/vcloud/data/api_+_vdc_+_1 b/tests/vcloud/data/api_+_vdc_+_1
index cb5bf55..b2917f8 100644
--- a/tests/vcloud/data/api_+_vdc_+_1
+++ b/tests/vcloud/data/api_+_vdc_+_1
@@ -7,6 +7,7 @@
             <vmext:VimObjectType>RESOURCE_POOL</vmext:VimObjectType>
         </vmext:VimObjectRef>
     </VCloudExtension>
+    <Link rel="add" type="application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml" href="https://vcloud.example.com/api/vdc/1/action/uploadVAppTemplate" />
     <Link rel="up" type="application/vnd.vmware.vcloud.org+xml" href="https://vcloud.example.com/api/org/1"/>
     <Link rel="add" type="application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml" href="https://vcloud.example.com/api/vdc/1/action/uploadVAppTemplate"/>
     <Link rel="add" type="application/vnd.vmware.vcloud.media+xml" href="https://vcloud.example.com/api/vdc/1/media"/>
diff --git a/tests/vcloud/models/compute/helper.rb b/tests/vcloud/models/compute/helper.rb
index eb1aebd..ecab09f 100644
--- a/tests/vcloud/models/compute/helper.rb
+++ b/tests/vcloud/models/compute/helper.rb
@@ -1,7 +1,6 @@
 class Vcloud
   module Compute
     module TestSupport
-
       if Fog.mocking?
         def self.template
           'mock_template'
@@ -15,11 +14,9 @@ class Vcloud
           template_res.href
         end
       end
-
     end
 
     module Formats
     end
-
   end
 end
diff --git a/tests/vcloud/models/compute/network_tests.rb b/tests/vcloud/models/compute/network_tests.rb
index d15ffa9..f275182 100644
--- a/tests/vcloud/models/compute/network_tests.rb
+++ b/tests/vcloud/models/compute/network_tests.rb
@@ -15,17 +15,17 @@ Shindo.tests("Vcloud::Compute | network", ['vcloud']) do
       tests("an org network") do
         instance = connection.get_network("https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/network/1")
         instance.reload
-    
+
         tests("#href").returns("https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/network/1") { instance.href }
         tests("#name").returns("Network1") { instance.name }
         tests("#description").returns("Some fancy Network") { instance.description }
-    
+
         tests("configuration") do
           tests("parent network").returns("ParentNetwork1") { instance.configuration[:ParentNetwork][:name]}
           tests("dns").returns("172.0.0.2") { instance.configuration[:IpScope][:Dns1]}
-          
+
           tests("#fence_mode").returns("natRouted") { instance.configuration[:FenceMode] }
-          
+
           tests("features") do
             tests("dhcp_service") do
               tests("#is_enabled").returns("false") { instance.configuration[:Features][:DhcpService][:IsEnabled] }
@@ -41,12 +41,12 @@ Shindo.tests("Vcloud::Compute | network", ['vcloud']) do
             end
           end
         end
-        
+
         tests("#parent_network") do
           tests("returned network name").returns("ParentNetwork1"){ p = instance.parent_network; p.name }
         end
       end
-    
+
       tests("an external network") do
         instance = connection.get_network("https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/admin/network/2")
         instance.reload
@@ -54,12 +54,12 @@ Shindo.tests("Vcloud::Compute | network", ['vcloud']) do
         tests("#name").returns("ParentNetwork1") { instance.name }
         tests("#description").returns("Internet Connection") { instance.description }
         tests("#provider_info").returns("NETWORK:dvportgroup-230 on com.vmware.vcloud.entity.vimserver:35935555") { instance.provider_info }
-    
+
         tests("configuration") do
           tests("dns").returns("172.0.0.2") { instance.configuration[:IpScope][:Dns1]}
           tests("allocated addresses").returns("172.0.0.144") { instance.configuration[:IpScope][:AllocatedIpAddresses][:IpAddress].first }
         end
-    
+
         tests("#parent_network").returns(nil){ instance.parent_network }
       end
     end
diff --git a/tests/vcloud/models/compute/networks_tests.rb b/tests/vcloud/models/compute/networks_tests.rb
index f83ea87..8032efb 100644
--- a/tests/vcloud/models/compute/networks_tests.rb
+++ b/tests/vcloud/models/compute/networks_tests.rb
@@ -16,13 +16,13 @@ Shindo.tests("Vcloud::Compute | networks", ['vcloud']) do
             ),
           :href       =>  "https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/org/1"
         )
-    
+
         tests("collection") do
           returns(2) { instance.size }
           returns("https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/network/1") { instance.first.href }
         end
       end
-    
+
       tests("from a vdc perspective") do
         instance = Fog::Vcloud::Compute::Networks.new(
           :connection => Fog::Vcloud::Compute.new(
@@ -33,13 +33,13 @@ Shindo.tests("Vcloud::Compute | networks", ['vcloud']) do
             ),
           :href       =>  "https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/vdc/1"
         )
-    
+
         tests("collection") do
           returns(2) { instance.size }
           returns("https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/network/1") { instance.first.href }
         end
       end
-    
+
       tests("from a vapp perspective") do
         instance = Fog::Vcloud::Compute::Networks.new(
           :connection => Fog::Vcloud::Compute.new(
@@ -50,7 +50,7 @@ Shindo.tests("Vcloud::Compute | networks", ['vcloud']) do
             ),
           :href       =>  "https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/vApp/vapp-1"
         )
-    
+
         tests("collection") do
           returns(1) { instance.size }
           returns("https://vcloud.example.com/api#{version == '1.0' ? '/v1.0' : ''}/network/1") { instance.first.href }
diff --git a/tests/vcloud/models/compute/organization_tests.rb b/tests/vcloud/models/compute/organization_tests.rb
index 8d485c6..4c62648 100644
--- a/tests/vcloud/models/compute/organization_tests.rb
+++ b/tests/vcloud/models/compute/organization_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests("Vcloud::Compute | organization", ['vcloud']) do
         :vcloud_version => version
       ).get_organization("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/org/1")
       instance.reload
-    
+
       tests("#href").returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/org/1"){ instance.href }
       tests("#name").returns('Org1'){ instance.name }
       tests("#full_name").returns('My Full Name'){ instance.full_name }
diff --git a/tests/vcloud/models/compute/organizations_tests.rb b/tests/vcloud/models/compute/organizations_tests.rb
index 62a6ac9..92f676e 100644
--- a/tests/vcloud/models/compute/organizations_tests.rb
+++ b/tests/vcloud/models/compute/organizations_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests("Vcloud::Compute | organizations", ['vcloud']) do
     tests("api version #{version}") do
       pending if Fog.mocking?
       instance = Fog::Vcloud::Compute.new(:vcloud_host => 'vcloud.example.com', :vcloud_username => 'username', :vcloud_password => 'password', :vcloud_version => version).organizations
-    
+
       tests("collection") do
         returns(2) { instance.size }
         returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/org/1") { instance.first.href }
diff --git a/tests/vcloud/models/compute/server_tests.rb b/tests/vcloud/models/compute/server_tests.rb
index a20354c..a3ddd5a 100644
--- a/tests/vcloud/models/compute/server_tests.rb
+++ b/tests/vcloud/models/compute/server_tests.rb
@@ -11,24 +11,24 @@ Shindo.tests("Vcloud::Compute | server", ['vcloud']) do
         :vcloud_password => 'password',
         :vcloud_version => version
       ).get_server("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vm-2")
-    
+
       instance.reload
-    
+
       tests("#href").returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vm-2") { instance.href }
       tests("#name").returns("vm2") { instance.name }
       tests("#vapp").returns("vApp1") { instance.vapp.name }
       tests("#description").returns("Some VM Description") { instance.description }
       tests("#status").returns('8') { instance.status }
       tests("#deployed").returns(true) { instance.deployed }
-    
+
       tests("#os_desc").returns("Red Hat Enterprise Linux 5 (64-bit)") { instance.os_desc }
       tests("#os_type").returns("rhel5_64Guest") { instance.os_type }
       tests("#computer_name").returns("vm2") { instance.computer_name }
-    
+
       tests("cpu count").returns(1) { instance.cpus[:count] }
-    
+
       tests("amount of memory").returns(512){ instance.memory[:amount] }
-    
+
       tests("#disks") do
         tests("#size").returns(2){ instance.disks.size }
         tests("#number").returns(0){ instance.disks.first[:number] }
@@ -36,13 +36,13 @@ Shindo.tests("Vcloud::Compute | server", ['vcloud']) do
         tests("#ElementName").returns("Hard disk 1"){ instance.disks.first[:disk_data][:'rasd:ElementName'] }
         tests("#InstanceID").returns("2000"){ instance.disks.first[:disk_data][:'rasd:InstanceID'] }
       end
-    
+
       tests("#vapp_scoped_local_id").returns("vmware_RHEL5-U5-64-small_v02") { instance.vapp_scoped_local_id }
-    
+
       tests("#friendly_status").returns('off') { instance.friendly_status }
       tests("#on?").returns(false) { instance.on? }
       tests("#off?").returns(true) { instance.off? }
-    
+
       tests("#network_connections") do
         tests("#size").returns(2) { instance.network_connections.size }
       end
diff --git a/tests/vcloud/models/compute/servers_tests.rb b/tests/vcloud/models/compute/servers_tests.rb
index 8fa6e50..b0bde0f 100644
--- a/tests/vcloud/models/compute/servers_tests.rb
+++ b/tests/vcloud/models/compute/servers_tests.rb
@@ -13,7 +13,7 @@ Shindo.tests("Vcloud::Compute | servers", ['vcloud']) do
           :vcloud_version => version),
         :href       =>  "https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vapp-1"
       )
-    
+
       tests("collection") do
         returns(2) { instance.size }
         returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vm-2") { instance.first.href }
diff --git a/tests/vcloud/models/compute/vapp_tests.rb b/tests/vcloud/models/compute/vapp_tests.rb
index 905c92a..aae460c 100644
--- a/tests/vcloud/models/compute/vapp_tests.rb
+++ b/tests/vcloud/models/compute/vapp_tests.rb
@@ -13,17 +13,17 @@ Shindo.tests("Vcloud::Compute | vapp", ['vcloud']) do
         :vcloud_version => version
       ).get_vapp("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vapp-1")
       instance.reload
-    
+
       tests("#href").returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vapp-1") { instance.href }
       tests("#name").returns("vApp1") { instance.name }
       tests("#vdc").returns("vDC1"){ instance.vdc.name }
       tests("#description").returns("Some Description of a vApp") { instance.description }
       tests("#status").returns('8') { instance.status }
       tests("#deployed").returns(true) { instance.deployed }
-    
+
       tests("#children").returns(2) { instance.children.size }
       tests("#servers").returns(2) { instance.servers.size }
-    
+
       tests("#friendly_status").returns('off') { instance.friendly_status }
       tests("#on?").returns(false) { instance.on? }
       tests("#off?").returns(true) { instance.off? }
diff --git a/tests/vcloud/models/compute/vapps_tests.rb b/tests/vcloud/models/compute/vapps_tests.rb
index b545a32..1f711af 100644
--- a/tests/vcloud/models/compute/vapps_tests.rb
+++ b/tests/vcloud/models/compute/vapps_tests.rb
@@ -9,7 +9,7 @@ Shindo.tests("Vcloud::Compute | vapps", ['vcloud']) do
         :connection => Fog::Vcloud::Compute.new(:vcloud_host => 'vcloud.example.com', :vcloud_username => 'username', :vcloud_password => 'password'),
         :href       =>  "https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vdc/1"
       )
-    
+
       tests("collection") do
         returns(2) { instance.size }
         returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vApp/vapp-1") { instance.first.href }
diff --git a/tests/vcloud/models/compute/vdc_tests.rb b/tests/vcloud/models/compute/vdc_tests.rb
index 79e1f87..b533bd5 100644
--- a/tests/vcloud/models/compute/vdc_tests.rb
+++ b/tests/vcloud/models/compute/vdc_tests.rb
@@ -12,9 +12,9 @@ Shindo.tests("Vcloud::Compute | vdc", ['vcloud']) do
         :vcloud_password => 'password',
         :vcloud_version => version
       ).get_vdc("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vdc/1")
-    
+
       instance.reload
-    
+
       tests("#href").returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vdc/1") { instance.href }
       tests("#name").returns("vDC1") { instance.name }
       tests('#organization').returns("Org1") { instance.organization.name }
@@ -23,16 +23,16 @@ Shindo.tests("Vcloud::Compute | vdc", ['vcloud']) do
       tests("#nic_quota").returns(10) { instance.nic_quota }
       tests("#vm_quota").returns(10) { instance.vm_quota }
       tests("#is_enabled").returns(true) { instance.is_enabled }
-    
+
       tests("#available_networks") do
         tests("#size").returns(2) { instance.available_networks.size }
       end
-    
+
       tests("#storage_capacity") do
         tests("units").returns("MB") { instance.storage_capacity[:Units] }
         tests("allocated").returns("10240") { instance.storage_capacity[:Allocated] }
       end
-    
+
       tests("#compute_capacity") do
         tests("cpu") do
           tests("allocated").returns("20000") { instance.compute_capacity[:Cpu][:Allocated] }
diff --git a/tests/vcloud/models/compute/vdcs_tests.rb b/tests/vcloud/models/compute/vdcs_tests.rb
index dccae36..4ddc3d8 100644
--- a/tests/vcloud/models/compute/vdcs_tests.rb
+++ b/tests/vcloud/models/compute/vdcs_tests.rb
@@ -14,7 +14,7 @@ Shindo.tests("Vcloud::Compute | vdcs", ['vcloud']) do
                           :vcloud_version => version),
         :href       =>  "https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/org/1"
        )
-    
+
       tests("collection") do
         returns(1) { instance.size }
         returns("https://vcloud.example.com/api#{(version == '1.0') ? '/v1.0' : ''}/vdc/1") { instance.first.href }
diff --git a/tests/vcloud/requests/compute/disk_configure_tests.rb b/tests/vcloud/requests/compute/disk_configure_tests.rb
index 7013add..aba3301 100644
--- a/tests/vcloud/requests/compute/disk_configure_tests.rb
+++ b/tests/vcloud/requests/compute/disk_configure_tests.rb
@@ -104,7 +104,7 @@ EOF
      ng.xpath("//xmlns:ResourceType[ .='17']", @xmlns).size == 2
     ]
   end
-  
+
   unless Fog.mocking?
     Vcloud[:compute].unstub!(:request)
   end
diff --git a/tests/vcloud_director/models/compute/helper.rb b/tests/vcloud_director/models/compute/helper.rb
index 3a6c5a6..166ee42 100644
--- a/tests/vcloud_director/models/compute/helper.rb
+++ b/tests/vcloud_director/models/compute/helper.rb
@@ -43,7 +43,7 @@ def vapps
 end
 
 def vapp
-  vapps.detect {|vapp| vapp.vms.size >= 1 }
+  vapps.find {|vapp| vapp.vms.size >= 1 }
 end
 
 def the_network
diff --git a/tests/vcloud_director/models/compute/network_tests.rb b/tests/vcloud_director/models/compute/network_tests.rb
index 89c3868..3a9dc17 100644
--- a/tests/vcloud_director/models/compute/network_tests.rb
+++ b/tests/vcloud_director/models/compute/network_tests.rb
@@ -13,7 +13,7 @@ Shindo.tests("Compute::VcloudDirector | networks", ['vclouddirector', 'all']) do
   # Run initial tests against a natRouted network, since these
   # are more likely to be created, and must be populated with
   # Gateway and EdgeGateway sections
-  network = networks.detect do |net|
+  network = networks.find do |net|
     network_raw = service.get_network_complete(net.id).body
     network_raw[:Configuration][:FenceMode] == 'natRouted'
   end
@@ -72,10 +72,11 @@ Shindo.tests("Compute::VcloudDirector | networks", ['vclouddirector', 'all']) do
     tests("#get").returns(network.id) { networks.get(network.id).id }
   end
 
+
   # Now let's also check against an isolated network, since these have some
   # additional features like DHCP ServiceConfigurations.
   isolated_network_raw = nil
-  isolated_network = networks.detect do |net|
+  isolated_network = networks.find do |net|
     isolated_network_raw = service.get_network_complete(net.id).body
     isolated_network_raw[:Configuration][:FenceMode] == 'isolated'
   end
@@ -88,4 +89,20 @@ Shindo.tests("Compute::VcloudDirector | networks", ['vclouddirector', 'all']) do
     tests("#fence_mode is now loaded").returns(true) { isolated_network.attributes[:fence_mode] != NonLoaded }
   end
 
+  # We should also be able to find these same networks via Query API
+  tests("Compute::VcloudDirector | networks", ['find_by_query']) do
+    tests('we can retrieve :name without lazy loading').returns(network.name) do
+      query_network = networks.find_by_query(:filter => "name==#{network.name}").first
+      query_network.attributes[:name]
+    end
+    tests('by name: natRouted').returns(network.name) do
+      query_network = networks.find_by_query(:filter => "name==#{network.name}").first
+      query_network.name
+    end
+    tests('by name: isolated').returns(isolated_network.name) do
+      query_network = networks.find_by_query(:filter => "name==#{isolated_network.name}").first
+      query_network.name
+    end
+  end
+
 end
diff --git a/tests/vcloud_director/models/compute/tasks_tests.rb b/tests/vcloud_director/models/compute/tasks_tests.rb
index 50880d7..2620f15 100644
--- a/tests/vcloud_director/models/compute/tasks_tests.rb
+++ b/tests/vcloud_director/models/compute/tasks_tests.rb
@@ -1,7 +1,23 @@
 require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
 
 Shindo.tests('Compute::VcloudDirector | tasks', ['vclouddirector']) do
-  pending if Fog.mocking?
+
+  @service = Fog::Compute::VcloudDirector.new()
+
+  if Fog.mocking?
+    # add a bunch of tasks
+    50.times do
+      task_id = @service.enqueue_task(
+        "Bogus Task",
+        'BogusTaskName',
+        {
+          :href => 'https://example.com/api/bogus/12345678-1234-1234-1234-123456789012',
+          :name => 'Bogus object',
+          :type => 'application/vnd.vmware.vcloud.bogus+xml'
+        }
+      )
+    end
+  end
 
   tasks = organization.tasks
   pending if tasks.empty?
@@ -13,8 +29,8 @@ Shindo.tests('Compute::VcloudDirector | tasks', ['vclouddirector']) do
     tests('#id').returns(String) { task.id.class }
     tests('#name').returns(String) { task.name.class }
     tests('#status').returns(String) { task.status.class }
-    tests('#end_time').returns(Fog::Time) { task.end_time.class }
-    tests('#expiry_time').returns(Fog::Time) { task.expiry_time.class }
+    tests('#end_time').returns(Time) { task.end_time.class }
+    tests('#expiry_time').returns(Time) { task.expiry_time.class }
     tests('#operation').returns(String) { task.operation.class }
     tests('#operation_name').returns(String) { task.operation_name.class }
   end
@@ -23,4 +39,18 @@ Shindo.tests('Compute::VcloudDirector | tasks', ['vclouddirector']) do
     tests('#get_by_name').returns(task.name) { tasks.get_by_name(task.name).name }
     tests('#get').returns(task.id) { tasks.get(task.id).id }
   end
+
+  # We should also be able to find tasks via the Query API
+  # NB:  Query name == task.operation_name
+  tests("Compute::VcloudDirector | tasks", ['find_by_query']) do
+    tests('we can retrieve :name without lazy loading').returns(task.operation_name) do
+      query_task = tasks.find_by_query(:filter => "name==#{task.operation_name}").first
+      query_task.attributes[:name]
+    end
+    tests('by name').returns(task.operation_name) do
+      query_task = tasks.find_by_query(:filter => "name==#{task.operation_name}").first
+      query_task.name
+    end
+  end
+
 end
diff --git a/tests/vcloud_director/models/compute/vapp_tests.rb b/tests/vcloud_director/models/compute/vapp_tests.rb
index 3c44527..a259fd2 100644
--- a/tests/vcloud_director/models/compute/vapp_tests.rb
+++ b/tests/vcloud_director/models/compute/vapp_tests.rb
@@ -1,7 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
 
 Shindo.tests("Compute::VcloudDirector | vapps", ['vclouddirector', 'all']) do
-  pending if Fog.mocking?
 
   # unless there is atleast one vapp we cannot run these tests
   pending if vdc.vapps.empty?
@@ -38,4 +37,25 @@ Shindo.tests("Compute::VcloudDirector | vapps", ['vclouddirector', 'all']) do
     tests("#get_by_name").returns(vapp.name) { vapps.get_by_name(vapp.name).name }
     tests("#get").returns(vapp.id) { vapps.get(vapp.id).id }
   end
+
+  tests("Compute::VcloudDirector | vapp", ['custom_fields']) do
+    pending if Fog.mocking?
+    tests("#set_custom_field").returns('2'){ vapp.custom_fields[:custom_field] = '2' }
+
+    tests("#get_custom_field_by_name").returns('2') { vapp.custom_fields[:custom_field].value }
+    tests("#delete_custom_field").returns([]){ vapp.custom_fields.delete(:custom_field); vapp.custom_fields }
+  end
+
+  # We should also be able to find this vApp via Query API
+  tests("Compute::VcloudDirector | vapps", ['find_by_query']) do
+    tests('we can retrieve :name without lazy loading').returns(vapp.name) do
+      query_vapp = vapps.find_by_query(:filter => "name==#{vapp.name}").first
+      query_vapp.attributes[:name]
+    end
+    tests('we can retrieve name via model object returned by query').returns(vapp.name) do
+      query_vapp = vapps.find_by_query(:filter => "name==#{vapp.name}").first
+      query_vapp.name
+    end
+  end
+
 end
diff --git a/tests/vcloud_director/models/compute/vdcs_tests.rb b/tests/vcloud_director/models/compute/vdcs_tests.rb
index c8a9f68..077d27d 100644
--- a/tests/vcloud_director/models/compute/vdcs_tests.rb
+++ b/tests/vcloud_director/models/compute/vdcs_tests.rb
@@ -1,7 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
 
 Shindo.tests("Compute::VcloudDirector | vdcs", ['vclouddirector', 'all']) do
-  pending if Fog.mocking?
   tests("#There is one or more vdc").returns(true){ organization.vdcs.size >= 1 }
 
   vdcs = organization.vdcs
@@ -38,4 +37,18 @@ Shindo.tests("Compute::VcloudDirector | vdcs", ['vclouddirector', 'all']) do
     tests("#get_by_name").returns(vdc.name) { vdcs.get_by_name(vdc.name).name }
     tests("#get").returns(vdc.id) { vdcs.get(vdc.id).id }
   end
+
+  pending if Fog.mocking?
+
+  # We should also be able to find this same vdc via Query API
+  tests("Compute::VcloudDirector | vdcs", ['find_by_query']) do
+    tests('we can retrieve :name without lazy loading').returns(vdc.name) do
+      query_vdc = vdcs.find_by_query(:filter => "name==#{vdc.name}").first
+      query_vdc.attributes[:name]
+    end
+    tests('by name').returns(vdc.name) do
+      query_vdc = vdcs.find_by_query(:filter => "name==#{vdc.name}").first
+      query_vdc.name
+    end
+  end
 end
diff --git a/tests/vcloud_director/models/compute/vms_tests.rb b/tests/vcloud_director/models/compute/vms_tests.rb
index 73c3dbb..4038d02 100644
--- a/tests/vcloud_director/models/compute/vms_tests.rb
+++ b/tests/vcloud_director/models/compute/vms_tests.rb
@@ -2,7 +2,7 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
 
 Shindo.tests("Compute::VcloudDirector | vms", ['vclouddirector', 'all']) do
   pending if Fog.mocking?
-  vapp = vapps.detect {|v| v.vms.size >= 1}
+  vapp = vapps.find {|v| v.vms.size >= 1}
 
   # we can't run these tests if there is no vapps with a vm in them
   pending unless vapp
@@ -83,4 +83,17 @@ Shindo.tests("Compute::VcloudDirector | vms", ['vclouddirector', 'all']) do
     tests("#collection").returns(Fog::Compute::VcloudDirector::Tags){ tags.class }
   end
 
+  # We should also be able to find this VM via Query API
+  #  :name is not unique for VMs though, so let us query by href
+  tests("Compute::VcloudDirector | vm", ['find_by_query']) do
+    tests('we can retrieve :name without lazy loading').returns(vm.name) do
+      query_vm = vms.find_by_query(:filter => "href==#{vm.href}").first
+      query_vm.attributes[:name]
+    end
+    tests('we can retrieve name via model object returned by query').returns(vm.name) do
+      query_vm = vms.find_by_query(:filter => "href==#{vm.href}").first
+      query_vm.name
+    end
+  end
+
 end
diff --git a/tests/vcloud_director/requests/compute/catalog_tests.rb b/tests/vcloud_director/requests/compute/catalog_tests.rb
index eea0b98..36e98a9 100644
--- a/tests/vcloud_director/requests/compute/catalog_tests.rb
+++ b/tests/vcloud_director/requests/compute/catalog_tests.rb
@@ -4,7 +4,7 @@ Shindo.tests('Compute::VcloudDirector | catalog requests', ['vclouddirector']) d
   @org = VcloudDirector::Compute::Helper.current_org(@service)
 
   tests('#get_catalog').data_matches_schema(VcloudDirector::Compute::Schema::CATALOG_TYPE) do
-    link = @org[:Link].detect do |l|
+    link = @org[:Link].find do |l|
       l[:rel] == 'down' && l[:type] == 'application/vnd.vmware.vcloud.catalog+xml'
     end
     @catalog_id = link[:href].split('/').last
diff --git a/tests/vcloud_director/requests/compute/disk_tests.rb b/tests/vcloud_director/requests/compute/disk_tests.rb
index 30f840d..1d08598 100644
--- a/tests/vcloud_director/requests/compute/disk_tests.rb
+++ b/tests/vcloud_director/requests/compute/disk_tests.rb
@@ -100,35 +100,35 @@ Shindo.tests('Compute::VcloudDirector | disk requests', ['vclouddirector']) do
         tests('TypedValue') do
           pending if @service.api_version.to_f < 5.1
           tests('key').returns('MetadataStringValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-key'}
             entry[:TypedValue][:xsi_type]
           end
           tests('boolean').returns('MetadataBooleanValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-boolean'}
             entry[:TypedValue][:xsi_type]
           end
           tests('datetime').returns('MetadataDateTimeValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-datetime'}
             entry[:TypedValue][:xsi_type]
           end
           tests('number').returns('MetadataNumberValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-number'}
             entry[:TypedValue][:xsi_type]
           end
           tests('key-update').returns('MetadataStringValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key-update'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-key-update'}
             entry[:TypedValue][:xsi_type]
           end
           tests('boolean-update').returns('MetadataBooleanValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean-update'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-boolean-update'}
             entry[:TypedValue][:xsi_type]
           end
           tests('datetime-update').returns('MetadataDateTimeValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime-update'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-datetime-update'}
             entry[:TypedValue][:xsi_type]
           end
           tests('number-update').returns('MetadataNumberValue') do
-            entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number-update'}
+            entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-number-update'}
             entry[:TypedValue][:xsi_type]
           end
         end
diff --git a/tests/vcloud_director/requests/compute/edge_gateway_tests.rb b/tests/vcloud_director/requests/compute/edge_gateway_tests.rb
index faf000f..9b340c5 100644
--- a/tests/vcloud_director/requests/compute/edge_gateway_tests.rb
+++ b/tests/vcloud_director/requests/compute/edge_gateway_tests.rb
@@ -2,6 +2,63 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
 
   FIREWALL_RULE_ID = '9999'
 
+  @dhcp_configuration = {
+    :GatewayDhcpService => {
+      :IsEnabled => "true",
+      :pools => [{
+        :IsEnabled => "true",
+        :Network => "testNet",
+        :DefaultLeaseTime => "65",
+        :MaxLeaseTime => "650",
+        :LowIpAddress => "192.168.9.2",
+        :HighIpAddress => "192.168.9.20"
+      }]
+    }
+  }
+
+  @vpn_configuration = {
+    :GatewayIpsecVpnService => 
+      {
+        :IsEnabled => "true",
+        :Tunnel => {
+          :Name => "test vpn",
+          :PeerIpAddress => "110.110.110.110",
+          :PeerId => "1223-123UDH-12321",
+          :LocalIpAddress => "192.168.90.90",
+          :LocalId => "202UB-9602-UB629",
+          :PeerSubnet => {
+            :Name => "192.168.0.0/18",
+            :Gateway => "192.168.0.0",
+            :Netmask => "255.255.192.0",
+          },
+          :SharedSecret => "dont tell anyone",
+          :SharedSecretEncrypted => "false",
+          :EncryptionProtocol => "AES",
+          :Mtu => "1500",
+          :IsEnabled => "true",
+          :LocalSubnet => [{
+            :Name => "VDC Network",
+            :Gateway => "192.168.90.254",
+            :Netmask => "255.255.255.0"
+          }]
+        }
+      }
+  }
+
+  @routing_service_configuration = {
+    :StaticRoutingService => {
+      :IsEnabled => "true",
+      :StaticRoute => [
+        {
+          :Name => "Test static route #1",
+          :Network => "192.168.192.0/24",
+          :NextHopIp => "192.168.0.1",
+          :GatewayInterface => {}
+        }
+      ]
+    }
+  }
+
   @new_edge_gateway_configuration = {
     :FirewallService =>
       {
@@ -28,8 +85,7 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
           }
         ]
       }
-  }
-
+  }.merge!(@vpn_configuration).merge!(@dhcp_configuration)
 
   @service = Fog::Compute::VcloudDirector.new
   @org = VcloudDirector::Compute::Helper.current_org(@service)
@@ -39,7 +95,7 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
       if l[:type] == 'application/vnd.vmware.vcloud.vdc+xml'
         id = l[:href].split('/').last
         edge_gateways = @service.get_org_vdc_gateways(id).body
-        if edge_gateways && edge_gateways[:EdgeGatewayRecord].size >= 1 
+        if edge_gateways && edge_gateways[:EdgeGatewayRecord].size >= 1
           @vdc_id = id
           break
         end
@@ -68,7 +124,6 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
     @original_gateway_conf = @service.get_edge_gateway(@edge_gateway_id).body
   end
 
-
   tests('#configure_edge_gateway_services') do
 
     rule = @original_gateway_conf[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule].find { |rule| rule[:Id] == FIREWALL_RULE_ID }
@@ -77,6 +132,16 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
     response = @service.post_configure_edge_gateway_services(@edge_gateway_id, @new_edge_gateway_configuration)
     @service.process_task(response.body)
 
+    tests('#check for DHCP configuration').returns(@new_edge_gateway_configuration[:GatewayDhcpService][:IsEnabled]) do
+      edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
+      edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:GatewayDhcpService][:IsEnabled]
+    end
+
+    tests('#check for VPN').returns(@new_edge_gateway_configuration[:GatewayIpsecVpnService][:IsEnabled]) do
+      edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
+      edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:GatewayIpsecVpnService][:IsEnabled]
+    end
+
     tests('#check for new firewall rule').returns(@new_edge_gateway_configuration[:FirewallService][:FirewallRule]) do
       edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
       edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule]
@@ -89,6 +154,48 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
       edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
       edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule].find { |rule| rule[:Id] == FIREWALL_RULE_ID }
     end
+
+    tests('#check Static Routing service configuration').returns(true) do
+      edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
+      gateway_interface = edge_gateway[:Configuration][:GatewayInterfaces][:GatewayInterface].first
+      @routing_service_configuration[:StaticRoutingService][:StaticRoute].first[:GatewayInterface] = {
+        :type => gateway_interface[:type],
+        :name => gateway_interface[:name],
+        :href => gateway_interface[:href]
+      }
+
+      response = @service.post_configure_edge_gateway_services(@edge_gateway_id,
+                                                               @routing_service_configuration)
+      @service.process_task(response.body)
+      edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
+      edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:StaticRoutingService][:IsEnabled] == "true"
+    end
+
+    tests('#check VPN xml from generator').returns(true) do
+      xml = Nokogiri.XML Fog::Generators::Compute::VcloudDirector::EdgeGatewayServiceConfiguration.new(@vpn_configuration).generate_xml
+      #Not comprehensive, only checks that the generator actually knows how to handle it and that the output looks vagely sane
+      paths = {
+        'GatewayIpsecVpnService>IsEnabled' => 'true',
+        'Tunnel>Name' => 'test vpn',
+        'Tunnel>PeerIpAddress' => '110.110.110.110',
+        'Tunnel>LocalSubnet>Gateway' => '192.168.90.254',
+        'Tunnel>PeerSubnet>Netmask' => '255.255.192.0' }
+      paths.none? { |path| (xml.css path[0]).inner_text != path[1] }
+    end
+
+    tests('#check DHCP xml from generator').returns(true) do
+      xml = Nokogiri.XML Fog::Generators::Compute::VcloudDirector::EdgeGatewayServiceConfiguration.new(@dhcp_configuration).generate_xml
+      paths = {
+          'GatewayDhcpService>IsEnabled' => "true",
+          'GatewayDhcpService>Pool>IsEnabled' => "true",
+          'GatewayDhcpService>Pool>Network' => "testNet",
+          'GatewayDhcpService>Pool>DefaultLeaseTime' => "65",
+          'GatewayDhcpService>Pool>MaxLeaseTime' => "650",
+          'GatewayDhcpService>Pool>LowIpAddress' => "192.168.9.2",
+          'GatewayDhcpService>Pool>HighIpAddress' => "192.168.9.20" }
+      paths.none? { |path| (xml.css path[0]).inner_text != path[1] }
+    end
+
 end
 
   tests('Retrieve non-existent edge gateway').raises(Fog::Compute::VcloudDirector::Forbidden) do
diff --git a/tests/vcloud_director/requests/compute/helper.rb b/tests/vcloud_director/requests/compute/helper.rb
index 6a9bd48..71eec6e 100644
--- a/tests/vcloud_director/requests/compute/helper.rb
+++ b/tests/vcloud_director/requests/compute/helper.rb
@@ -1,7 +1,6 @@
 class VcloudDirector
   module Compute
     module Helper
-
       def self.test_name
         @test_name ||= 'fog-test-%x' % Time.now.to_i
       end
@@ -16,19 +15,18 @@ class VcloudDirector
 
       def self.current_org_id(service)
         session = service.get_current_session.body
-        link = session[:Link].detect do |l|
+        link = session[:Link].find do |l|
           l[:type] == 'application/vnd.vmware.vcloud.org+xml'
         end
         link[:href].split('/').last
       end
 
       def self.first_vdc_id(org)
-        link = org[:Link].detect do |l|
+        link = org[:Link].find do |l|
           l[:type] == 'application/vnd.vmware.vcloud.vdc+xml'
         end
         link[:href].split('/').last
       end
-
     end
   end
 end
diff --git a/tests/vcloud_director/requests/compute/media_tests.rb b/tests/vcloud_director/requests/compute/media_tests.rb
index ba9687e..3290e8b 100644
--- a/tests/vcloud_director/requests/compute/media_tests.rb
+++ b/tests/vcloud_director/requests/compute/media_tests.rb
@@ -112,35 +112,35 @@ Shindo.tests('Compute::VcloudDirector | media requests', ['vclouddirector']) do
           tests('TypedValue') do
             pending if @service.api_version.to_f < 5.1
             tests('key').returns('MetadataStringValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-key'}
               entry[:TypedValue][:xsi_type]
             end
             tests('boolean').returns('MetadataBooleanValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-boolean'}
               entry[:TypedValue][:xsi_type]
             end
             tests('datetime').returns('MetadataDateTimeValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-datetime'}
               entry[:TypedValue][:xsi_type]
             end
             tests('number').returns('MetadataNumberValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-number'}
               entry[:TypedValue][:xsi_type]
             end
             tests('key-update').returns('MetadataStringValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key-update'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-key-update'}
               entry[:TypedValue][:xsi_type]
             end
             tests('boolean-update').returns('MetadataBooleanValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean-update'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-boolean-update'}
               entry[:TypedValue][:xsi_type]
             end
             tests('datetime-update').returns('MetadataDateTimeValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime-update'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-datetime-update'}
               entry[:TypedValue][:xsi_type]
             end
             tests('number-update').returns('MetadataNumberValue') do
-              entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number-update'}
+              entry = @metadata[:MetadataEntry].find {|e| e[:Key] == 'fog-test-number-update'}
               entry[:TypedValue][:xsi_type]
             end
           end
diff --git a/tests/vcloud_director/requests/compute/network_tests.rb b/tests/vcloud_director/requests/compute/network_tests.rb
index 55a5874..c89b8f1 100644
--- a/tests/vcloud_director/requests/compute/network_tests.rb
+++ b/tests/vcloud_director/requests/compute/network_tests.rb
@@ -42,7 +42,7 @@ Shindo.tests('Compute::VcloudDirector | network requests', ['vclouddirector']) d
   end
 
   tests('#get_network').data_matches_schema(GET_NETWORK_FORMAT) do
-    link = @org[:Link].detect do |l|
+    link = @org[:Link].find do |l|
       l[:rel] == 'down' && l[:type] == 'application/vnd.vmware.vcloud.orgNetwork+xml'
     end
     pending unless link # nothing to test here cannot continue
@@ -50,16 +50,6 @@ Shindo.tests('Compute::VcloudDirector | network requests', ['vclouddirector']) d
     @service.get_network(@network_id).body
   end
 
-  tests('#get_network_complete').data_matches_schema(VcloudDirector::Compute::Schema::NETWORK_TYPE) do
-    pending if Fog.mocking?
-    link = @org[:Link].detect do |l|
-      l[:rel] == 'down' && l[:type] == 'application/vnd.vmware.vcloud.orgNetwork+xml'
-    end
-    pending unless link # nothing to test here cannot continue
-    @network_id = link[:href].split('/').last
-    @service.get_network_complete(@network_id).body
-  end
-
   tests('#get_network_metadata').data_matches_schema(VcloudDirector::Compute::Schema::METADATA_TYPE) do
     pending if Fog.mocking?
     pending unless @network_id  # nothing to test here cannot continue
@@ -67,8 +57,8 @@ Shindo.tests('Compute::VcloudDirector | network requests', ['vclouddirector']) d
   end
 
   tests('#post_create_org_vdc_network') do
-    pending unless Fog.mocking?
-    link = @org[:Link].detect do |l|
+    #pending unless Fog.mocking?
+    link = @org[:Link].find do |l|
       l[:rel] == 'down' && l[:type] == 'application/vnd.vmware.vcloud.vdc+xml'
     end
 
@@ -101,13 +91,91 @@ Shindo.tests('Compute::VcloudDirector | network requests', ['vclouddirector']) d
     @service.process_task(body[:Tasks][:Task]) if body && body.key?(:Tasks)
 
     tests('fetched name matches created name').returns(name) do
-      net = @service.get_network(@created_net_id).body
+      net = @service.get_network_complete(@created_net_id).body
       net[:name]
     end
+
+  end
+
+  tests('#get_network_complete schema').data_matches_schema(VcloudDirector::Compute::Schema::NETWORK_TYPE) do
+    link = @org[:Link].find do |l|
+      l[:rel] == 'down' && l[:type] == 'application/vnd.vmware.vcloud.orgNetwork+xml'
+    end
+    pending unless link # nothing to test here cannot continue
+    @network_id = link[:href].split('/').last
+    @service.get_network_complete(@network_id).body
+  end
+
+  tests('#get_network_complete') do
+    new_network = @service.get_network_complete(@created_net_id).body
+    tests('network has a :name') do
+      new_network.fetch(:name)
+    end
+    tests('network has a :Description') do
+      new_network.fetch(:Description)
+    end
+    tests('network has a :Gateway') do
+      new_network[:Configuration][:IpScopes][:IpScope][:Gateway]
+    end
+    tests('network has a several :IpRanges') do
+      new_network[:Configuration][:IpScopes][:IpScope][:IpRanges].size >= 1
+    end
+  end
+
+  tests('#put_network') do
+
+    new_options = {
+      :Description => "Testing put_network",
+      :Configuration => {
+        :IpScopes => {
+          :IpScope => {
+            :IsInherited => 'false',
+            :Gateway => '198.51.100.1',
+            :Netmask => '255.255.255.0',
+            :Dns1    => '198.51.100.2',
+            :Dns2    => '198.51.100.3',
+            :DnsSuffix => 'example.com',
+            :IpRanges => [
+              { :IpRange => { :StartAddress => '198.51.100.10', :EndAddress => '198.51.100.20' } },
+              { :IpRange => { :StartAddress => '198.51.100.30', :EndAddress => '198.51.100.40' } },
+            ]
+          },
+        },
+        :FenceMode => 'isolated',
+      }
+    }
+
+    original_network = @service.get_network_complete(@created_net_id).body
+    name = original_network[:name]
+
+    task = @service.put_network(@created_net_id, name, new_options).body
+    @service.process_task(task)
+
+    tests('fetched :Gateway matches updated :Gateway').returns(
+      new_options[:Configuration][:IpScopes][:IpScope][:Gateway]
+    ) do
+      net = @service.get_network_complete(@created_net_id).body
+      net[:Configuration][:IpScopes][:IpScope][:Gateway]
+    end
+
+    tests('fetched :IpRanges count is matches updated data').returns(
+      new_options[:Configuration][:IpScopes][:IpScope][:IpRanges].size
+    ) do
+      net = @service.get_network_complete(@created_net_id).body
+      # dammit, the API returns with IpRange as a list, not IpRanges
+      net[:Configuration][:IpScopes][:IpScope][:IpRanges][:IpRange].size
+    end
+
+    tests('fetched :Network matches updated :Description').returns(
+      new_options[:Description]
+    ) do
+      net = @service.get_network_complete(@created_net_id).body
+      net[:Description]
+    end
+
   end
 
   tests('#delete_network') do
-    pending unless Fog.mocking?
     @delete_task = @service.delete_network(@created_net_id).body
     @service.process_task(@delete_task)
     tests('created network has been deleted').raises(Fog::Compute::VcloudDirector::Forbidden) do
diff --git a/tests/vcloud_director/requests/compute/organization_tests.rb b/tests/vcloud_director/requests/compute/organization_tests.rb
index dd00571..34b744e 100644
--- a/tests/vcloud_director/requests/compute/organization_tests.rb
+++ b/tests/vcloud_director/requests/compute/organization_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('Compute::VcloudDirector | organization requests', ['vclouddirector
   end
 
   tests('#get_organization').data_matches_schema(VcloudDirector::Compute::Schema::ORG_TYPE) do
-    org = @org_list[:Org].detect {|o| o[:name] == @service.org_name}
+    org = @org_list[:Org].find {|o| o[:name] == @service.org_name}
     @org_uuid = org[:href].split('/').last
     @service.get_organization(@org_uuid).body
   end
diff --git a/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb b/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb
index ddf608c..ac82eab 100644
--- a/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb
+++ b/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb
@@ -5,7 +5,7 @@ Shindo.tests('Compute::VcloudDirector | ovf requests', ['vclouddirector']) do
 
   tests('Get first vDC') do
     session = @service.get_current_session.body
-    link = @org[:Link].detect do |l|
+    link = @org[:Link].find do |l|
       l[:type] == 'application/vnd.vmware.vcloud.vdc+xml'
     end
     @vdc = @service.get_vdc(link[:href].split('/').last).body
@@ -14,7 +14,7 @@ Shindo.tests('Compute::VcloudDirector | ovf requests', ['vclouddirector']) do
   # 'Envelope' is the outer type of the parsed XML document.
   tests('#get_vapp_ovf_descriptor').returns('Envelope') do
     pending if Fog.mocking?
-    link = @vdc[:ResourceEntities][:ResourceEntity].detect do |l|
+    link = @vdc[:ResourceEntities][:ResourceEntity].find do |l|
       l[:type] == 'application/vnd.vmware.vcloud.vApp+xml'
     end
     pending if link.nil?
@@ -25,7 +25,7 @@ Shindo.tests('Compute::VcloudDirector | ovf requests', ['vclouddirector']) do
   # 'Envelope' is the outer type of the parsed XML document.
   tests('#get_vapp_template_ovf_descriptor').returns('Envelope') do
     pending if Fog.mocking?
-    link = @vdc[:ResourceEntities][:ResourceEntity].detect do |l|
+    link = @vdc[:ResourceEntities][:ResourceEntity].find do |l|
       l[:type] == 'application/vnd.vmware.vcloud.vAppTemplate+xml'
     end
     pending if link.nil?
diff --git a/tests/vcloud_director/requests/compute/query_tests.rb b/tests/vcloud_director/requests/compute/query_tests.rb
index c9a9a10..522ff29 100644
--- a/tests/vcloud_director/requests/compute/query_tests.rb
+++ b/tests/vcloud_director/requests/compute/query_tests.rb
@@ -11,7 +11,7 @@ Shindo.tests('Compute::VcloudDirector | query requests', ['vclouddirector']) do
     end
   end
 
-  # for each queriable type, query and check that each available format 
+  # for each queriable type, query and check that each available format
   # returns a result that matches the base schema
   #
   @query_list[:Link].select do |link|
@@ -35,7 +35,7 @@ Shindo.tests('Compute::VcloudDirector | query requests', ['vclouddirector']) do
       tests("resource type").returns(link[:type]) { @body[:type] }
 
       unless ( type == 'event' || type == 'edgeGateway' )
-        records_key = @body.keys.detect {|key| key.to_s =~ /Record|Reference$/}
+        records_key = @body.keys.find {|key| key.to_s =~ /Record|Reference$/}
         if records = @body[records_key]
           records.first do |record|
             case format
@@ -91,7 +91,7 @@ Shindo.tests('Compute::VcloudDirector | query requests', ['vclouddirector']) do
           tests('fields option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
             @service.get_execute_query('orgVdcNetwork', :fields => 'name,thing')
           end
-        end 
+        end
       end
     end
   end
diff --git a/tests/vcloud_director/requests/compute/schema_helper.rb b/tests/vcloud_director/requests/compute/schema_helper.rb
index f161395..1ba9221 100644
--- a/tests/vcloud_director/requests/compute/schema_helper.rb
+++ b/tests/vcloud_director/requests/compute/schema_helper.rb
@@ -1,7 +1,6 @@
 class VcloudDirector
   module Compute
     module Schema
-
       # Mapping of a content media type to a xsd complex type.
       MEDIA_TYPE_MAPPING_TYPE = {
         :MediaType => String,
@@ -382,7 +381,6 @@ class VcloudDirector
         :Other => Fog::Nullable::String
       }
 
-
       # Represents a firewall rule.
       FIREWALL_RULE_TYPE = {
         :Id => String,
@@ -617,14 +615,16 @@ class VcloudDirector
         :IpScopes => {
           :IpScope => {
             :IsInherited => String,
-            :Gateway => String,
+            :Gateway => Fog::Nullable::String,
             :Netmask => String,
             :Dns1 => String,
             :Dns2 => String,
+            :DnsSuffix => String,
             :IsEnabled=> String,
+            :IpRanges=> IP_RANGES_TYPE,
           }
         },
-        :FenceMode => String,
+        :FenceMode => Fog::Nullable::String,
         :RetainNetInfoAcrossDeployments => String,
       }
 
@@ -632,7 +632,6 @@ class VcloudDirector
         :name => String,
         :href => String,
         :type => String,
-        :status => String,
         :id => String,
         :Description => String,
         :Configuration => NETWORK_CONFIGURATION_TYPE,
diff --git a/tests/vcloud_director/requests/compute/task_tests.rb b/tests/vcloud_director/requests/compute/task_tests.rb
index da272b2..e9e9056 100644
--- a/tests/vcloud_director/requests/compute/task_tests.rb
+++ b/tests/vcloud_director/requests/compute/task_tests.rb
@@ -18,7 +18,7 @@ Shindo.tests('Compute::VcloudDirector | task requests', ['vclouddirector']) do
 
   tests('#get_task_list').data_matches_schema(VcloudDirector::Compute::Schema::TASKS_LIST_TYPE) do
     session = @service.get_current_session.body
-    org_href = session[:Link].detect {|l| l[:type] == 'application/vnd.vmware.vcloud.org+xml'}[:href]
+    org_href = session[:Link].find {|l| l[:type] == 'application/vnd.vmware.vcloud.org+xml'}[:href]
     @org_uuid = org_href.split('/').last
     @tasks_list = @service.get_task_list(@org_uuid).body
   end
diff --git a/tests/vcloud_director/requests/compute/vapp_tests.rb b/tests/vcloud_director/requests/compute/vapp_tests.rb
index 1bf44a4..17ac67b 100644
--- a/tests/vcloud_director/requests/compute/vapp_tests.rb
+++ b/tests/vcloud_director/requests/compute/vapp_tests.rb
@@ -15,29 +15,58 @@ Shindo.tests('Compute::VcloudDirector | vapp requests', ['vclouddirector']) do
           @vapp_id = v[:href].split('/').last
 
           #tests("#get_vapp(#{@vapp_id})").data_matches_schema(VcloudDirector::Compute::Schema::VAPP_TYPE) do
-          tests("#get_vapp(#{@vapp_id})").returns(Hash) do
-            pending if Fog.mocking?
+          tests("#get_vapp(#{@vapp_id}).body").returns(Hash) do
             @service.get_vapp(@vapp_id).body.class
           end
 
+          tests("#get_vapp(#{@vapp_id}).body[:name]").returns(String) do
+            @service.get_vapp(@vapp_id).body[:name].class
+          end
+
+          tests("#get_vapp(#{@vapp_id}).body[:href]").returns(v[:href]) do
+            @service.get_vapp(@vapp_id).body[:href]
+          end
+
           tests("#get_lease_settings_section_vapp(#{@vapp_id})").returns(Hash) do
-            pending if Fog.mocking?
             @service.get_lease_settings_section_vapp(@vapp_id).body.class
           end
+
+          tests("#get_lease_settings_section_vapp(#{@vapp_id}).body[:DeploymentLeaseInSeconds] is >= 0").returns(true) do
+            Integer(@service.get_lease_settings_section_vapp(@vapp_id).body[:DeploymentLeaseInSeconds]) >= 0
+          end
+
+          tests("#get_vapp(#{@vapp_id}).body[:LeaseSettingsSection[:DeploymentLeaseInSeconds] is >= 0").returns(true) do
+            Integer(@service.get_vapp(@vapp_id).body[:LeaseSettingsSection][:DeploymentLeaseInSeconds]) >= 0
+          end
+
+          tests("#get_vapp(#{@vapp_id}).body[:NetworkConfigSection]").returns(Hash) do
+            @service.get_vapp(@vapp_id).body[:NetworkConfigSection].class
+          end
+
           tests("#get_network_config_section_vapp(#{@vapp_id})").returns(Hash) do
-            pending if Fog.mocking?
             @service.get_network_config_section_vapp(@vapp_id).body.class
           end
+
           tests("#get_network_section_vapp(#{@vapp_id})").returns(Hash) do
             pending if Fog.mocking?
             @service.get_network_section_vapp(@vapp_id).body.class
           end
+
           tests("#get_product_sections_vapp(#{@vapp_id})").returns(Hash) do
             pending if Fog.mocking?
             @service.get_product_sections_vapp(@vapp_id).body.class
           end
-          tests("#get_startup_section(#{@vapp_id})").returns(Hash) do
+
+          tests("#get_vapp(#{@vapp_id}).body[:'ovf:StartupSection']").returns(Hash) do
+            @service.get_vapp(@vapp_id).body[:"ovf:StartupSection"].class
+          end
+
+          tests("#put_product_sections(#{@vapp_id})").returns(Hash) do
             pending if Fog.mocking?
+            @service.put_product_sections(@vapp_id, ["a" => "1"]).body.class
+          end
+
+          tests("#get_startup_section(#{@vapp_id})").returns(Hash) do
             @service.get_startup_section(@vapp_id).body.class
           end
 
@@ -47,14 +76,18 @@ Shindo.tests('Compute::VcloudDirector | vapp requests', ['vclouddirector']) do
           end
 
           tests("#get_vapp_owner(#{@vapp_id})").data_matches_schema(VcloudDirector::Compute::Schema::OWNER_TYPE) do
-            pending if Fog.mocking?
             @service.get_vapp_owner(@vapp_id).body
           end
 
+          tests("#get_vapp(#{@vapp_id}).body[:Owner]").data_matches_schema(VcloudDirector::Compute::Schema::OWNER_TYPE) do
+            @service.get_vapp(@vapp_id).body[:Owner]
+          end
+
           tests("#get_control_access_params_vapp(#{@vapp_id})").data_matches_schema(VcloudDirector::Compute::Schema::CONTROL_ACCESS_PARAMS_TYPE) do
             pending if Fog.mocking?
             @service.get_control_access_params_vapp(@vapp_id).body
           end
+
         end
       end
     end
@@ -79,7 +112,6 @@ Shindo.tests('Compute::VcloudDirector | vapp requests', ['vclouddirector']) do
   end
 
   tests('Retrieve owner of non-existent vApp').raises(Fog::Compute::VcloudDirector::Forbidden) do
-    pending if Fog.mocking?
     @service.get_vapp_owner('00000000-0000-0000-0000-000000000000')
   end
 
diff --git a/tests/vcloud_director/requests/compute/vdc_tests.rb b/tests/vcloud_director/requests/compute/vdc_tests.rb
index ee29209..5c0a4ca 100644
--- a/tests/vcloud_director/requests/compute/vdc_tests.rb
+++ b/tests/vcloud_director/requests/compute/vdc_tests.rb
@@ -4,7 +4,7 @@ Shindo.tests('Compute::VcloudDirector | vdc requests', ['vclouddirector']) do
   @org = VcloudDirector::Compute::Helper.current_org(@service)
 
   tests('#get_vdc').data_matches_schema(VcloudDirector::Compute::Schema::VDC_TYPE) do
-    link = @org[:Link].detect do |l|
+    link = @org[:Link].find do |l|
       l[:rel] == 'down' && l[:type] == 'application/vnd.vmware.vcloud.vdc+xml'
     end
     @vdc_id = link[:href].split('/').last
diff --git a/tests/vcloud_director/requests/compute/versions_tests.rb b/tests/vcloud_director/requests/compute/versions_tests.rb
index d3d809b..7d102c8 100644
--- a/tests/vcloud_director/requests/compute/versions_tests.rb
+++ b/tests/vcloud_director/requests/compute/versions_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('Compute::VcloudDirector | versions requests', ['vclouddirector'])
   end
 
   tests('API 5.1 is supported').returns(true) do
-    !!@versions[:VersionInfo].detect {|i| i[:Version] == '5.1'}
+    !!@versions[:VersionInfo].find {|i| i[:Version] == '5.1'}
   end
 
 end
diff --git a/tests/vcloud_director/requests/compute/vm_tests.rb b/tests/vcloud_director/requests/compute/vm_tests.rb
index ba511b2..652cc9b 100644
--- a/tests/vcloud_director/requests/compute/vm_tests.rb
+++ b/tests/vcloud_director/requests/compute/vm_tests.rb
@@ -16,63 +16,122 @@ Shindo.tests('Compute::VcloudDirector | vm requests', ['vclouddirector']) do
           vapp = @service.get_vapp(vapp_id).body
 
           tests('Each VM') do
+
             vapp[:Children][:Vm].each do |vm|
               vm_id = vm[:href].split('/').last
 
+              tests("#get_vapp(#{vm_id}).body").returns(Hash) do
+                @service.get_vapp(vm_id).body.class
+              end
+
+              tests("#get_vapp(#{vm_id}).body[:name]").returns(String) do
+                @service.get_vapp(vm_id).body[:name].class
+              end
+
+              tests("#get_vapp(#{vm_id}).body[:href]").returns(vm[:href]) do
+                @service.get_vapp(vm_id).body[:href]
+              end
+
+              tests("#get_vapp(#{vm_id}).body[:GuestCustomizationSection]").returns(Hash) do
+                @service.get_vapp(vm_id).body[:GuestCustomizationSection].class
+              end
+
+              tests("#get_vapp(#{vm_id}).body[:GuestCustomizationSection]").data_matches_schema(VcloudDirector::Compute::Schema::GUEST_CUSTOMIZATION_SECTION_TYPE) do
+                @service.get_vapp(vm_id).body[:GuestCustomizationSection]
+              end
+
+              tests("#get_guest_customization_system_section_vapp(#{vm_id})").returns(Hash) do
+                @service.get_guest_customization_system_section_vapp(vm_id).body.class
+              end
+
               tests("#get_guest_customization_system_section_vapp(#{vm_id})").data_matches_schema(VcloudDirector::Compute::Schema::GUEST_CUSTOMIZATION_SECTION_TYPE) do
-                pending if Fog.mocking?
                 @service.get_guest_customization_system_section_vapp(vm_id).body
               end
+
+              tests("#get_vapp(#{vm_id}).body[:NetworkConnectionSection]").returns(Hash) do
+                @service.get_vapp(vm_id).body[:NetworkConnectionSection].class
+              end
+
               tests("#get_network_connection_system_section_vapp(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_network_connection_system_section_vapp(vm_id).body.class
               end
+
+              tests("#get_vapp(#{vm_id}).body[:'ovf:OperatingSystemSection']").returns(Hash) do
+                @service.get_vapp(vm_id).body[:'ovf:OperatingSystemSection'].class
+              end
+
               tests("#get_operating_system_section(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_operating_system_section(vm_id).body.class
               end
+
               tests("#get_product_sections_vapp(#{vm_id})").returns(Hash) do
                 pending if Fog.mocking?
                 @service.get_product_sections_vapp(vm_id).body.class
               end
+
+              tests("#get_vapp(#{vm_id}).body[:RuntimeInfoSection]").data_matches_schema(VcloudDirector::Compute::Schema::RUNTIME_INFO_SECTION_TYPE) do
+                @service.get_vapp(vm_id).body[:RuntimeInfoSection]
+              end
+
               tests("#get_runtime_info_section_type(#{vm_id})").data_matches_schema(VcloudDirector::Compute::Schema::RUNTIME_INFO_SECTION_TYPE) do
-                pending if Fog.mocking?
-                pending # fails if WMware Tools not installed
                 @service.get_runtime_info_section_type(vm_id).body
               end
+
               tests("#get_snapshot_section(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_snapshot_section(vm_id).body.class
               end
+
+              tests("#get_vapp(#{vm_id}).body[:VmCapabilities]").data_matches_schema(VcloudDirector::Compute::Schema::VM_CAPABILITIES_TYPE) do
+                @service.get_vapp(vm_id).body[:VmCapabilities]
+              end
+
               tests("#get_vm_capabilities(#{vm_id})").data_matches_schema(VcloudDirector::Compute::Schema::VM_CAPABILITIES_TYPE) do
-                pending if Fog.mocking?
                 @service.get_vm_capabilities(vm_id).body
               end
 
+              tests("#get_vapp(#{vm_id}).body[:'ovf:VirtualHardwareSection']").returns(Hash) do
+                @section = @service.get_vapp(vm_id).body[:'ovf:VirtualHardwareSection'].class
+              end
+
               tests("#get_virtual_hardware_section(#{vm_id})").returns(Hash) do
                 pending if Fog.mocking?
                 @section = @service.get_virtual_hardware_section(vm_id).body.class
               end
+
               tests("#get_cpu_rasd_item(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_cpu_rasd_item(vm_id).body.class
               end
+
               tests("#get_disks_rasd_items_list(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_disks_rasd_items_list(vm_id).body.class
               end
+
+              tests("#get_disks_rasd_items_list(#{vm_id}).body[:Item]").returns(Array) do
+                @service.get_disks_rasd_items_list(vm_id).body[:Item].class
+              end
+
               tests("#get_media_drives_rasd_items_list(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_media_drives_rasd_items_list(vm_id).body.class
               end
+
+              tests("#get_media_drives_rasd_items_list(#{vm_id}).body[:Item]").returns(Array) do
+                @service.get_media_drives_rasd_items_list(vm_id).body[:Item].class
+              end
+
               tests("#get_memory_rasd_item(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_memory_rasd_item(vm_id).body.class
               end
+
+              tests("#get_vapp(#{vm_id}) ovf:VirtualHardwareSection has a Network adapter listed").returns(Hash) do
+                @service.get_vapp(vm_id).body[:'ovf:VirtualHardwareSection'][:'ovf:Item'].detect do |rasd_item|
+                  rasd_item[:'rasd:ElementName'] =~ /^Network adapter/
+                end.class
+              end
+
               tests("#get_network_cards_items_list(#{vm_id})").returns(Hash) do
-                pending if Fog.mocking?
                 @service.get_network_cards_items_list(vm_id).body.class
               end
+
               tests("#get_serial_ports_items_list(#{vm_id})").returns(Hash) do
                 pending if Fog.mocking?
                 @service.get_serial_ports_items_list(vm_id).body.class
@@ -87,6 +146,7 @@ Shindo.tests('Compute::VcloudDirector | vm requests', ['vclouddirector']) do
                 pending # result depends on power state
                 @service.post_acquire_ticket(vm_id).body
               end
+
             end
           end
         end
diff --git a/tests/vsphere/compute_tests.rb b/tests/vsphere/compute_tests.rb
index 5b6207b..70d6274 100644
--- a/tests/vsphere/compute_tests.rb
+++ b/tests/vsphere/compute_tests.rb
@@ -5,7 +5,6 @@ Shindo.tests('Fog::Compute[:vsphere]', ['vsphere']) do
   tests("| convert_vm_mob_ref_to_attr_hash") do
     # Mock the RbVmomi::VIM::ManagedObject class
     class MockManagedObject
-
       attr_reader :parent, :_ref
 
       def initialize
@@ -52,4 +51,3 @@ Shindo.tests('Fog::Compute[:vsphere]', ['vsphere']) do
     end
   end
 end
-
diff --git a/tests/vsphere/models/compute/server_tests.rb b/tests/vsphere/models/compute/server_tests.rb
index 261fc24..4f692f7 100644
--- a/tests/vsphere/models/compute/server_tests.rb
+++ b/tests/vsphere/models/compute/server_tests.rb
@@ -34,7 +34,7 @@ Shindo.tests('Fog::Compute[:vsphere] | server model', ['vsphere']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/vsphere/requests/compute/current_time_tests.rb b/tests/vsphere/requests/compute/current_time_tests.rb
index 9b2f0a2..a19755d 100644
--- a/tests/vsphere/requests/compute/current_time_tests.rb
+++ b/tests/vsphere/requests/compute/current_time_tests.rb
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute[:vsphere] | current_time request', ['vsphere']) do
   tests('The response should') do
     response = compute.current_time
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('have a current_time key') { response.has_key? 'current_time' }
+    test('have a current_time key') { response.key? 'current_time' }
     test('have a current_time key with a Time value') { response['current_time'].kind_of? Time }
   end
 
diff --git a/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb b/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb
index 76ba88f..7adcebe 100644
--- a/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb
+++ b/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb
@@ -18,4 +18,3 @@ Shindo.tests('Fog::Compute[:vsphere] | set_vm_customvalue request', ['vsphere'])
   end
 
 end
-
diff --git a/tests/vsphere/requests/compute/vm_clone_tests.rb b/tests/vsphere/requests/compute/vm_clone_tests.rb
index 0dd3383..5d8abc5 100644
--- a/tests/vsphere/requests/compute/vm_clone_tests.rb
+++ b/tests/vsphere/requests/compute/vm_clone_tests.rb
@@ -12,7 +12,7 @@ Shindo.tests("Fog::Compute[:vsphere] | vm_clone request", 'vsphere') do
     response = compute.vm_clone('datacenter' => datacenter, 'template_path' => template, 'name' => 'cloning_vm', 'wait' => true)
     test("be a kind of Hash") { response.kind_of? Hash }
     %w{ vm_ref new_vm task_ref }.each do |key|
-      test("have a #{key} key") { response.has_key? key }
+      test("have a #{key} key") { response.key? key }
     end
     test("creates a new server") { compute.servers.size == servers_size+1 }
     test("new server name is set") { compute.get_virtual_machine(response['new_vm']['id'])['name'] == 'cloning_vm' }
@@ -23,7 +23,7 @@ Shindo.tests("Fog::Compute[:vsphere] | vm_clone request", 'vsphere') do
     response = compute.vm_clone('datacenter' => datacenter, 'template_path' => template, 'name' => 'cloning_vm', 'memoryMB' => '8192', 'numCPUs' => '8', 'wait' => true)
     test("be a kind of Hash") { response.kind_of? Hash }
     %w{ vm_ref new_vm task_ref }.each do |key|
-      test("have a #{key} key") { response.has_key? key }
+      test("have a #{key} key") { response.key? key }
     end
     test("creates a new server") { compute.servers.size == servers_size+1 }
     test("new server name is set") { compute.get_virtual_machine(response['new_vm']['id'])['name'] == 'cloning_vm' }
@@ -34,7 +34,7 @@ Shindo.tests("Fog::Compute[:vsphere] | vm_clone request", 'vsphere') do
     response = compute.vm_clone('datacenter' => datacenter, 'template_path' => template, 'name' => 'cloning_vm_linked', 'wait' => 1, 'linked_clone' => true)
     test("be a kind of Hash") { response.kind_of? Hash }
     %w{ vm_ref new_vm task_ref }.each do |key|
-      test("have a #{key} key") { response.has_key? key }
+      test("have a #{key} key") { response.key? key }
     end
     test("creates a new server") { compute.servers.size == servers_size+1 }
     test("new server name is set") { compute.get_virtual_machine(response['new_vm']['id'])['name'] == 'cloning_vm_linked' }
diff --git a/tests/vsphere/requests/compute/vm_config_vnc_tests.rb b/tests/vsphere/requests/compute/vm_config_vnc_tests.rb
index 9350d06..cb126cd 100644
--- a/tests/vsphere/requests/compute/vm_config_vnc_tests.rb
+++ b/tests/vsphere/requests/compute/vm_config_vnc_tests.rb
@@ -8,12 +8,12 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_config_vnc request', ['vsphere']) do
   tests('The response should') do
     response = compute.vm_config_vnc('instance_uuid' => reconfig_target).merge(vnc_spec)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
   end
 
   tests('VNC attrs response should') do
     response = compute.vm_get_vnc(reconfig_target)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a port key') { response.has_key? :port }
+    test('should have a port key') { response.key? :port }
   end
 end
diff --git a/tests/vsphere/requests/compute/vm_destroy_tests.rb b/tests/vsphere/requests/compute/vm_destroy_tests.rb
index a41b374..1b4a5d6 100644
--- a/tests/vsphere/requests/compute/vm_destroy_tests.rb
+++ b/tests/vsphere/requests/compute/vm_destroy_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_destroy request', ['vsphere']) do
   tests('The response should') do
     response = compute.vm_destroy('instance_uuid' => booted_vm)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
 
   end
   tests('The expected options') do
diff --git a/tests/vsphere/requests/compute/vm_migrate_tests.rb b/tests/vsphere/requests/compute/vm_migrate_tests.rb
index 2526425..74f425f 100644
--- a/tests/vsphere/requests/compute/vm_migrate_tests.rb
+++ b/tests/vsphere/requests/compute/vm_migrate_tests.rb
@@ -7,9 +7,9 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_migrate request', ['vsphere']) do
   tests('The response should') do
     response = compute.vm_migrate('instance_uuid' => powered_on_vm)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
   end
-  
+
   tests('The expected options') do
     raises(ArgumentError, 'raises ArgumentError when instance_uuid option is missing') { compute.vm_migrate }
   end
diff --git a/tests/vsphere/requests/compute/vm_power_off_tests.rb b/tests/vsphere/requests/compute/vm_power_off_tests.rb
index e8684db..f961bb3 100644
--- a/tests/vsphere/requests/compute/vm_power_off_tests.rb
+++ b/tests/vsphere/requests/compute/vm_power_off_tests.rb
@@ -7,8 +7,8 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_power_off request', ['vsphere']) do
   tests('The response should') do
     response = compute.vm_power_off('instance_uuid' => powered_on_vm)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
-    test('should have a power_off_type key') { response.has_key? 'power_off_type' }
+    test('should have a task_state key') { response.key? 'task_state' }
+    test('should have a power_off_type key') { response.key? 'power_off_type' }
   end
 
   # When forcing the shutdown, we expect the result to be
diff --git a/tests/vsphere/requests/compute/vm_power_on_tests.rb b/tests/vsphere/requests/compute/vm_power_on_tests.rb
index 344f63c..1ee007f 100644
--- a/tests/vsphere/requests/compute/vm_power_on_tests.rb
+++ b/tests/vsphere/requests/compute/vm_power_on_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_power_on request', ['vsphere']) do
   tests('The response should') do
     response = compute.vm_power_on('instance_uuid' => powered_off_vm)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
   end
 
   tests('The expected options') do
diff --git a/tests/vsphere/requests/compute/vm_reboot_tests.rb b/tests/vsphere/requests/compute/vm_reboot_tests.rb
index 4886f6d..2418918 100644
--- a/tests/vsphere/requests/compute/vm_reboot_tests.rb
+++ b/tests/vsphere/requests/compute/vm_reboot_tests.rb
@@ -7,8 +7,8 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_reboot request', ['vsphere']) do
   tests('The response should') do
     response = compute.vm_reboot('instance_uuid' => powered_on_vm)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
-    test('should have a reboot_type key') { response.has_key? 'reboot_type' }
+    test('should have a task_state key') { response.key? 'task_state' }
+    test('should have a reboot_type key') { response.key? 'reboot_type' }
   end
 
   # When forcing the shutdown, we expect the result to be
diff --git a/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb b/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb
index 63bd7af..e0eeadb 100644
--- a/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb
+++ b/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_reconfig_cpus request', ['vsphere']) d
   tests('The response should') do
     response = compute.vm_reconfig_cpus('instance_uuid' => reconfig_target, 'cpus' => reconfig_spec)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
   end
 
   tests('The expected options') do
diff --git a/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb b/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb
index 0f73118..db73b3e 100644
--- a/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb
+++ b/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_reconfig_hardware request', ['vsphere'
   tests('The response should') do
     response = compute.vm_reconfig_hardware('instance_uuid' => reconfig_target, 'hardware_spec' => reconfig_spec)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
   end
 
   tests('The expected options') do
diff --git a/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb b/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb
index 68c7665..64aa269 100644
--- a/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb
+++ b/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Compute[:vsphere] | vm_reconfig_memory request', ['vsphere'])
   tests('The response should') do
     response = compute.vm_reconfig_memory('instance_uuid' => reconfig_target, 'memory' => reconfig_spec)
     test('be a kind of Hash') { response.kind_of? Hash }
-    test('should have a task_state key') { response.has_key? 'task_state' }
+    test('should have a task_state key') { response.key? 'task_state' }
   end
 
   tests('The expected options') do
diff --git a/tests/xenserver/compute_tests.rb b/tests/xenserver/compute_tests.rb
index 5103c34..7ec7238 100644
--- a/tests/xenserver/compute_tests.rb
+++ b/tests/xenserver/compute_tests.rb
@@ -49,4 +49,3 @@ Shindo.tests('Fog::Compute[:xenserver]', ['xenserver']) do
     end
   end
 end
-
diff --git a/tests/xenserver/helper.rb b/tests/xenserver/helper.rb
index 4744790..de82ebd 100644
--- a/tests/xenserver/helper.rb
+++ b/tests/xenserver/helper.rb
@@ -12,7 +12,7 @@ def valid_ref?(ref)
 end
 
 def create_ephemeral_vm
-  Fog::Compute[:xenserver].servers.create(:name => test_ephemeral_vm_name, 
+  Fog::Compute[:xenserver].servers.create(:name => test_ephemeral_vm_name,
                                           :template_name => test_template_name)
 end
 
@@ -26,7 +26,7 @@ def destroy_ephemeral_servers
   (servers.all :name_matches => test_ephemeral_vm_name).each do |s|
     s.destroy
   end
-  (servers.templates.find_all { |t| t.name == test_ephemeral_vm_name}).each do |s|
+  (servers.templates.select { |t| t.name == test_ephemeral_vm_name}).each do |s|
     s.destroy
   end
 end
diff --git a/tests/xenserver/models/compute/console_test.rb b/tests/xenserver/models/compute/console_test.rb
index 6d6be81..68177c8 100644
--- a/tests/xenserver/models/compute/console_test.rb
+++ b/tests/xenserver/models/compute/console_test.rb
@@ -20,7 +20,7 @@ Shindo.tests('Fog::Compute[:xenserver] | console model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/xenserver/models/compute/host_cpu_tests.rb b/tests/xenserver/models/compute/host_cpu_tests.rb
index b9bcdd4..388f000 100644
--- a/tests/xenserver/models/compute/host_cpu_tests.rb
+++ b/tests/xenserver/models/compute/host_cpu_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests('Fog::Compute[:xenserver] | HostCpu model', ['xenserver']) do
   tests('The HostCpu model should') do
     tests('have attributes') do
       model_attribute_hash = host_cpu.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :family,
@@ -28,7 +28,7 @@ Shindo.tests('Fog::Compute[:xenserver] | HostCpu model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -40,15 +40,15 @@ Shindo.tests('Fog::Compute[:xenserver] | HostCpu model', ['xenserver']) do
     test("return a valid host") do
       host_cpu.host.kind_of? Fog::Compute::XenServer::Host
     end
-    
+
     test("have a valid vendor string") do
       host_cpu.vendor.kind_of? String
     end
-    
+
     test("have a valid other_config") do
       host_cpu.other_config.kind_of? Hash
     end
-    
+
     test("have a valid utilisation attribute") do
       host_cpu.utilisation.kind_of? Float
     end
diff --git a/tests/xenserver/models/compute/host_metrics_tests.rb b/tests/xenserver/models/compute/host_metrics_tests.rb
index 4ac39de..87ea140 100644
--- a/tests/xenserver/models/compute/host_metrics_tests.rb
+++ b/tests/xenserver/models/compute/host_metrics_tests.rb
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute[:xenserver] | HostMetrics model', ['xenserver']) do
   tests('The HostMetrics model should') do
     tests('have attributes') do
       model_attribute_hash = host.metrics.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :memory_free,
@@ -20,7 +20,7 @@ Shindo.tests('Fog::Compute[:xenserver] | HostMetrics model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -30,17 +30,17 @@ Shindo.tests('Fog::Compute[:xenserver] | HostMetrics model', ['xenserver']) do
     end
 
     test("have a last_updated Time property") { host.metrics.last_updated.kind_of? Time }
-    
-    test("return a valid memory_free ammount") do 
-      (host.metrics.memory_free =~ /^\d+$/) == 0 
+
+    test("return a valid memory_free ammount") do
+      (host.metrics.memory_free =~ /^\d+$/) == 0
     end
 
     test("have memory_free > 0") { host.metrics.memory_free.to_i > 0 }
-    
+
     test("return a valid memory_total ammount") do
-      (host.metrics.memory_total =~ /^\d+$/) == 0 
+      (host.metrics.memory_total =~ /^\d+$/) == 0
     end
-    
+
     test("have memory_total > 0") { host.metrics.memory_total.to_i > 0 }
 
   end
diff --git a/tests/xenserver/models/compute/host_tests.rb b/tests/xenserver/models/compute/host_tests.rb
index 5ab1659..1c9f5b9 100644
--- a/tests/xenserver/models/compute/host_tests.rb
+++ b/tests/xenserver/models/compute/host_tests.rb
@@ -2,7 +2,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | host model', ['xenserver']) do
 
   hosts = Fog::Compute[:xenserver].hosts
-  host = hosts.first 
+  host = hosts.first
 
   tests('The host model should') do
     tests('have the action') do
@@ -14,7 +14,7 @@ Shindo.tests('Fog::Compute[:xenserver] | host model', ['xenserver']) do
 
     tests('have attributes') do
       model_attribute_hash = host.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :name,
@@ -39,7 +39,7 @@ Shindo.tests('Fog::Compute[:xenserver] | host model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -51,21 +51,21 @@ Shindo.tests('Fog::Compute[:xenserver] | host model', ['xenserver']) do
   tests("A real host should") do
     tests("return valid PIFs") do
       test("as an array") { host.pifs.kind_of? Array }
-      host.pifs.each { |i| 
+      host.pifs.each { |i|
           test("and each PIF should be a Fog::Compute::XenServer::PIF") { i.kind_of? Fog::Compute::XenServer::PIF}
-      } 
+      }
     end
     tests("return valid PBDs") do
       test("as an array") { host.pbds.kind_of? Array }
-      host.pbds.each { |i| 
+      host.pbds.each { |i|
           test("and each PBD should be a Fog::Compute::XenServer::PBD") { i.kind_of? Fog::Compute::XenServer::PBD}
-      } 
+      }
     end
     tests("return valid resident servers") do
       test("as an array") { host.resident_servers.kind_of? Array }
-      host.resident_servers.each { |i| 
+      host.resident_servers.each { |i|
           test("and each Server should be a Fog::Compute::XenServer::Server") { i.kind_of? Fog::Compute::XenServer::Server}
-      } 
+      }
     end
     tests("return valid HostMetrics") do
       test("object") { host.metrics.kind_of? Fog::Compute::XenServer::HostMetrics }
@@ -86,14 +86,13 @@ Shindo.tests('Fog::Compute[:xenserver] | host model', ['xenserver']) do
 
     tests('return a list of HostCpu') do
       test('as an Array') do
-        host.host_cpus.kind_of? Array 
+        host.host_cpus.kind_of? Array
       end
       test('with one element at least') do
         host.host_cpus.first.kind_of? Fog::Compute::XenServer::HostCpu
       end
     end
-    
-  end
 
+  end
 
 end
diff --git a/tests/xenserver/models/compute/hosts_tests.rb b/tests/xenserver/models/compute/hosts_tests.rb
index aacada1..686698d 100644
--- a/tests/xenserver/models/compute/hosts_tests.rb
+++ b/tests/xenserver/models/compute/hosts_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | hosts collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The hosts collection') do
     hosts = conn.hosts.all
 
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | hosts collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { hosts.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         hosts.get(hosts.first.reference).is_a? Fog::Compute::XenServer::Host
       }
     end
diff --git a/tests/xenserver/models/compute/network_tests.rb b/tests/xenserver/models/compute/network_tests.rb
index 979f490..0bf2342 100644
--- a/tests/xenserver/models/compute/network_tests.rb
+++ b/tests/xenserver/models/compute/network_tests.rb
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:network] | network model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = network.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :__vifs,
@@ -33,7 +33,7 @@ Shindo.tests('Fog::Compute[:network] | network model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -45,16 +45,16 @@ Shindo.tests('Fog::Compute[:network] | network model', ['xenserver']) do
   tests("A real network should") do
     tests("return valid vifs") do
       test("as an array") { network.vifs.kind_of? Array }
-      network.vifs.each { |i| 
+      network.vifs.each { |i|
           test("and each VIF should be a Fog::Compute::XenServer::VIF") { i.kind_of? Fog::Compute::XenServer::VIF }
-      } 
+      }
     end
-    tests("return valid PIFs") do 
+    tests("return valid PIFs") do
       networks.each do |network|
           test("as an array") { network.pifs.kind_of? Array }
-          network.pifs.each { |i| 
+          network.pifs.each { |i|
               test("and each PIF should be a Fog::Compute::XenServer::PIF") { i.kind_of? Fog::Compute::XenServer::PIF}
-          } 
+          }
       end
     end
 
diff --git a/tests/xenserver/models/compute/networks_tests.rb b/tests/xenserver/models/compute/networks_tests.rb
index de00836..ed77347 100644
--- a/tests/xenserver/models/compute/networks_tests.rb
+++ b/tests/xenserver/models/compute/networks_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | Networks collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The networks collection') do
     networks = conn.networks.all
 
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | Networks collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { networks.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         networks.get(networks.first.reference).is_a? Fog::Compute::XenServer::Network
       }
     end
diff --git a/tests/xenserver/models/compute/pbd_tests.rb b/tests/xenserver/models/compute/pbd_tests.rb
index 303f96e..6ea3246 100644
--- a/tests/xenserver/models/compute/pbd_tests.rb
+++ b/tests/xenserver/models/compute/pbd_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests('Fog::Compute[:xenserver] | PBD model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = pbd.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :__host,
@@ -24,7 +24,7 @@ Shindo.tests('Fog::Compute[:xenserver] | PBD model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/xenserver/models/compute/pbds_tests.rb b/tests/xenserver/models/compute/pbds_tests.rb
index 2d87f98..ba93082 100644
--- a/tests/xenserver/models/compute/pbds_tests.rb
+++ b/tests/xenserver/models/compute/pbds_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | pbds collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The pbds collection') do
     pbds = conn.pbds.all
 
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | pbds collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { pbds.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         pbds.get(pbds.first.reference).is_a? Fog::Compute::XenServer::PBD
       }
     end
diff --git a/tests/xenserver/models/compute/pif_tests.rb b/tests/xenserver/models/compute/pif_tests.rb
index 3e6fbce..cc46713 100644
--- a/tests/xenserver/models/compute/pif_tests.rb
+++ b/tests/xenserver/models/compute/pif_tests.rb
@@ -9,7 +9,7 @@ Shindo.tests('Fog::Compute[:xenserver] | PIF model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = pif.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :physical,
@@ -36,7 +36,7 @@ Shindo.tests('Fog::Compute[:xenserver] | PIF model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/xenserver/models/compute/pifs_tests.rb b/tests/xenserver/models/compute/pifs_tests.rb
index b5a3011..cabe9c2 100644
--- a/tests/xenserver/models/compute/pifs_tests.rb
+++ b/tests/xenserver/models/compute/pifs_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | PIFs collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The pifs collection') do
     pifs = conn.pifs.all
 
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | PIFs collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { pifs.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         pifs.get(pifs.first.reference).is_a? Fog::Compute::XenServer::PIF
       }
     end
diff --git a/tests/xenserver/models/compute/pool_tests.rb b/tests/xenserver/models/compute/pool_tests.rb
index 54e26e1..5864d1f 100644
--- a/tests/xenserver/models/compute/pool_tests.rb
+++ b/tests/xenserver/models/compute/pool_tests.rb
@@ -9,7 +9,7 @@ Shindo.tests('Fog::Compute[:xenserver] | Pool model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = pool.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :name,
@@ -29,7 +29,7 @@ Shindo.tests('Fog::Compute[:xenserver] | Pool model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/xenserver/models/compute/pools_tests.rb b/tests/xenserver/models/compute/pools_tests.rb
index f290630..06dab3a 100644
--- a/tests/xenserver/models/compute/pools_tests.rb
+++ b/tests/xenserver/models/compute/pools_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | Pools collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The pools collection') do
     pools = conn.pools.all
 
@@ -10,9 +10,9 @@ Shindo.tests('Fog::Compute[:xenserver] | Pools collection', ['xenserver']) do
     test('should be a kind of Fog::Compute::XenServer::Pools') { pools.kind_of? Fog::Compute::XenServer::Pools }
 
     tests('should be an array of Fog::Compute::XenServer::Pool') do
-      pools.each do |p| 
+      pools.each do |p|
         test("#{p.uuid} is a Fog::Compute::XenServer::Pool") {
-          p.is_a? Fog::Compute::XenServer::Pool 
+          p.is_a? Fog::Compute::XenServer::Pool
         }
       end
     end
@@ -20,7 +20,7 @@ Shindo.tests('Fog::Compute[:xenserver] | Pools collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { pools.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         pools.get(pools.first.reference).is_a? Fog::Compute::XenServer::Pool
       }
     end
diff --git a/tests/xenserver/models/compute/server_tests.rb b/tests/xenserver/models/compute/server_tests.rb
index eeb3f66..aef6126 100644
--- a/tests/xenserver/models/compute/server_tests.rb
+++ b/tests/xenserver/models/compute/server_tests.rb
@@ -7,7 +7,7 @@ Shindo.tests('Fog::Compute[:xenserver] | server model', ['xenserver']) do
   (servers.all :name_matches => test_ephemeral_vm_name).each do |s|
     s.destroy
   end
-  (servers.templates.find_all { |t| t.name == test_ephemeral_vm_name}).each do |s|
+  (servers.templates.select { |t| t.name == test_ephemeral_vm_name}).each do |s|
     s.destroy
   end
 
@@ -70,7 +70,7 @@ Shindo.tests('Fog::Compute[:xenserver] | server model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/xenserver/models/compute/servers_tests.rb b/tests/xenserver/models/compute/servers_tests.rb
index b5980a7..c820ae9 100644
--- a/tests/xenserver/models/compute/servers_tests.rb
+++ b/tests/xenserver/models/compute/servers_tests.rb
@@ -4,19 +4,19 @@ Shindo.tests('Fog::Compute[:xenserver] | servers collection', ['xenserver']) do
   destroy_ephemeral_servers
   servers = conn.servers
   templates = conn.servers.templates
-    
+
   tests('The servers collection') do
     servers = conn.servers.all
 
     test('should be empty') do
-      servers.empty? 
+      servers.empty?
     end
 
-    server = conn.servers.create(:name => test_ephemeral_vm_name, 
+    server = conn.servers.create(:name => test_ephemeral_vm_name,
                                  :template_name => test_template_name)
     test('should NOT be empty') do
       servers.reload
-      !servers.empty? 
+      !servers.empty?
     end
     server.destroy
 
@@ -46,14 +46,14 @@ Shindo.tests('Fog::Compute[:xenserver] | servers collection', ['xenserver']) do
           found = (s.name == test_template_name)
         end
         found
-      end 
+      end
       test("NOT include a #{test_template_name} template in built-in templates") do
         found = false
         servers.builtin_templates.each do |s|
           found = (s.name != test_template_name)
         end
         found
-      end 
+      end
       # This may fail in other test scenarios with more than one built-in template
       # present
       test("include only one custom template") { servers.custom_templates.size == 1 }
@@ -73,7 +73,7 @@ Shindo.tests('Fog::Compute[:xenserver] | servers collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { servers.reload }
 
     tests('should be able to get a model') do
-      server = conn.servers.create(:name => test_ephemeral_vm_name, 
+      server = conn.servers.create(:name => test_ephemeral_vm_name,
                                    :template_name => test_template_name)
       test('by name') { servers.get_by_name(test_ephemeral_vm_name).kind_of? Fog::Compute::XenServer::Server }
       test('by instance uuid') { servers.get_by_uuid(server.uuid).kind_of? Fog::Compute::XenServer::Server }
diff --git a/tests/xenserver/models/compute/storage_repositories_tests.rb b/tests/xenserver/models/compute/storage_repositories_tests.rb
index 16b2c42..41b4ca3 100644
--- a/tests/xenserver/models/compute/storage_repositories_tests.rb
+++ b/tests/xenserver/models/compute/storage_repositories_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | StorageRepositories collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The storage_repositories collection') do
     storage_repositories = conn.storage_repositories.all
 
@@ -10,9 +10,9 @@ Shindo.tests('Fog::Compute[:xenserver] | StorageRepositories collection', ['xens
     test('should be a kind of Fog::Compute::XenServer::StorageRepositories') { storage_repositories.kind_of? Fog::Compute::XenServer::StorageRepositories }
 
     tests('should be an array of Fog::Compute::XenServer::StorageRepository') do
-      storage_repositories.each do |p| 
+      storage_repositories.each do |p|
         test("#{p.uuid} is a Fog::Compute::XenServer::StorageRepository") {
-          p.is_a? Fog::Compute::XenServer::StorageRepository 
+          p.is_a? Fog::Compute::XenServer::StorageRepository
         }
       end
     end
@@ -20,7 +20,7 @@ Shindo.tests('Fog::Compute[:xenserver] | StorageRepositories collection', ['xens
     tests('should be able to reload itself').succeeds { storage_repositories.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         storage_repositories.get(storage_repositories.first.reference).is_a? Fog::Compute::XenServer::StorageRepository
       }
     end
diff --git a/tests/xenserver/models/compute/storage_repository_tests.rb b/tests/xenserver/models/compute/storage_repository_tests.rb
index cbe86ec..2783e32 100644
--- a/tests/xenserver/models/compute/storage_repository_tests.rb
+++ b/tests/xenserver/models/compute/storage_repository_tests.rb
@@ -13,7 +13,7 @@ Shindo.tests('Fog::Compute[:xenserver] | StorageRepository model', ['xenserver']
     end
     tests('have attributes') do
       model_attribute_hash = storage_repository.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :name,
         :uuid,
@@ -40,7 +40,7 @@ Shindo.tests('Fog::Compute[:xenserver] | StorageRepository model', ['xenserver']
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -51,14 +51,14 @@ Shindo.tests('Fog::Compute[:xenserver] | StorageRepository model', ['xenserver']
 
   tests("A real StorageRepository should") do
     tests("return a valid list of VDIs") do
-      storage_repository.vdis.each do |vdi| 
+      storage_repository.vdis.each do |vdi|
         test("where #{vdi.uuid} is a Fog::Compute::XenServer::VDI") {
           vdi.is_a? Fog::Compute::XenServer::VDI
         }
       end
     end
     tests("return a valid list of PBDs") do
-      storage_repository.pbds.each do |pbd| 
+      storage_repository.pbds.each do |pbd|
         test("where #{pbd.uuid} is a Fog::Compute::XenServer::PBD") {
           pbd.is_a? Fog::Compute::XenServer::PBD
         }
@@ -103,7 +103,7 @@ Shindo.tests('Fog::Compute[:xenserver] | StorageRepository model', ['xenserver']
   end
 
   tests('#destroy should') do
-    test('destroy existing FOG TEST SR') do 
+    test('destroy existing FOG TEST SR') do
       sr = (conn.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' })
       sr.pbds.each { |pbd| pbd.unplug }
       sr.destroy
diff --git a/tests/xenserver/models/compute/vbd_tests.rb b/tests/xenserver/models/compute/vbd_tests.rb
index aea94f6..e9fc1e9 100644
--- a/tests/xenserver/models/compute/vbd_tests.rb
+++ b/tests/xenserver/models/compute/vbd_tests.rb
@@ -15,7 +15,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VBD model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = vbd.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :currently_attached,
@@ -43,7 +43,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VBD model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -53,7 +53,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VBD model', ['xenserver']) do
   end
 
   tests("A real VBD should") do
-    test("have a valid OpaqueRef") do 
+    test("have a valid OpaqueRef") do
       puts vbd.reference
       (vbd.reference =~ /OpaqueRef:/).eql?(0) and \
         vbd.reference != "OpaqueRef:NULL"
@@ -80,14 +80,14 @@ Shindo.tests('Fog::Compute[:xenserver] | VBD model', ['xenserver']) do
       end
       test("return a nil VDI when type CD") do
         if vbd.type == 'CD'
-          vbd.vdi.nil? 
+          vbd.vdi.nil?
         else
           true
         end
       end
       test("return a VbdMetrics object when attached") do
         if vbd.currently_attached
-          vbd.metrics.kind_of? Fog::Compute::XenServer::VbdMetrics 
+          vbd.metrics.kind_of? Fog::Compute::XenServer::VbdMetrics
         else
           vbd.metrics.nil?
         end
@@ -111,5 +111,5 @@ Shindo.tests('Fog::Compute[:xenserver] | VBD model', ['xenserver']) do
   end
 
   destroy_ephemeral_servers
-  
+
 end
diff --git a/tests/xenserver/models/compute/vbds_tests.rb b/tests/xenserver/models/compute/vbds_tests.rb
index 96798dd..da60368 100644
--- a/tests/xenserver/models/compute/vbds_tests.rb
+++ b/tests/xenserver/models/compute/vbds_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | VBDs collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The vbds collection') do
     vbds = conn.vbds.all
 
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VBDs collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { vbds.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         vbds.get(vbds.first.reference).is_a? Fog::Compute::XenServer::VBD
       }
     end
diff --git a/tests/xenserver/models/compute/vif_tests.rb b/tests/xenserver/models/compute/vif_tests.rb
index 3670e65..fc5ffb0 100644
--- a/tests/xenserver/models/compute/vif_tests.rb
+++ b/tests/xenserver/models/compute/vif_tests.rb
@@ -9,7 +9,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VIF model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = vif.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :mac,
         :uuid,
@@ -31,7 +31,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VIF model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
diff --git a/tests/xenserver/models/compute/vifs_tests.rb b/tests/xenserver/models/compute/vifs_tests.rb
index 69c0af6..2e7c821 100644
--- a/tests/xenserver/models/compute/vifs_tests.rb
+++ b/tests/xenserver/models/compute/vifs_tests.rb
@@ -1,7 +1,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | VIFs collection', ['xenserver']) do
 
   conn = Fog::Compute[:xenserver]
-  
+
   tests('The vifs collection') do
     vifs = conn.vifs.all
 
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VIFs collection', ['xenserver']) do
     tests('should be able to reload itself').succeeds { vifs.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         vifs.get(vifs.first.reference).is_a? Fog::Compute::XenServer::VIF
       }
     end
diff --git a/tests/xenserver/models/compute/vlan_tests.rb b/tests/xenserver/models/compute/vlan_tests.rb
index 7b1e751..9a4691f 100644
--- a/tests/xenserver/models/compute/vlan_tests.rb
+++ b/tests/xenserver/models/compute/vlan_tests.rb
@@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VLAN model', ['xenserver']) do
     end
     tests('have attributes') do
       model_attribute_hash = vlan.attributes
-      attributes = [ 
+      attributes = [
         :reference,
         :uuid,
         :__untagged_pif,
@@ -26,7 +26,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VLAN model', ['xenserver']) do
       end
       tests("The attributes hash should have key") do
         attributes.each do |attribute|
-          test("#{attribute}") { model_attribute_hash.has_key? attribute }
+          test("#{attribute}") { model_attribute_hash.key? attribute }
         end
       end
     end
@@ -60,7 +60,7 @@ Shindo.tests('Fog::Compute[:xenserver] | VLAN model', ['xenserver']) do
       (vlans.reload.find { |v| v.reference == @vlan.reference }).nil?
     end
   end
-  
+
   tests("#tagged_pif") do
     test 'should return a PIF' do
       vlans.find.first.tagged_pif.is_a? Fog::Compute::XenServer::PIF
diff --git a/tests/xenserver/models/compute/vlans_tests.rb b/tests/xenserver/models/compute/vlans_tests.rb
index 3050693..adf1eab 100644
--- a/tests/xenserver/models/compute/vlans_tests.rb
+++ b/tests/xenserver/models/compute/vlans_tests.rb
@@ -1,19 +1,19 @@
 Shindo.tests('Fog::Compute[:xenserver] | Vlans collection', ['xenserver']) do
 
   service = Fog::Compute[:xenserver]
-  
+
   tests('The Vlans collection') do
 
     test('should not be empty') { !service.vlans.empty? }
 
-    test('should be a kind of Fog::Compute::XenServer::Vlans') do 
+    test('should be a kind of Fog::Compute::XenServer::Vlans') do
       service.vlans.kind_of? Fog::Compute::XenServer::Vlans
     end
 
     tests('should be able to reload itself').succeeds { service.vlans.reload }
 
     tests('should be able to get a model') do
-      tests('by reference').succeeds { 
+      tests('by reference').succeeds {
         service.vlans.get(service.vlans.first.reference).is_a? \
           Fog::Compute::XenServer::VLAN
       }
diff --git a/tests/xenserver/requests/compute/clone_server_tests.rb b/tests/xenserver/requests/compute/clone_server_tests.rb
index 52c1329..0868ac1 100644
--- a/tests/xenserver/requests/compute/clone_server_tests.rb
+++ b/tests/xenserver/requests/compute/clone_server_tests.rb
@@ -25,7 +25,7 @@ Shindo.tests('Fog::Compute[:xenserver] | clone_server request', ['xenserver']) d
       (ref =~ /OpaqueRef:/) == 0 and !(servers.custom_templates.find { |s| s.reference == ref }).nil?
     end
   end
-  
+
   tests('The expected options') do
     raises(ArgumentError, 'raises ArgumentError when ref,class missing') { compute.clone_server }
   end
diff --git a/tests/xenserver/requests/compute/create_network_tests.rb b/tests/xenserver/requests/compute/create_network_tests.rb
index 6df753d..9bc9193 100644
--- a/tests/xenserver/requests/compute/create_network_tests.rb
+++ b/tests/xenserver/requests/compute/create_network_tests.rb
@@ -16,5 +16,5 @@ Shindo.tests('Fog::Compute[:xenserver] | create_network request', ['xenserver'])
   end
 
   compute.destroy_network @ref
-  
+
 end
diff --git a/tests/xenserver/requests/compute/create_server_tests.rb b/tests/xenserver/requests/compute/create_server_tests.rb
index 1192ac4..e1dc922 100644
--- a/tests/xenserver/requests/compute/create_server_tests.rb
+++ b/tests/xenserver/requests/compute/create_server_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_server request', ['xenserver'])
   (servers.all :name_matches => test_ephemeral_vm_name).each do |s|
     s.destroy
   end
-  (servers.templates.find_all { |t| t.name == test_ephemeral_vm_name}).each do |s|
+  (servers.templates.select { |t| t.name == test_ephemeral_vm_name}).each do |s|
     s.destroy
   end
 
@@ -24,7 +24,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_server request', ['xenserver'])
       end
     end
   end
-  
+
   tests('get_vm_by_name should') do
     test('return a valid OpaqueRef') do
       (compute.get_vm_by_name(test_template_name) =~ /OpaqueRef:/) and \
@@ -86,7 +86,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_server request', ['xenserver'])
       (compute.servers.get ref).vcpus_max == '1'
     end
     tests('set lowercase hash attributes') do
-      %w{ 
+      %w{
         VCPUs_params
         HVM_boot_params
       }.each do |a|
@@ -100,10 +100,10 @@ Shindo.tests('Fog::Compute[:xenserver] | create_server request', ['xenserver'])
           )
           eval "(compute.servers.get ref).#{a.to_s.downcase}['foo'] == 'bar'"
         end
-      end 
+      end
       %w{ VCPUs_at_startup
-          VCPUs_max 
-          PV_bootloader_args 
+          VCPUs_max
+          PV_bootloader_args
           PV_bootloader
           PV_kernel
           PV_ramdisk
@@ -119,7 +119,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_server request', ['xenserver'])
           )
           eval "(compute.servers.get ref).#{a.to_s.downcase} == '1'"
         end
-      end 
+      end
     end
   end
 
diff --git a/tests/xenserver/requests/compute/create_sr_tests.rb b/tests/xenserver/requests/compute/create_sr_tests.rb
index 18865d1..41c8405 100644
--- a/tests/xenserver/requests/compute/create_sr_tests.rb
+++ b/tests/xenserver/requests/compute/create_sr_tests.rb
@@ -11,7 +11,7 @@
 Shindo.tests('Fog::Compute[:xenserver] | create_sr request', ['xenserver']) do
 
   compute = Fog::Compute[:xenserver]
-  
+
   tests('#create_sr "FOG TEST SR" with device /dev/sdb') do
     test('create an EXT SR') do
       ref = compute.create_sr compute.hosts.first.reference,
diff --git a/tests/xenserver/requests/compute/create_vdi_tests.rb b/tests/xenserver/requests/compute/create_vdi_tests.rb
index f069aee..a3b251d 100644
--- a/tests/xenserver/requests/compute/create_vdi_tests.rb
+++ b/tests/xenserver/requests/compute/create_vdi_tests.rb
@@ -2,54 +2,54 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vdi request', ['xenserver']) do
 
   compute = Fog::Compute[:xenserver]
   sr = compute.storage_repositories.find { |sr| sr.name == 'Local storage' }
-  
+
   tests('create_vdi should') do
     raises(ArgumentError, 'raise ArgumentError if virtual_size is no specified') do
-      ref = compute.create_vdi( { 
-        :storage_repository => sr, 
+      ref = compute.create_vdi( {
+        :storage_repository => sr,
         :name => 'foovdi',
         :type => 'system',
         :read_only => false,
         :sharable => false,
-        :other_config => {} 
+        :other_config => {}
       } )
     end
     raises(ArgumentError, 'raise ArgumentError if type is no specified') do
-      ref = compute.create_vdi( { 
-        :storage_repository => sr, 
+      ref = compute.create_vdi( {
+        :storage_repository => sr,
         :name => 'foovdi',
         :virtual_size => '8589934592',
         :read_only => false,
         :sharable => false,
-        :other_config => {} 
+        :other_config => {}
       } )
       valid_ref? ref
     end
     raises(ArgumentError, 'raise ArgumentError if read_only is no specified') do
-      ref = compute.create_vdi( { 
-        :storage_repository => sr, 
+      ref = compute.create_vdi( {
+        :storage_repository => sr,
         :name => 'foovdi',
         :virtual_size => '8589934592',
         :type => 'system',
         :sharable => false,
-        :other_config => {} 
+        :other_config => {}
       } )
       valid_ref? ref
     end
     raises(ArgumentError, 'raise ArgumentError if sharable is no specified') do
-      ref = compute.create_vdi( { 
-        :storage_repository => sr, 
+      ref = compute.create_vdi( {
+        :storage_repository => sr,
         :name => 'foovdi',
         :virtual_size => '8589934592',
         :type => 'system',
         :read_only => false,
-        :other_config => {} 
+        :other_config => {}
       } )
       valid_ref? ref
     end
     raises(ArgumentError, 'raise ArgumentError if other_config is no specified') do
-      ref = compute.create_vdi( { 
-        :storage_repository => sr, 
+      ref = compute.create_vdi( {
+        :storage_repository => sr,
         :name => 'foovdi',
         :virtual_size => '8589934592',
         :type => 'system',
@@ -59,21 +59,21 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vdi request', ['xenserver']) do
       valid_ref? ref
     end
     test('create a VDI') do
-      ref = compute.create_vdi( { 
-        :storage_repository => sr, 
+      ref = compute.create_vdi( {
+        :storage_repository => sr,
         :name => 'foovdi',
         :virtual_size => '8589934592',
         :type => 'system',
         :read_only => false,
         :sharable => false,
-        :other_config => {} 
+        :other_config => {}
       } )
       valid_ref? ref
     end
   end
 
   compute.vdis.each { |vdi| vdi.destroy if vdi.name == 'foovdi' }
-  
+
   tests('The expected options') do
     raises(ArgumentError, 'raises ArgumentError when vm_ref,net_ref missing') { compute.create_vdi }
   end
diff --git a/tests/xenserver/requests/compute/create_vif_tests.rb b/tests/xenserver/requests/compute/create_vif_tests.rb
index 8b1d56a..3edc4f6 100644
--- a/tests/xenserver/requests/compute/create_vif_tests.rb
+++ b/tests/xenserver/requests/compute/create_vif_tests.rb
@@ -6,7 +6,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vif request', ['xenserver']) do
   (servers.all :name_matches => test_ephemeral_vm_name).each do |s|
     s.destroy
   end
-  
+
   tests('create_vif should') do
     vm_ref = compute.create_server test_ephemeral_vm_name, test_template_name
     ref = compute.create_vif vm_ref, compute.networks.first.reference
@@ -34,7 +34,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vif request', ['xenserver']) do
         !(s.vifs.find { |vif| vif.reference == ref }).nil?
     end
   end
-  
+
   tests('create_vif_custom should') do
     vm_ref = compute.create_server test_ephemeral_vm_name, test_template_name
     network_ref = compute.networks.first.reference
@@ -81,7 +81,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vif request', ['xenserver']) do
       vif.mac == '11:22:33:44:55:66'
     end
   end
-  
+
   tests('The expected options') do
     raises(ArgumentError, 'raises ArgumentError when vm_ref,net_ref missing') { compute.create_vif }
   end
diff --git a/tests/xenserver/requests/compute/create_vlan_tests.rb b/tests/xenserver/requests/compute/create_vlan_tests.rb
index 23dd8f7..8ee4d5b 100644
--- a/tests/xenserver/requests/compute/create_vlan_tests.rb
+++ b/tests/xenserver/requests/compute/create_vlan_tests.rb
@@ -16,7 +16,7 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vlan request', ['xenserver']) do
       @ref.start_with? "OpaqueRef"
     end
   end
-  
+
   tests('failure') do
     test('#create_vlan duplicated') do
       raises = false
@@ -32,5 +32,5 @@ Shindo.tests('Fog::Compute[:xenserver] | create_vlan request', ['xenserver']) do
 
   compute.destroy_vlan @ref
   @net.destroy
-  
+
 end
diff --git a/tests/xenserver/requests/compute/destroy_network_tests.rb b/tests/xenserver/requests/compute/destroy_network_tests.rb
index d2ac39e..293d2ee 100644
--- a/tests/xenserver/requests/compute/destroy_network_tests.rb
+++ b/tests/xenserver/requests/compute/destroy_network_tests.rb
@@ -9,5 +9,5 @@ Shindo.tests('Fog::Compute[:xenserver] | destroy_network request', ['xenserver']
       (compute.networks.find { |n| n.reference == @ref }).nil?
     end
   end
-  
+
 end
diff --git a/tests/xenserver/requests/compute/destroy_sr_tests.rb b/tests/xenserver/requests/compute/destroy_sr_tests.rb
index 0dc22c6..37bdd40 100644
--- a/tests/xenserver/requests/compute/destroy_sr_tests.rb
+++ b/tests/xenserver/requests/compute/destroy_sr_tests.rb
@@ -21,7 +21,7 @@ Shindo.tests('Fog::Compute[:xenserver] | destroy_sr request', ['xenserver']) do
                          'user',
                          false,
                          {}
-  
+
   tests('#destroy_sr') do
     test('destroyed "FOG TEST SR"') do
       compute.storage_repositories.each do |sr|
@@ -32,7 +32,7 @@ Shindo.tests('Fog::Compute[:xenserver] | destroy_sr request', ['xenserver']) do
       (compute.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }).nil?
     end
 
-    raises(Fog::XenServer::RequestFailed, 
+    raises(Fog::XenServer::RequestFailed,
            'raises HandleInvalid trying to destroy it twice') do
       compute.destroy_sr ref
     end
diff --git a/tests/xenserver/requests/compute/destroy_vdi_tests.rb b/tests/xenserver/requests/compute/destroy_vdi_tests.rb
index 901b94f..1278fab 100644
--- a/tests/xenserver/requests/compute/destroy_vdi_tests.rb
+++ b/tests/xenserver/requests/compute/destroy_vdi_tests.rb
@@ -4,17 +4,17 @@ Shindo.tests('Fog::Compute[:xenserver] | destroy_vdi request', ['xenserver']) do
   sr = compute.storage_repositories.find { |sr| sr.name == 'Local storage' }
 
   tests('destroy_vdi should') do
-    ref = compute.create_vdi( { 
-      :storage_repository => sr, 
+    ref = compute.create_vdi( {
+      :storage_repository => sr,
       :name => 'foovdi',
       :virtual_size => '8589934592',
       :type => 'system',
       :read_only => false,
       :sharable => false,
-      :other_config => {} 
+      :other_config => {}
     } )
     raises(Fog::XenServer::RequestFailed, 'destroy it') do
-      compute.destroy_vdi ref 
+      compute.destroy_vdi ref
       compute.vdis.get ref
     end
   end
diff --git a/tests/xenserver/requests/compute/destroy_vlan_tests.rb b/tests/xenserver/requests/compute/destroy_vlan_tests.rb
index ca3f9f4..3475c1b 100644
--- a/tests/xenserver/requests/compute/destroy_vlan_tests.rb
+++ b/tests/xenserver/requests/compute/destroy_vlan_tests.rb
@@ -17,7 +17,7 @@ Shindo.tests('Fog::Compute[:xenserver] | destroy_vlan request', ['xenserver']) d
       (compute.vlans.reload.find { |v| v.reference == @ref }).nil?
     end
   end
-  
+
   tests('failure') do
     test('#destroy_vlan invalid') do
       raises = false
@@ -32,5 +32,5 @@ Shindo.tests('Fog::Compute[:xenserver] | destroy_vlan request', ['xenserver']) d
   end
 
   @net.destroy
-  
+
 end
diff --git a/tests/xenserver/requests/compute/disable_host_tests.rb b/tests/xenserver/requests/compute/disable_host_tests.rb
index 914d98d..74e8133 100644
--- a/tests/xenserver/requests/compute/disable_host_tests.rb
+++ b/tests/xenserver/requests/compute/disable_host_tests.rb
@@ -2,7 +2,7 @@ Shindo.tests('Fog::Compute[:xenserver] | disable_host request', ['xenserver']) d
 
   compute = Fog::Compute[:xenserver]
   host = compute.hosts.first
-  
+
   tests('#disable_host') do
     test('disables the host') do
       compute.disable_host host.reference
@@ -11,6 +11,6 @@ Shindo.tests('Fog::Compute[:xenserver] | disable_host request', ['xenserver']) d
     end
   end
 
-  # Cleanup 
+  # Cleanup
   host.enable
 end
diff --git a/tests/xenserver/requests/compute/enable_host_tests.rb b/tests/xenserver/requests/compute/enable_host_tests.rb
index aa6d6e4..26289ea 100644
--- a/tests/xenserver/requests/compute/enable_host_tests.rb
+++ b/tests/xenserver/requests/compute/enable_host_tests.rb
@@ -2,7 +2,7 @@ Shindo.tests('Fog::Compute[:xenserver] | enable_host request', ['xenserver']) do
 
   compute = Fog::Compute[:xenserver]
   host = compute.hosts.first
-  
+
   tests('#enable_host') do
     test('enables the host') do
       compute.enable_host host.reference
@@ -11,6 +11,6 @@ Shindo.tests('Fog::Compute[:xenserver] | enable_host request', ['xenserver']) do
     end
   end
 
-  # Cleanup 
+  # Cleanup
   host.enable
 end
diff --git a/tests/xenserver/requests/compute/get_record_tests.rb b/tests/xenserver/requests/compute/get_record_tests.rb
index d1797c4..e3ad40c 100644
--- a/tests/xenserver/requests/compute/get_record_tests.rb
+++ b/tests/xenserver/requests/compute/get_record_tests.rb
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Compute[:xenserver] | get_record request', ['xenserver']) do
       response = compute.get_record(vm_ref, 'VM')
     end
   end
-  
+
   tests('The expected options') do
     raises(ArgumentError, 'raises ArgumentError when ref,class missing') { compute.get_record }
   end
diff --git a/tests/xenserver/requests/compute/set_attribute_tests.rb b/tests/xenserver/requests/compute/set_attribute_tests.rb
index 3d046fa..18bb9f1 100644
--- a/tests/xenserver/requests/compute/set_attribute_tests.rb
+++ b/tests/xenserver/requests/compute/set_attribute_tests.rb
@@ -28,8 +28,8 @@ Shindo.tests('Fog::Compute[:xenserver] | set_attribute request', ['xenserver'])
       server = create_ephemeral_server
       server.stop 'hard'
       server.wait_for { not running? }
-      response = connection.set_attribute('VM', 
-                                          server.reference, 
+      response = connection.set_attribute('VM',
+                                          server.reference,
                                           'memory_limits',
                                           '1073741824',
                                           '1073741824',
@@ -40,7 +40,7 @@ Shindo.tests('Fog::Compute[:xenserver] | set_attribute request', ['xenserver'])
       (server.memory_dynamic_max == "1073741824") and \
         (server.memory_dynamic_min == "1073741824") and \
         (server.memory_static_max == "1073741824") and \
-        (server.memory_static_min == "1073741824") 
+        (server.memory_static_min == "1073741824")
 
       server.start
     end
diff --git a/tests/xenserver/requests/compute/unplug_pbd_tests.rb b/tests/xenserver/requests/compute/unplug_pbd_tests.rb
index c0f4f5c..fc9e4ef 100644
--- a/tests/xenserver/requests/compute/unplug_pbd_tests.rb
+++ b/tests/xenserver/requests/compute/unplug_pbd_tests.rb
@@ -22,7 +22,7 @@ Shindo.tests('Fog::Compute[:xenserver] | unplug_pbd request', ['xenserver']) do
                          'user',
                          false,
                          {}
-  
+
   tests('#unplug_pbd') do
     test('unplugged') do
       sr = compute.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }
@@ -37,7 +37,7 @@ Shindo.tests('Fog::Compute[:xenserver] | unplug_pbd request', ['xenserver']) do
     raises(ArgumentError, 'raises ArgumentError when arguments missing') \
       { compute.unplug_pbd }
   end
-  
+
   # Clean-up
   compute.storage_repositories.each do |sr|
     next unless sr.name == 'FOG TEST SR'
diff --git a/tests/xenserver/xenserver_tests.rb b/tests/xenserver/xenserver_tests.rb
index 9ef6e2f..0907fcf 100644
--- a/tests/xenserver/xenserver_tests.rb
+++ b/tests/xenserver/xenserver_tests.rb
@@ -31,4 +31,3 @@ Shindo.tests('Fog::Compute[:xenserver]', ['xenserver']) do
   end
 
 end
-
diff --git a/tests/zerigo/requests/dns/dns_tests.rb b/tests/zerigo/requests/dns/dns_tests.rb
index b012582..f5eb8a4 100644
--- a/tests/zerigo/requests/dns/dns_tests.rb
+++ b/tests/zerigo/requests/dns/dns_tests.rb
@@ -10,7 +10,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
   def generate_unique_domain( with_trailing_dot = false)
     #get time (with 1/100th of sec accuracy)
     #want unique domain name and if provider is fast, this can be called more than once per second
-    time= (Time.now.to_f * 100).to_i   
+    time= (Time.now.to_f * 100).to_i
     domain = 'test-' + time.to_s + '.com'
     if with_trailing_dot
       domain+= '.'
@@ -44,7 +44,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         #worked so can now delete
         response = Fog::DNS[:zerigo].delete_zone( zone_id)
       end
-      
+
       response.status == 200
     end
 
@@ -59,7 +59,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         #worked so can now delete
         response = Fog::DNS[:zerigo].delete_zone( zone_id)
       end
-      
+
       response.status == 200
     end
 
@@ -77,19 +77,19 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
 
       response.status == 200
     end
-    
+
     test('create zone - set all parameters') do
       pending if Fog.mocking?
 
       @domain = generate_unique_domain
-      options = { :nx_ttl => 1800, :active => 'N', :hostmaster => "netops@#{@domain}", 
+      options = { :nx_ttl => 1800, :active => 'N', :hostmaster => "netops@#{@domain}",
                   :notes => 'for client ABC', :tag_list=> 'sample-tag' }
       response = Fog::DNS[:zerigo].create_zone( @domain, 14400, 'pri', options )
       if response.status == 201
         @zone_id = response.body['id']
         @new_zones << @zone_id
       end
-      
+
       response.status == 201
     end
 
@@ -97,14 +97,14 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       response = Fog::DNS[:zerigo].get_zone( @zone_id)
       if response.status == 200
         zone = response.body
-        if (zone['ns-type'] == 'pri') and (zone['tag-list'] == 'sample-tag') and 
+        if (zone['ns-type'] == 'pri') and (zone['tag-list'] == 'sample-tag') and
             (zone['default-ttl'] == 14400) and (zone['nx-ttl'] == 1800) and
-            (zone['updated-at'].length > 0) and (zone['created-at'].length > 0) and 
-            (zone['domain'] == @domain) and (zone['notes'] == 'for client ABC') and 
+            (zone['updated-at'].length > 0) and (zone['created-at'].length > 0) and
+            (zone['domain'] == @domain) and (zone['notes'] == 'for client ABC') and
             (zone['id'] == @zone_id)
             result = true
         end
@@ -112,13 +112,13 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         result
       end
     end
-    
+
     test("update zone #{@zone_id} - set notes & tags") do
       pending if Fog.mocking?
-      
+
       options = { :notes => 'for client XYZ', :tag_list=> 'testing-tag' }
       response = Fog::DNS[:zerigo].update_zone( @zone_id, options )
-      
+
       response.status == 200
     end
 
@@ -126,23 +126,23 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
       pending if Fog.mocking?
 
       result= false
-      
+
       response = Fog::DNS[:zerigo].get_zone( @zone_id)
       if response.status == 200
         zone = response.body
-        if (zone['tag-list'] == 'testing-tag') and (zone['notes'] == 'for client XYZ') 
+        if (zone['tag-list'] == 'testing-tag') and (zone['notes'] == 'for client XYZ')
             result = true
         end
 
         result
       end
     end
-    
-    test("get zone stats for #{@zone_id}") do 
+
+    test("get zone stats for #{@zone_id}") do
       pending if Fog.mocking?
 
       result= false
-      
+
       response = Fog::DNS[:zerigo].get_zone_stats( @zone_id)
       if response.status == 200
         zone = response.body
@@ -150,12 +150,12 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
            (zone['period-begin'].length > 0) and (zone['period-end'].length > 0)
           result= true
         end
-        
+
         result
       end
 
     end
-    
+
     test("list zones - make sure total count is #{@org_zone_count+1}") do
       pending if Fog.mocking?
 
@@ -171,17 +171,17 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
 
       result
     end
-    
+
     test('list zones with pagination') do
       pending if Fog.mocking?
-    
+
       result = false
-      
+
       # make enough zones to paginate
       number_zones_to_create = MAX_ZONE_COUNT- at org_zone_count-1
       number_zones_to_create.times do |i|
         domain = generate_unique_domain
-        options = { :nx_ttl => 1800, :active => 'N', :hostmaster => "netops@#{domain}", 
+        options = { :nx_ttl => 1800, :active => 'N', :hostmaster => "netops@#{domain}",
                     :notes => 'for client ABC', :tag_list=> "sample-tag-#{i}" }
         response = Fog::DNS[:zerigo].create_zone( domain, 14400, 'pri', options )
         if response.status == 201
@@ -197,7 +197,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
           zones_we_should_see = @new_zones.dup
           total_zone_count = total_zone_count_response.headers['X-Query-Count'].to_i
         else
-          zones_we_should_see = total_zone_count_response.body['zones'].collect {|z| z['id']}
+          zones_we_should_see = total_zone_count_response.body['zones'].map {|z| z['id']}
           total_zone_count = zones_we_should_see.count
         end
 
@@ -209,15 +209,15 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
             zones_we_should_see.delete(zones.first['id'])
           end
         end
-        
+
         if zones_we_should_see.empty?
           result = true
         end
       end
-    
+
       result
     end
-    
+
     test('create record - simple A record') do
       pending if Fog.mocking?
 
@@ -228,13 +228,13 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         record_id = response.body['id']
         @new_records << record_id
       end
-      
+
       response.status == 201
     end
-  
+
     test('create record - CNAME record') do
       pending if Fog.mocking?
-      
+
       host = 'mail'
       options = { :hostname => host }
       response = Fog::DNS[:zerigo].create_host( @zone_id, 'CNAME', @domain, options)
@@ -242,7 +242,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         record_id = response.body['id']
         @new_records << record_id
       end
-      
+
       response.status == 201
     end
 
@@ -260,7 +260,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         record_id = response.body['id']
         @new_records << record_id
       end
-      
+
       response.status == 201
     end
 
@@ -274,15 +274,15 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
         @record_id = response.body['id']
         @new_records << @record_id
       end
-      
+
       response.status == 201
     end
-        
+
     test("get host #{@record_id}") do
       pending if Fog.mocking?
 
       result = false
-      
+
       response = Fog::DNS[:zerigo].get_host( @record_id)
       if response.status == 200
         host = response.body
@@ -291,7 +291,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
           result = true
         end
       end
-      
+
       result
     end
 
@@ -299,7 +299,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
       pending if Fog.mocking?
 
       result = false
-      
+
       options = { :priority => 7 }
       response = Fog::DNS[:zerigo].update_host( @record_id, options)
       if response.status == 200
@@ -311,7 +311,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
           end
         end
       end
-              
+
       result
     end
 
@@ -323,36 +323,57 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
       if response.status == 200
         host_count = response.body['count']
       end
-      
+
       host_count == 4
     end
 
-    test('list host records') do
+    test("list host records") do
       pending if Fog.mocking?
 
       result = false
-      
+
       response = Fog::DNS[:zerigo].list_hosts( @zone_id)
       if response.status == 200
-        hosts = response.body['hosts']
+        hosts = response.body["hosts"]
         if (hosts.count == 4)
           hosts.each { |host|
-            if (host['id'] > 0) and (host['fqdn'].length > 0) and (host['host-type'].length > 0) and
-               (host['created-at'].length > 0) and (host['updated-at'].length > 0)
+            if (host["id"] > 0) and (host["fqdn"].length > 0) and (host["host-type"].length > 0) and
+               (host["created-at"].length > 0) and (host["updated-at"].length > 0)
               result = true
             end
           }
         end
-      end      
-      
+      end
+
       result
     end
-  
+
+    test("list host records with options") do
+      pending if Fog.mocking?
+
+      result = false
+
+      response = Fog::DNS[:zerigo].list_hosts(@zone_id, {:per_page=>2, :page=>1})
+      if response.status == 200
+        hosts = response.body["hosts"]
+        if (hosts.count == 2)
+          hosts.each { |host|
+            if (host["id"] > 0) and (host["fqdn"].length > 0) and (host["host-type"].length > 0) and
+               (host["created-at"].length > 0) and (host["updated-at"].length > 0)
+              result = true
+            end
+          }
+        end
+      end
+
+      result
+    end
+
     test("find host: mail.#{@domain}") do
       pending if Fog.mocking?
 
       result = false
-      
+
       host = 'mail.' + @domain
       response = Fog::DNS[:zerigo].find_hosts( host)
       if response.status == 200
@@ -362,7 +383,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
           result = true
         end
       end
-      
+
       result
     end
 
@@ -370,7 +391,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
       pending if Fog.mocking?
 
       result = false
-      
+
       host = 'mail.' + @domain
       response = Fog::DNS[:zerigo].find_hosts( host, @zone_id)
       if response.status == 200
@@ -380,7 +401,7 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
           result = true
         end
       end
-      
+
       result
     end
 
@@ -410,10 +431,10 @@ Shindo.tests('Fog::DNS[:zerigo] | DNS requests', ['zerigo', 'dns']) do
       }
       result
     end
-        
+
   end
-  
+
   tests( 'failure') do
   end
-  
+
 end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-fog.git



More information about the Pkg-ruby-extras-commits mailing list