fog 1.38.0 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +13 -3
- data/CHANGELOG.md +66 -0
- data/Gemfile +1 -1
- data/LICENSE.md +1 -1
- data/README.md +13 -0
- data/fog.gemspec +27 -6
- data/gemfiles/Gemfile-1.9 +16 -0
- data/gemfiles/Gemfile-2.0 +11 -0
- data/gemfiles/Gemfile-edge +1 -1
- data/gemfiles/Gemfile-edge-1.9 +20 -0
- data/gemfiles/Gemfile-edge-2.0 +16 -0
- data/lib/fog.rb +0 -1
- data/lib/fog/bin.rb +0 -1
- data/lib/fog/cloudsigma/compute.rb +9 -0
- data/lib/fog/cloudsigma/models/server.rb +5 -0
- data/lib/fog/cloudsigma/models/snapshot.rb +77 -0
- data/lib/fog/cloudsigma/models/snapshots.rb +26 -0
- data/lib/fog/cloudsigma/models/volume.rb +15 -0
- data/lib/fog/cloudsigma/requests/clone_snapshot.rb +31 -0
- data/lib/fog/cloudsigma/requests/create_snapshot.rb +27 -0
- data/lib/fog/cloudsigma/requests/delete_snapshot.rb +17 -0
- data/lib/fog/cloudsigma/requests/get_snapshot.rb +17 -0
- data/lib/fog/cloudsigma/requests/list_snapshots.rb +17 -0
- data/lib/fog/cloudsigma/requests/stop_server.rb +5 -4
- data/lib/fog/cloudsigma/requests/update_snapshot.rb +17 -0
- data/lib/fog/cloudstack/core.rb +2 -0
- data/lib/fog/joyent/compute.rb +4 -16
- data/lib/fog/opennebula/README.md +0 -0
- data/lib/fog/opennebula/compute.rb +90 -19
- data/lib/fog/opennebula/models/compute/server.rb +9 -1
- data/lib/fog/opennebula/requests/compute/image_pool.rb +0 -1
- data/lib/fog/opennebula/requests/compute/list_vms.rb +8 -26
- data/lib/fog/opennebula/requests/compute/template_pool.rb +8 -29
- data/lib/fog/opennebula/requests/compute/vm_allocate.rb +24 -15
- data/lib/fog/opennebula/requests/compute/vm_destroy.rb +13 -4
- data/lib/fog/opennebula/requests/compute/vm_disk_snapshot.rb +8 -2
- data/lib/fog/opennebula/requests/compute/vm_resume.rb +13 -23
- data/lib/fog/opennebula/requests/compute/vm_shutdown.rb +1 -1
- data/lib/fog/opennebula/requests/compute/vm_stop.rb +3 -10
- data/lib/fog/opennebula/requests/compute/vm_suspend.rb +31 -0
- data/lib/fog/ovirt/compute.rb +4 -0
- data/lib/fog/ovirt/models/compute/instance_type.rb +39 -0
- data/lib/fog/ovirt/models/compute/instance_types.rb +20 -0
- data/lib/fog/ovirt/models/compute/server.rb +1 -0
- data/lib/fog/ovirt/requests/compute/get_instance_type.rb +17 -0
- data/lib/fog/ovirt/requests/compute/list_instance_types.rb +19 -0
- data/lib/fog/ovirt/requests/compute/mock_files/instance_type.xml +42 -0
- data/lib/fog/ovirt/requests/compute/mock_files/instance_types.xml +197 -0
- data/lib/fog/rage4/dns.rb +1 -0
- data/lib/fog/rage4/requests/dns/bulk_update_records.rb +38 -0
- data/lib/fog/vcloud_director/compute.rb +1 -0
- data/lib/fog/vcloud_director/generators/compute/compose_common.rb +17 -16
- data/lib/fog/vcloud_director/generators/compute/create_snapshot.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_snapshot.rb +21 -0
- data/lib/fog/version.rb +1 -1
- data/lib/tasks/changelog_task.rb +4 -4
- data/spec/fog/bin/dnsimple_spec.rb +2 -2
- data/spec/fog/bin_spec.rb +3 -6
- data/tests/cloudsigma/models/snapshot_tests.rb +23 -0
- data/tests/cloudsigma/models/snapshots_tests.rb +15 -0
- data/tests/cloudsigma/models/volume_tests.rb +3 -3
- data/tests/cloudsigma/requests/server_tests.rb +10 -10
- data/tests/cloudsigma/requests/snapshots_tests.rb +83 -0
- data/tests/cloudsigma/requests/volumes_tests.rb +12 -11
- data/tests/compute/helper.rb +0 -19
- data/tests/helpers/mock_helper.rb +0 -4
- data/tests/opennebula/models/compute/flavor_tests.rb +2 -2
- data/tests/opennebula/models/compute/network_tests.rb +1 -2
- data/tests/opennebula/requests/compute/vm_allocate_tests.rb +20 -3
- data/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb +52 -0
- data/tests/rage4/requests/dns/dns_tests.rb +12 -0
- data/tests/storage/helper.rb +0 -6
- metadata +101 -389
- data/lib/fog/bin/digitalocean.rb +0 -29
- data/lib/fog/bin/dnsimple.rb +0 -29
- data/lib/fog/bin/ninefold.rb +0 -34
- data/lib/fog/digitalocean.rb +0 -1
- data/lib/fog/digitalocean/CHANGELOG.md +0 -6
- data/lib/fog/digitalocean/compute_v2.rb +0 -109
- data/lib/fog/digitalocean/core.rb +0 -9
- data/lib/fog/digitalocean/examples/getting_started.md +0 -124
- data/lib/fog/digitalocean/models/compute_v2/flavor.rb +0 -17
- data/lib/fog/digitalocean/models/compute_v2/flavors.rb +0 -21
- data/lib/fog/digitalocean/models/compute_v2/image.rb +0 -25
- data/lib/fog/digitalocean/models/compute_v2/images.rb +0 -42
- data/lib/fog/digitalocean/models/compute_v2/region.rb +0 -13
- data/lib/fog/digitalocean/models/compute_v2/regions.rb +0 -21
- data/lib/fog/digitalocean/models/compute_v2/server.rb +0 -170
- data/lib/fog/digitalocean/models/compute_v2/servers.rb +0 -43
- data/lib/fog/digitalocean/models/compute_v2/ssh_key.rb +0 -31
- data/lib/fog/digitalocean/models/compute_v2/ssh_keys.rb +0 -40
- data/lib/fog/digitalocean/models/paging_collection.rb +0 -41
- data/lib/fog/digitalocean/requests/compute_v2/change_kernel.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/convert_to_snapshot.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/create_server.rb +0 -93
- data/lib/fog/digitalocean/requests/compute_v2/create_ssh_key.rb +0 -49
- data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +0 -32
- data/lib/fog/digitalocean/requests/compute_v2/destroy_server.rb +0 -35
- data/lib/fog/digitalocean/requests/compute_v2/disable_backups.rb +0 -45
- data/lib/fog/digitalocean/requests/compute_v2/enable_ipv6.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/enable_private_networking.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/get_droplet_action.rb +0 -36
- data/lib/fog/digitalocean/requests/compute_v2/get_image_details.rb +0 -42
- data/lib/fog/digitalocean/requests/compute_v2/get_server_details.rb +0 -84
- data/lib/fog/digitalocean/requests/compute_v2/get_ssh_key.rb +0 -34
- data/lib/fog/digitalocean/requests/compute_v2/list_droplet_actions.rb +0 -38
- data/lib/fog/digitalocean/requests/compute_v2/list_flavors.rb +0 -131
- data/lib/fog/digitalocean/requests/compute_v2/list_images.rb +0 -50
- data/lib/fog/digitalocean/requests/compute_v2/list_regions.rb +0 -94
- data/lib/fog/digitalocean/requests/compute_v2/list_servers.rb +0 -28
- data/lib/fog/digitalocean/requests/compute_v2/list_ssh_keys.rb +0 -31
- data/lib/fog/digitalocean/requests/compute_v2/password_reset.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/power_cycle.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/power_off.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/power_on.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/reboot_server.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/rebuild.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/rename.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/resize.rb +0 -48
- data/lib/fog/digitalocean/requests/compute_v2/restore.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/shutdown.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/snapshot.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/transfer_image.rb +0 -44
- data/lib/fog/digitalocean/requests/compute_v2/update_ssh_key.rb +0 -46
- data/lib/fog/digitalocean/requests/compute_v2/upgrade.rb +0 -44
- data/lib/fog/digitalocean/service.rb +0 -51
- data/lib/fog/dnsimple.rb +0 -1
- data/lib/fog/dnsimple/core.rb +0 -10
- data/lib/fog/dnsimple/dns.rb +0 -112
- data/lib/fog/dnsimple/models/dns/record.rb +0 -63
- data/lib/fog/dnsimple/models/dns/records.rb +0 -34
- data/lib/fog/dnsimple/models/dns/zone.rb +0 -46
- data/lib/fog/dnsimple/models/dns/zones.rb +0 -25
- data/lib/fog/dnsimple/requests/dns/create_domain.rb +0 -62
- data/lib/fog/dnsimple/requests/dns/create_record.rb +0 -67
- data/lib/fog/dnsimple/requests/dns/delete_domain.rb +0 -35
- data/lib/fog/dnsimple/requests/dns/delete_record.rb +0 -30
- data/lib/fog/dnsimple/requests/dns/get_domain.rb +0 -39
- data/lib/fog/dnsimple/requests/dns/get_record.rb +0 -49
- data/lib/fog/dnsimple/requests/dns/list_domains.rb +0 -34
- data/lib/fog/dnsimple/requests/dns/list_records.rb +0 -34
- data/lib/fog/dnsimple/requests/dns/update_record.rb +0 -53
- data/lib/fog/ninefold.rb +0 -1
- data/lib/fog/ninefold/compute.rb +0 -144
- data/lib/fog/ninefold/core.rb +0 -11
- data/lib/fog/ninefold/models/compute/address.rb +0 -100
- data/lib/fog/ninefold/models/compute/addresses.rb +0 -27
- data/lib/fog/ninefold/models/compute/flavor.rb +0 -24
- data/lib/fog/ninefold/models/compute/flavors.rb +0 -26
- data/lib/fog/ninefold/models/compute/image.rb +0 -38
- data/lib/fog/ninefold/models/compute/images.rb +0 -26
- data/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb +0 -76
- data/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb +0 -27
- data/lib/fog/ninefold/models/compute/server.rb +0 -182
- data/lib/fog/ninefold/models/compute/servers.rb +0 -27
- data/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb +0 -11
- data/lib/fog/ninefold/requests/compute/associate_ip_address.rb +0 -12
- data/lib/fog/ninefold/requests/compute/change_service_for_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/create_ip_forwarding_rule.rb +0 -12
- data/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb +0 -11
- data/lib/fog/ninefold/requests/compute/delete_ip_forwarding_rule.rb +0 -12
- data/lib/fog/ninefold/requests/compute/delete_load_balancer_rule.rb +0 -11
- data/lib/fog/ninefold/requests/compute/deploy_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/destroy_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/disable_static_nat.rb +0 -12
- data/lib/fog/ninefold/requests/compute/disassociate_ip_address.rb +0 -12
- data/lib/fog/ninefold/requests/compute/enable_static_nat.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_accounts.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_async_jobs.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_capabilities.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_disk_offerings.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_events.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_hypervisors.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_ip_forwarding_rules.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb +0 -11
- data/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb +0 -11
- data/lib/fog/ninefold/requests/compute/list_network_offerings.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_networks.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_public_ip_addresses.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_resource_limits.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_service_offerings.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_templates.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_virtual_machines.rb +0 -12
- data/lib/fog/ninefold/requests/compute/list_zones.rb +0 -12
- data/lib/fog/ninefold/requests/compute/query_async_job_result.rb +0 -12
- data/lib/fog/ninefold/requests/compute/reboot_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb +0 -11
- data/lib/fog/ninefold/requests/compute/reset_password_for_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/start_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/stop_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb +0 -11
- data/lib/fog/ninefold/requests/compute/update_virtual_machine.rb +0 -12
- data/lib/fog/ninefold/storage.rb +0 -53
- data/spec/fog/bin/digitalocean_spec.rb +0 -9
- data/spec/fog/bin/ninefold_spec.rb +0 -10
- data/tests/digitalocean/helper.rb +0 -56
- data/tests/digitalocean/requests/compute_v2/list_flavors_tests.rb +0 -25
- data/tests/digitalocean/requests/compute_v2/list_images_tests.rb +0 -25
- data/tests/digitalocean/requests/compute_v2/list_regions_tests.rb +0 -21
- data/tests/digitalocean/requests/compute_v2/server_tests.rb +0 -77
- data/tests/dnsimple/requests/dns/dns_tests.rb +0 -122
- data/tests/hp/block_storage_tests.rb +0 -47
- data/tests/hp/cdn_tests.rb +0 -23
- data/tests/hp/compute_tests.rb +0 -22
- data/tests/hp/models/block_storage/bootable_volume_tests.rb +0 -23
- data/tests/hp/models/block_storage/snapshot_tests.rb +0 -23
- data/tests/hp/models/block_storage/volume_tests.rb +0 -21
- data/tests/hp/models/block_storage_v2/snapshot_tests.rb +0 -22
- data/tests/hp/models/block_storage_v2/snapshots_tests.rb +0 -10
- data/tests/hp/models/block_storage_v2/volume_backup_tests.rb +0 -22
- data/tests/hp/models/block_storage_v2/volume_backups_tests.rb +0 -9
- data/tests/hp/models/block_storage_v2/volume_tests.rb +0 -22
- data/tests/hp/models/block_storage_v2/volumes_tests.rb +0 -5
- data/tests/hp/models/compute/address_tests.rb +0 -18
- data/tests/hp/models/compute/addresses_tests.rb +0 -5
- data/tests/hp/models/compute/key_pair_tests.rb +0 -26
- data/tests/hp/models/compute/key_pairs_tests.rb +0 -5
- data/tests/hp/models/compute/metadata_image_tests.rb +0 -60
- data/tests/hp/models/compute/metadata_server_tests.rb +0 -54
- data/tests/hp/models/compute/security_group_tests.rb +0 -38
- data/tests/hp/models/compute/security_groups_tests.rb +0 -5
- data/tests/hp/models/compute_v2/address_tests.rb +0 -23
- data/tests/hp/models/compute_v2/addresses_tests.rb +0 -7
- data/tests/hp/models/compute_v2/availability_zone_tests.rb +0 -11
- data/tests/hp/models/compute_v2/availability_zones_tests.rb +0 -13
- data/tests/hp/models/compute_v2/key_pair_tests.rb +0 -28
- data/tests/hp/models/compute_v2/key_pairs_tests.rb +0 -7
- data/tests/hp/models/compute_v2/metadata_image_tests.rb +0 -60
- data/tests/hp/models/compute_v2/metadata_server_tests.rb +0 -56
- data/tests/hp/models/compute_v2/server_tests.rb +0 -45
- data/tests/hp/models/compute_v2/servers_tests.rb +0 -9
- data/tests/hp/models/compute_v2/volume_attachment_tests.rb +0 -40
- data/tests/hp/models/compute_v2/volume_attachments_tests.rb +0 -17
- data/tests/hp/models/dns/domain_tests.rb +0 -25
- data/tests/hp/models/dns/domains_tests.rb +0 -14
- data/tests/hp/models/dns/record_tests.rb +0 -29
- data/tests/hp/models/dns/records_tests.rb +0 -9
- data/tests/hp/models/lb/algorithms_tests.rb +0 -15
- data/tests/hp/models/lb/load_balancer_node_tests.rb +0 -9
- data/tests/hp/models/lb/load_balancer_nodes_tests.rb +0 -27
- data/tests/hp/models/lb/load_balancer_tests.rb +0 -6
- data/tests/hp/models/lb/load_balancer_virtual_ips_tests.rb +0 -22
- data/tests/hp/models/lb/load_balancers_tests.rb +0 -22
- data/tests/hp/models/lb/protocols_tests.rb +0 -15
- data/tests/hp/models/network/floating_ip_tests.rb +0 -37
- data/tests/hp/models/network/floating_ips_tests.rb +0 -8
- data/tests/hp/models/network/network_tests.rb +0 -25
- data/tests/hp/models/network/networks_tests.rb +0 -15
- data/tests/hp/models/network/port_tests.rb +0 -30
- data/tests/hp/models/network/ports_tests.rb +0 -21
- data/tests/hp/models/network/router_tests.rb +0 -55
- data/tests/hp/models/network/routers_tests.rb +0 -19
- data/tests/hp/models/network/security_group_rule_tests.rb +0 -25
- data/tests/hp/models/network/security_group_rules_tests.rb +0 -23
- data/tests/hp/models/network/security_group_tests.rb +0 -20
- data/tests/hp/models/network/security_groups_tests.rb +0 -20
- data/tests/hp/models/network/subnet_tests.rb +0 -30
- data/tests/hp/models/network/subnets_tests.rb +0 -22
- data/tests/hp/models/storage/directories_tests.rb +0 -23
- data/tests/hp/models/storage/directory_tests.rb +0 -131
- data/tests/hp/models/storage/file_tests.rb +0 -44
- data/tests/hp/models/storage/files_tests.rb +0 -38
- data/tests/hp/requests/block_storage/bootable_volume_tests.rb +0 -78
- data/tests/hp/requests/block_storage/snapshot_tests.rb +0 -56
- data/tests/hp/requests/block_storage/volume_tests.rb +0 -94
- data/tests/hp/requests/block_storage_v2/snapshot_tests.rb +0 -69
- data/tests/hp/requests/block_storage_v2/volume_backup_tests.rb +0 -117
- data/tests/hp/requests/block_storage_v2/volume_tests.rb +0 -106
- data/tests/hp/requests/cdn/container_tests.rb +0 -56
- data/tests/hp/requests/compute/address_tests.rb +0 -72
- data/tests/hp/requests/compute/flavor_tests.rb +0 -45
- data/tests/hp/requests/compute/image_tests.rb +0 -79
- data/tests/hp/requests/compute/key_pair_tests.rb +0 -65
- data/tests/hp/requests/compute/metadata_tests.rb +0 -70
- data/tests/hp/requests/compute/persistent_server_tests.rb +0 -66
- data/tests/hp/requests/compute/security_group_rule_tests.rb +0 -54
- data/tests/hp/requests/compute/security_group_tests.rb +0 -63
- data/tests/hp/requests/compute/server_address_tests.rb +0 -45
- data/tests/hp/requests/compute/server_tests.rb +0 -126
- data/tests/hp/requests/compute/server_volume_tests.rb +0 -75
- data/tests/hp/requests/compute_v2/address_tests.rb +0 -80
- data/tests/hp/requests/compute_v2/availability_zone_tests.rb +0 -19
- data/tests/hp/requests/compute_v2/flavor_tests.rb +0 -45
- data/tests/hp/requests/compute_v2/image_tests.rb +0 -86
- data/tests/hp/requests/compute_v2/key_pair_tests.rb +0 -66
- data/tests/hp/requests/compute_v2/metadata_tests.rb +0 -101
- data/tests/hp/requests/compute_v2/persistent_server_tests.rb +0 -67
- data/tests/hp/requests/compute_v2/server_address_tests.rb +0 -46
- data/tests/hp/requests/compute_v2/server_security_group_tests.rb +0 -42
- data/tests/hp/requests/compute_v2/server_tests.rb +0 -113
- data/tests/hp/requests/compute_v2/server_volume_tests.rb +0 -84
- data/tests/hp/requests/dns/domain_tests.rb +0 -72
- data/tests/hp/requests/dns/records_tests.rb +0 -64
- data/tests/hp/requests/lb/algorithms_tests.rb +0 -14
- data/tests/hp/requests/lb/limits_tests.rb +0 -16
- data/tests/hp/requests/lb/load_balancer_nodes_tests.rb +0 -46
- data/tests/hp/requests/lb/load_balancer_tests.rb +0 -56
- data/tests/hp/requests/lb/protocols_tests.rb +0 -14
- data/tests/hp/requests/lb/versions_tests.rb +0 -16
- data/tests/hp/requests/lb/virtual_ips_tests.rb +0 -34
- data/tests/hp/requests/network/floating_ip_tests.rb +0 -70
- data/tests/hp/requests/network/network_tests.rb +0 -57
- data/tests/hp/requests/network/port_tests.rb +0 -71
- data/tests/hp/requests/network/router_tests.rb +0 -108
- data/tests/hp/requests/network/security_group_rule_tests.rb +0 -58
- data/tests/hp/requests/network/security_group_tests.rb +0 -48
- data/tests/hp/requests/network/subnet_tests.rb +0 -71
- data/tests/hp/requests/storage/container_tests.rb +0 -86
- data/tests/hp/requests/storage/object_tests.rb +0 -121
- data/tests/hp/storage_tests.rb +0 -28
- data/tests/hp/user_agent_tests.rb +0 -13
- data/tests/ninefold/models/storage/file_update_tests.rb +0 -19
- data/tests/ninefold/models/storage/nested_directories_tests.rb +0 -23
- data/tests/ninefold/requests/compute/address_tests.rb +0 -42
- data/tests/ninefold/requests/compute/async_job_tests.rb +0 -33
- data/tests/ninefold/requests/compute/helper.rb +0 -369
- data/tests/ninefold/requests/compute/list_tests.rb +0 -56
- data/tests/ninefold/requests/compute/load_balancer_tests.rb +0 -66
- data/tests/ninefold/requests/compute/nat_tests.rb +0 -91
- data/tests/ninefold/requests/compute/network_tests.rb +0 -21
- data/tests/ninefold/requests/compute/template_tests.rb +0 -21
- data/tests/ninefold/requests/compute/virtual_machine_tests.rb +0 -68
data/lib/fog/bin/digitalocean.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
class DigitalOcean < Fog::Bin
|
2
|
-
class << self
|
3
|
-
def class_for(key)
|
4
|
-
case key
|
5
|
-
when :compute
|
6
|
-
Fog::Compute::DigitalOceanV2
|
7
|
-
else
|
8
|
-
raise ArgumentError, "Unsupported #{self} service: #{key}"
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def [](service)
|
13
|
-
@@connections ||= Hash.new do |hash, key|
|
14
|
-
hash[key] = case key
|
15
|
-
when :compute
|
16
|
-
Fog::Logger.warning("DigitalOcean[:compute] is not recommended, use Compute[:digitalocean] for portability")
|
17
|
-
Fog::Compute.new(:provider => 'DigitalOcean')
|
18
|
-
else
|
19
|
-
raise ArgumentError, "Unrecognized service: #{key.inspect}"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
@@connections[service]
|
23
|
-
end
|
24
|
-
|
25
|
-
def services
|
26
|
-
Fog::DigitalOcean.services
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/fog/bin/dnsimple.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
class DNSimple < Fog::Bin
|
2
|
-
class << self
|
3
|
-
def class_for(key)
|
4
|
-
case key
|
5
|
-
when :dns
|
6
|
-
Fog::DNS::DNSimple
|
7
|
-
else
|
8
|
-
raise ArgumentError, "Unrecognized service: #{key}"
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def [](service)
|
13
|
-
@@connections ||= Hash.new do |hash, key|
|
14
|
-
hash[key] = case key
|
15
|
-
when :dns
|
16
|
-
Fog::Logger.warning("DNSimple[:dns] is not recommended, use DNS[:dnsimple] for portability")
|
17
|
-
Fog::DNS.new(:provider => 'DNSimple')
|
18
|
-
else
|
19
|
-
raise ArgumentError, "Unrecognized service: #{key.inspect}"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
@@connections[service]
|
23
|
-
end
|
24
|
-
|
25
|
-
def services
|
26
|
-
Fog::DNSimple.services
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/fog/bin/ninefold.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
class Ninefold < Fog::Bin
|
2
|
-
class << self
|
3
|
-
def class_for(key)
|
4
|
-
case key
|
5
|
-
when :compute
|
6
|
-
Fog::Compute::Ninefold
|
7
|
-
when :storage
|
8
|
-
Fog::Storage::Ninefold
|
9
|
-
else
|
10
|
-
raise ArgumentError, "Unsupported #{self} service: #{key}"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def [](service)
|
15
|
-
@@connections ||= Hash.new do |hash, key|
|
16
|
-
hash[key] = case key
|
17
|
-
when :compute
|
18
|
-
Fog::Logger.warning("Ninefold[:compute] is not recommended, use Compute[:ninefold] for portability")
|
19
|
-
Fog::Compute.new(:provider => 'Ninefold')
|
20
|
-
when :storage
|
21
|
-
Fog::Logger.warning("Ninefold[:storage] is not recommended, use Storage[:ninefold] for portability")
|
22
|
-
Fog::Storage.new(:provider => 'Ninefold')
|
23
|
-
else
|
24
|
-
raise ArgumentError, "Unrecognized service: #{service}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
@@connections[service]
|
28
|
-
end
|
29
|
-
|
30
|
-
def services
|
31
|
-
Fog::Ninefold.services
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
data/lib/fog/digitalocean.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'fog/digitalocean/compute_v2'
|
@@ -1,109 +0,0 @@
|
|
1
|
-
require 'fog/digitalocean/core'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class DigitalOceanV2 < Fog::Service
|
6
|
-
requires :digitalocean_token
|
7
|
-
|
8
|
-
model_path 'fog/digitalocean/models/compute_v2'
|
9
|
-
model :server
|
10
|
-
collection :servers
|
11
|
-
model :image
|
12
|
-
collection :images
|
13
|
-
model :region
|
14
|
-
collection :regions
|
15
|
-
model :flavor
|
16
|
-
collection :flavors
|
17
|
-
model :ssh_key
|
18
|
-
collection :ssh_keys
|
19
|
-
|
20
|
-
request_path 'fog/digitalocean/requests/compute_v2'
|
21
|
-
request :change_kernel
|
22
|
-
request :create_server
|
23
|
-
request :create_ssh_key
|
24
|
-
request :destroy_server
|
25
|
-
request :delete_ssh_key
|
26
|
-
request :disable_backups
|
27
|
-
request :enable_ipv6
|
28
|
-
request :enable_private_networking
|
29
|
-
request :get_droplet_action
|
30
|
-
request :get_image_details
|
31
|
-
request :get_server_details
|
32
|
-
request :get_ssh_key
|
33
|
-
request :list_droplet_actions
|
34
|
-
request :list_flavors
|
35
|
-
request :list_images
|
36
|
-
request :list_regions
|
37
|
-
request :list_servers
|
38
|
-
request :list_ssh_keys
|
39
|
-
request :password_reset
|
40
|
-
request :power_cycle
|
41
|
-
request :power_off
|
42
|
-
request :power_on
|
43
|
-
request :reboot_server
|
44
|
-
request :rebuild
|
45
|
-
request :rename
|
46
|
-
request :resize
|
47
|
-
request :restore
|
48
|
-
request :shutdown
|
49
|
-
request :snapshot
|
50
|
-
request :update_ssh_key
|
51
|
-
request :upgrade
|
52
|
-
|
53
|
-
|
54
|
-
class Mock
|
55
|
-
def self.data
|
56
|
-
@data ||= Hash.new do |hash, key|
|
57
|
-
hash[key] = {
|
58
|
-
:servers => [],
|
59
|
-
:ssh_keys => []
|
60
|
-
}
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def initialize(options={})
|
65
|
-
@digitalocean_token = options[:digitalocean_token]
|
66
|
-
end
|
67
|
-
|
68
|
-
def data
|
69
|
-
self.class.data[@digitalocean_token]
|
70
|
-
end
|
71
|
-
|
72
|
-
def reset_data
|
73
|
-
self.class.data.delete(@digitalocean_token)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
class Real
|
78
|
-
def initialize(options={})
|
79
|
-
digitalocean_token = options[:digitalocean_token]
|
80
|
-
persistent = false
|
81
|
-
options = {
|
82
|
-
headers: {
|
83
|
-
'Authorization' => "Bearer #{digitalocean_token}",
|
84
|
-
}
|
85
|
-
}
|
86
|
-
@connection = Fog::Core::Connection.new 'https://api.digitalocean.com', persistent, options
|
87
|
-
end
|
88
|
-
|
89
|
-
def request(params)
|
90
|
-
params[:headers] ||= {}
|
91
|
-
begin
|
92
|
-
response = @connection.request(params)
|
93
|
-
rescue Excon::Errors::HTTPStatusError => error
|
94
|
-
raise case error
|
95
|
-
when Excon::Errors::NotFound
|
96
|
-
NotFound.slurp(error)
|
97
|
-
else
|
98
|
-
error
|
99
|
-
end
|
100
|
-
end
|
101
|
-
unless response.body.empty?
|
102
|
-
response.body = Fog::JSON.decode(response.body)
|
103
|
-
end
|
104
|
-
response
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
@@ -1,124 +0,0 @@
|
|
1
|
-
# Getting started: the compute service
|
2
|
-
|
3
|
-
You'll need a DigitalOcean account and an API token to use this provider.
|
4
|
-
|
5
|
-
Get one from https://cloud.digitalocean.com/settings/tokens/new
|
6
|
-
|
7
|
-
Write down the Access Token.
|
8
|
-
|
9
|
-
## Connecting, retrieving and managing server objects
|
10
|
-
|
11
|
-
Before we start, I guess it will be useful to the reader to know
|
12
|
-
that Fog servers are 'droplets' in DigitalOcean's parlance.
|
13
|
-
'Server' is the Fog way to name VMs, and we have
|
14
|
-
respected that in the DigitalOcean's Fog provider.
|
15
|
-
|
16
|
-
First, create a connection to the host:
|
17
|
-
|
18
|
-
```ruby
|
19
|
-
require 'fog'
|
20
|
-
|
21
|
-
docean = Fog::Compute.new({
|
22
|
-
:provider => 'DigitalOcean',
|
23
|
-
:version => 'V2',
|
24
|
-
:digitalocean_token => 'poiuweoruwoeiuroiwuer', # your Access Token here
|
25
|
-
})
|
26
|
-
```
|
27
|
-
|
28
|
-
## SSH Key Management
|
29
|
-
|
30
|
-
Access to DigitalOcean servers can be managed with SSH keys. These can be assigned to servers at creation time so you can access them without having to use a password.
|
31
|
-
|
32
|
-
Creating a key:
|
33
|
-
|
34
|
-
```ruby
|
35
|
-
docean.ssh_keys.create(
|
36
|
-
:name => 'Default SSH Key',
|
37
|
-
:ssh_pub_key => File.read('~/.ssh/id_rsa.pub'))
|
38
|
-
)
|
39
|
-
```
|
40
|
-
|
41
|
-
Listing all keys:
|
42
|
-
|
43
|
-
```ruby
|
44
|
-
docean.ssh_keys.each do | key |
|
45
|
-
puts key.name
|
46
|
-
puts key.public_key
|
47
|
-
puts key.id
|
48
|
-
end
|
49
|
-
```
|
50
|
-
|
51
|
-
Destroying a key:
|
52
|
-
|
53
|
-
```ruby
|
54
|
-
docean.ssh_keys.destroy(:id => '27100')
|
55
|
-
```
|
56
|
-
## Listing servers
|
57
|
-
|
58
|
-
Listing servers and attributes:
|
59
|
-
|
60
|
-
```ruby
|
61
|
-
docean.servers.each do |server|
|
62
|
-
# remember, servers are droplets
|
63
|
-
puts server.id
|
64
|
-
puts server.name
|
65
|
-
puts server.status
|
66
|
-
puts (server.image['slug'] || server.image['name']) # slug is only for public images, private images use name
|
67
|
-
puts server.size['slug']
|
68
|
-
puts server.region['slug']
|
69
|
-
end
|
70
|
-
```
|
71
|
-
|
72
|
-
## Server creation and life-cycle management
|
73
|
-
|
74
|
-
Creating a new server (droplet):
|
75
|
-
|
76
|
-
```ruby
|
77
|
-
server = docean.servers.create :name => 'foobar',
|
78
|
-
# use the last image listed
|
79
|
-
:image => docean.images.last.id,
|
80
|
-
# use the first flavor (aka size) listed
|
81
|
-
:size => docean.flavors.first.slug,
|
82
|
-
# use the first region listed
|
83
|
-
:region => docean.regions.first.slug
|
84
|
-
```
|
85
|
-
|
86
|
-
The server is automatically started after that.
|
87
|
-
|
88
|
-
We didn't pay attention when choosing the flavor, image and region used
|
89
|
-
but you can easily list them too, and then decide:
|
90
|
-
|
91
|
-
```ruby
|
92
|
-
docean.images.each do |image|
|
93
|
-
puts image.id
|
94
|
-
puts image.name
|
95
|
-
puts image.distribution
|
96
|
-
end
|
97
|
-
|
98
|
-
docean.flavors.each do |flavor|
|
99
|
-
puts flavor.slug
|
100
|
-
end
|
101
|
-
|
102
|
-
docean.regions.each do |region|
|
103
|
-
puts region.slug
|
104
|
-
end
|
105
|
-
```
|
106
|
-
|
107
|
-
Rebooting a server:
|
108
|
-
|
109
|
-
```ruby
|
110
|
-
server = docean.servers.first
|
111
|
-
server.reboot
|
112
|
-
```
|
113
|
-
|
114
|
-
Power cycle a server:
|
115
|
-
|
116
|
-
```ruby
|
117
|
-
server.power_cycle
|
118
|
-
```
|
119
|
-
|
120
|
-
Destroying the server:
|
121
|
-
|
122
|
-
```ruby
|
123
|
-
server.destroy
|
124
|
-
```
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class DigitalOceanV2
|
4
|
-
class Flavor < Fog::Model
|
5
|
-
identity :slug
|
6
|
-
attribute :available
|
7
|
-
attribute :transfer
|
8
|
-
attribute :price_monthly
|
9
|
-
attribute :price_hourly
|
10
|
-
attribute :memory
|
11
|
-
attribute :vcpus
|
12
|
-
attribute :disk
|
13
|
-
attribute :regions
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class DigitalOceanV2
|
4
|
-
class Flavors < Fog::Collection
|
5
|
-
model Fog::Compute::DigitalOceanV2::Flavor
|
6
|
-
|
7
|
-
# Retrieves flavours (aka. sizes)
|
8
|
-
# @return [Fog::Compute::DigitalOceanV2:Flavor]
|
9
|
-
# @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
|
10
|
-
# @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
|
11
|
-
# @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
|
12
|
-
# @raise [Fog::Compute::DigitalOceanV2::ServiceError]
|
13
|
-
# @see https://developers.digitalocean.com/documentation/v2/#list-all-sizes
|
14
|
-
def all(filters = {})
|
15
|
-
data = service.list_flavors.body["sizes"]
|
16
|
-
load(data)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class DigitalOceanV2
|
4
|
-
class Image < Fog::Model
|
5
|
-
identity :id
|
6
|
-
attribute :name
|
7
|
-
attribute :type
|
8
|
-
attribute :distribution
|
9
|
-
attribute :slug
|
10
|
-
attribute :public
|
11
|
-
attribute :regions
|
12
|
-
attribute :min_disk_size
|
13
|
-
attribute :created_at
|
14
|
-
end
|
15
|
-
|
16
|
-
def transfer
|
17
|
-
perform_action :transfer_image
|
18
|
-
end
|
19
|
-
|
20
|
-
def convert_to_snapshot
|
21
|
-
perform_action :convert_image_to_snapshot
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'fog/digitalocean/models/paging_collection'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class DigitalOceanV2
|
6
|
-
class Images < Fog::Compute::DigitalOceanV2::PagingCollection
|
7
|
-
model Fog::Compute::DigitalOceanV2::Image
|
8
|
-
|
9
|
-
# Retrieves images
|
10
|
-
# @return [Fog::Compute::DigitalOceanV2:Image]
|
11
|
-
# @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
|
12
|
-
# @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
|
13
|
-
# @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
|
14
|
-
# @raise [Fog::Compute::DigitalOceanV2::ServiceError]
|
15
|
-
# @see https://developers.digitalocean.com/documentation/v2/#list-all-images
|
16
|
-
def all(filters = {})
|
17
|
-
data = service.list_images(filters)
|
18
|
-
links = data.body["links"]
|
19
|
-
get_paged_links(links)
|
20
|
-
images = data.body["images"]
|
21
|
-
load(images)
|
22
|
-
end
|
23
|
-
|
24
|
-
# Retrieves image
|
25
|
-
# @param [String] id for image to be returned
|
26
|
-
# @return [Fog::Compute::DigitalOceanV2:Image]
|
27
|
-
# @raise [Fog::Compute::DigitalOceanV2::NotFound] - HTTP 404
|
28
|
-
# @raise [Fog::Compute::DigitalOceanV2::BadRequest] - HTTP 400
|
29
|
-
# @raise [Fog::Compute::DigitalOceanV2::InternalServerError] - HTTP 500
|
30
|
-
# @raise [Fog::Compute::DigitalOceanV2::ServiceError]
|
31
|
-
# @see https://developers.digitalocean.com/documentation/v2/#retrieve-an-existing-image-by-id
|
32
|
-
def get(id)
|
33
|
-
image = service.get_image_details(id).body['image']
|
34
|
-
new(image) if image
|
35
|
-
rescue Fog::Errors::NotFound
|
36
|
-
nil
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|