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/ninefold/core.rb
DELETED
@@ -1,100 +0,0 @@
|
|
1
|
-
require 'fog/core/model'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Ninefold
|
6
|
-
class Address < Fog::Model
|
7
|
-
identity :id
|
8
|
-
|
9
|
-
attribute :account
|
10
|
-
attribute :allocated
|
11
|
-
attribute :associatednetworkid
|
12
|
-
attribute :domain
|
13
|
-
attribute :domainid
|
14
|
-
attribute :forvirtualnetwork
|
15
|
-
attribute :ipaddress
|
16
|
-
attribute :issourcenat
|
17
|
-
attribute :isstaticnat
|
18
|
-
attribute :jobid
|
19
|
-
attribute :jobstatus
|
20
|
-
attribute :networkid
|
21
|
-
attribute :state
|
22
|
-
attribute :virtualmachinedisplayname
|
23
|
-
attribute :virtualmachineid
|
24
|
-
attribute :virtualmachinename
|
25
|
-
attribute :vlanid
|
26
|
-
attribute :vlanname
|
27
|
-
attribute :zoneid
|
28
|
-
attribute :zonename
|
29
|
-
|
30
|
-
def initialize(attributes={})
|
31
|
-
super
|
32
|
-
end
|
33
|
-
|
34
|
-
def destroy
|
35
|
-
requires :identity
|
36
|
-
self.jobid = extract_job_id(service.disassociate_ip_address(:id => identity))
|
37
|
-
true
|
38
|
-
end
|
39
|
-
|
40
|
-
def enable_static_nat(server)
|
41
|
-
server.kind_of?(Integer) ? serverid = server : serverid = server.identity
|
42
|
-
res = service.enable_static_nat(:virtualmachineid => serverid, :ipaddressid => identity)
|
43
|
-
reload
|
44
|
-
to_boolean(res['success'])
|
45
|
-
end
|
46
|
-
|
47
|
-
def disable_static_nat()
|
48
|
-
self.jobid = extract_job_id(service.disable_static_nat(:ipaddressid => identity))
|
49
|
-
true
|
50
|
-
end
|
51
|
-
|
52
|
-
def reload
|
53
|
-
self.virtualmachinedisplayname = nil
|
54
|
-
self.virtualmachineid = nil
|
55
|
-
self.virtualmachinename = nil
|
56
|
-
super
|
57
|
-
end
|
58
|
-
|
59
|
-
def ready?
|
60
|
-
if jobid && service.query_async_job_result(:jobid => jobid)['jobstatus'] == 0
|
61
|
-
false
|
62
|
-
else # No running job, we are ready. Refresh data.
|
63
|
-
reload
|
64
|
-
true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def save
|
69
|
-
raise "Operation not supported" if self.identity
|
70
|
-
requires :zoneid
|
71
|
-
|
72
|
-
options = {
|
73
|
-
:zoneid => zoneid,
|
74
|
-
:networkid => networkid,
|
75
|
-
:account => account,
|
76
|
-
:domainid => domainid
|
77
|
-
}.delete_if {|k,v| v.nil? || v == "" }
|
78
|
-
data = service.associate_ip_address(options)
|
79
|
-
merge_attributes(data)
|
80
|
-
true
|
81
|
-
end
|
82
|
-
|
83
|
-
private
|
84
|
-
|
85
|
-
def extract_job_id(job)
|
86
|
-
if job.kind_of? Integer
|
87
|
-
job
|
88
|
-
else
|
89
|
-
job['jobid'] || job['id']
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# needed to hack around API inconsistencies
|
94
|
-
def to_boolean(val)
|
95
|
-
val && (val.to_s.match(/(true|t|yes|y|1)$/i) != nil)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/ninefold/models/compute/address'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Ninefold
|
7
|
-
class Addresses < Fog::Collection
|
8
|
-
model Fog::Compute::Ninefold::Address
|
9
|
-
|
10
|
-
def all
|
11
|
-
data = service.list_public_ip_addresses
|
12
|
-
load(data)
|
13
|
-
end
|
14
|
-
|
15
|
-
def get(identifier)
|
16
|
-
return nil if identifier.nil? || identifier == ""
|
17
|
-
data = service.list_public_ip_addresses(:id => identifier)
|
18
|
-
if data.empty?
|
19
|
-
nil
|
20
|
-
else
|
21
|
-
new(data[0])
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'fog/core/model'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Ninefold
|
6
|
-
class Flavor < Fog::Model
|
7
|
-
identity :id
|
8
|
-
|
9
|
-
attribute :cpunumber
|
10
|
-
attribute :cpuspeed
|
11
|
-
attribute :created, :type => :time
|
12
|
-
attribute :displaytext
|
13
|
-
attribute :domain
|
14
|
-
attribute :domainid
|
15
|
-
attribute :hosttags
|
16
|
-
attribute :memory
|
17
|
-
attribute :name
|
18
|
-
attribute :offerha
|
19
|
-
attribute :storagetype
|
20
|
-
attribute :tags
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/ninefold/models/compute/flavor'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Ninefold
|
7
|
-
class Flavors < Fog::Collection
|
8
|
-
model Fog::Compute::Ninefold::Flavor
|
9
|
-
|
10
|
-
def all
|
11
|
-
data = service.list_service_offerings
|
12
|
-
load(data)
|
13
|
-
end
|
14
|
-
|
15
|
-
def get(identifier)
|
16
|
-
data = service.list_service_offerings(:id => identifier)
|
17
|
-
if data.empty?
|
18
|
-
nil
|
19
|
-
else
|
20
|
-
new(data[0])
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'fog/core/model'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Ninefold
|
6
|
-
class Image < Fog::Model
|
7
|
-
identity :id
|
8
|
-
|
9
|
-
attribute :account
|
10
|
-
attribute :accountid
|
11
|
-
attribute :bootable
|
12
|
-
attribute :created, :type => :time
|
13
|
-
attribute :crossZones
|
14
|
-
attribute :displaytext
|
15
|
-
attribute :domain
|
16
|
-
attribute :domainid
|
17
|
-
attribute :format
|
18
|
-
attribute :hypervisor
|
19
|
-
attribute :isextractable
|
20
|
-
attribute :isfeatured
|
21
|
-
attribute :ispublic
|
22
|
-
attribute :isready
|
23
|
-
attribute :jobid
|
24
|
-
attribute :jobstatus
|
25
|
-
attribute :name
|
26
|
-
attribute :ostypeid
|
27
|
-
attribute :ostypename
|
28
|
-
attribute :passwordenabled
|
29
|
-
attribute :removed
|
30
|
-
attribute :size
|
31
|
-
attribute :status
|
32
|
-
attribute :templatetype
|
33
|
-
attribute :zoneid
|
34
|
-
attribute :zonename
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/ninefold/models/compute/image'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Ninefold
|
7
|
-
class Images < Fog::Collection
|
8
|
-
model Fog::Compute::Ninefold::Image
|
9
|
-
|
10
|
-
def all(offering = 'executable')
|
11
|
-
data = service.list_templates(:templatefilter => offering)
|
12
|
-
load(data)
|
13
|
-
end
|
14
|
-
|
15
|
-
def get(identifier, offering = 'executable')
|
16
|
-
data = service.list_templates(:templatefilter => offering, :id => identifier)
|
17
|
-
if data.empty?
|
18
|
-
nil
|
19
|
-
else
|
20
|
-
new(data[0])
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'fog/core/model'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Ninefold
|
6
|
-
class IpForwardingRule < Fog::Model
|
7
|
-
identity :id
|
8
|
-
|
9
|
-
attribute :protocol
|
10
|
-
attribute :virtualmachineid
|
11
|
-
attribute :virtualmachinename
|
12
|
-
attribute :ipaddressid
|
13
|
-
attribute :ipaddress
|
14
|
-
attribute :startport
|
15
|
-
attribute :endport
|
16
|
-
attribute :state
|
17
|
-
|
18
|
-
attribute :jobid
|
19
|
-
|
20
|
-
def initialize(attributes={})
|
21
|
-
super
|
22
|
-
end
|
23
|
-
|
24
|
-
def destroy
|
25
|
-
requires :identity
|
26
|
-
self.jobid = extract_job_id(service.delete_ip_forwarding_rule(:id => identity))
|
27
|
-
true
|
28
|
-
end
|
29
|
-
|
30
|
-
def ready?
|
31
|
-
if jobid && service.query_async_job_result(:jobid => jobid)['jobstatus'] == 0
|
32
|
-
false
|
33
|
-
else # No running job, we are ready. Refresh data.
|
34
|
-
reload
|
35
|
-
true
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def address
|
40
|
-
Ninefold.address.get(ipaddressid)
|
41
|
-
end
|
42
|
-
|
43
|
-
def address=(addr)
|
44
|
-
self.ipaddressid = addr.identity
|
45
|
-
end
|
46
|
-
|
47
|
-
def save
|
48
|
-
raise "Operation not supported" if self.identity
|
49
|
-
requires :ipaddressid
|
50
|
-
requires :protocol
|
51
|
-
requires :startport
|
52
|
-
|
53
|
-
options = {
|
54
|
-
:ipaddressid => ipaddressid,
|
55
|
-
:protocol => protocol,
|
56
|
-
:startport => startport,
|
57
|
-
:endport => endport
|
58
|
-
}.delete_if {|k,v| v.nil? || v == "" }
|
59
|
-
data = service.create_ip_forwarding_rule(options)
|
60
|
-
merge_attributes(data)
|
61
|
-
true
|
62
|
-
end
|
63
|
-
|
64
|
-
private
|
65
|
-
|
66
|
-
def extract_job_id(job)
|
67
|
-
if job.kind_of? Integer
|
68
|
-
job
|
69
|
-
else
|
70
|
-
job['jobid'] || job['id']
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/ninefold/models/compute/ip_forwarding_rule'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Ninefold
|
7
|
-
class IpForwardingRules < Fog::Collection
|
8
|
-
model Fog::Compute::Ninefold::IpForwardingRule
|
9
|
-
|
10
|
-
def all
|
11
|
-
data = service.list_ip_forwarding_rules
|
12
|
-
load(data)
|
13
|
-
end
|
14
|
-
|
15
|
-
def get(identifier)
|
16
|
-
return nil if identifier.nil? || identifier == ""
|
17
|
-
data = service.list_ip_forwarding_rules(:id => identifier)
|
18
|
-
if data.empty?
|
19
|
-
nil
|
20
|
-
else
|
21
|
-
new(data[0])
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,182 +0,0 @@
|
|
1
|
-
require 'fog/compute/models/server'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Ninefold
|
6
|
-
class Server < Fog::Compute::Server
|
7
|
-
extend Fog::Deprecation
|
8
|
-
deprecate :serviceofferingid, :flavor_id
|
9
|
-
deprecate :templateid, :image_id
|
10
|
-
|
11
|
-
identity :id
|
12
|
-
|
13
|
-
attribute :account
|
14
|
-
attribute :cpunumber
|
15
|
-
attribute :cpuspeed
|
16
|
-
|
17
|
-
attribute :cpuused
|
18
|
-
attribute :created, :type => :time
|
19
|
-
attribute :displayname
|
20
|
-
attribute :domain
|
21
|
-
attribute :domainid
|
22
|
-
attribute :flavor_id, :aliases => :serviceofferingid
|
23
|
-
attribute :forvirtualnetwork
|
24
|
-
attribute :group
|
25
|
-
attribute :groupid
|
26
|
-
attribute :guestosid
|
27
|
-
attribute :haenable
|
28
|
-
attribute :hostid
|
29
|
-
attribute :hostname
|
30
|
-
attribute :hypervisor
|
31
|
-
attribute :image_id, :aliases => :templateid
|
32
|
-
#attribute :ipaddress
|
33
|
-
attribute :isodisplaytext
|
34
|
-
attribute :isoid
|
35
|
-
attribute :isoname
|
36
|
-
attribute :jobid
|
37
|
-
attribute :jobstatus
|
38
|
-
attribute :memory
|
39
|
-
attribute :name
|
40
|
-
attribute :networkkbsread
|
41
|
-
attribute :networkkbswrite
|
42
|
-
attribute :nic
|
43
|
-
attribute :password
|
44
|
-
attribute :passwordenabled
|
45
|
-
attribute :rootdeviceid
|
46
|
-
attribute :rootdevicetype
|
47
|
-
attribute :securitygroup
|
48
|
-
attribute :serviceofferingname
|
49
|
-
attribute :state
|
50
|
-
attribute :templatedisplaytext
|
51
|
-
attribute :templatename
|
52
|
-
attribute :zoneid
|
53
|
-
attribute :zonename
|
54
|
-
|
55
|
-
# used for creation only.
|
56
|
-
attribute :networkids
|
57
|
-
attribute :diskofferingid
|
58
|
-
attribute :keypair
|
59
|
-
attribute :securitygroupids
|
60
|
-
attribute :size
|
61
|
-
attribute :userdata
|
62
|
-
|
63
|
-
#attribute :account_id, :aliases => "account", :squash => "id"
|
64
|
-
#attribute :image_id, :aliases => "image", :squash => "id"
|
65
|
-
#attribute :flavor_id, :aliases => "server_type", :squash => "id"
|
66
|
-
#attribute :zone_id, :aliases => "zone", :squash => "id"
|
67
|
-
|
68
|
-
def initialize(attributes={})
|
69
|
-
merge_attributes({
|
70
|
-
:flavor_id => 105, # '1CPU, 384MB, 80GB HDD'
|
71
|
-
:image_id => 421 # 'XEN Basic Ubuntu 10.04 Server x64 PV r2.0'
|
72
|
-
})
|
73
|
-
super
|
74
|
-
end
|
75
|
-
|
76
|
-
# This is temporary - we need to model nics.
|
77
|
-
def ipaddress
|
78
|
-
nic[0] ? nic[0]['ipaddress'] : nil
|
79
|
-
end
|
80
|
-
|
81
|
-
def reboot
|
82
|
-
requires :identity
|
83
|
-
self.jobid = extract_job_id(service.reboot_virtual_machine(:id => identity))
|
84
|
-
puts "jobid: " + jobid.to_s
|
85
|
-
true
|
86
|
-
end
|
87
|
-
|
88
|
-
def start
|
89
|
-
requires :identity
|
90
|
-
self.jobid = extract_job_id(service.start_virtual_machine(:id => identity))
|
91
|
-
true
|
92
|
-
end
|
93
|
-
|
94
|
-
def stop
|
95
|
-
requires :identity
|
96
|
-
self.jobid = extract_job_id(service.stop_virtual_machine(:id => identity))
|
97
|
-
true
|
98
|
-
end
|
99
|
-
|
100
|
-
def destroy
|
101
|
-
requires :identity
|
102
|
-
self.jobid = extract_job_id(service.destroy_virtual_machine(:id => identity))
|
103
|
-
true
|
104
|
-
end
|
105
|
-
|
106
|
-
def flavor
|
107
|
-
requires :flavor_id
|
108
|
-
service.flavors.get(flavor_id)
|
109
|
-
end
|
110
|
-
|
111
|
-
def image
|
112
|
-
requires :image_id
|
113
|
-
service.images.get(image_id)
|
114
|
-
end
|
115
|
-
|
116
|
-
def ready?
|
117
|
-
if jobid
|
118
|
-
# we do this by polling the last job id status.
|
119
|
-
res = service.query_async_job_result(:jobid => jobid)
|
120
|
-
if res['jobstatus'] == 0
|
121
|
-
false
|
122
|
-
else
|
123
|
-
# update with new values.
|
124
|
-
merge_attributes(res['jobresult']['virtualmachine'])
|
125
|
-
true
|
126
|
-
end
|
127
|
-
else # No running job, we are ready. Refresh data.
|
128
|
-
reload
|
129
|
-
true
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
def save
|
134
|
-
raise "Operation not supported" if self.identity
|
135
|
-
requires :flavor_id, :image_id, :zoneid
|
136
|
-
|
137
|
-
unless networkids
|
138
|
-
# No network specified, use first in this zone.
|
139
|
-
networks = service.list_networks(:zoneid => zoneid)
|
140
|
-
if networks.empty?
|
141
|
-
raise "No networks. Please create one, or specify a network ID"
|
142
|
-
else
|
143
|
-
# use the network with the lowest ID - the safe default
|
144
|
-
self.networkids = networks.sort {|x,y| x['id'] <=> y['id']}[0]['id']
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
options = {
|
149
|
-
:serviceofferingid => flavor_id,
|
150
|
-
:templateid => image_id,
|
151
|
-
:name => name,
|
152
|
-
:zoneid => zoneid,
|
153
|
-
:networkids => networkids,
|
154
|
-
:account => account,
|
155
|
-
:diskofferingid => diskofferingid,
|
156
|
-
:displayname => displayname,
|
157
|
-
:domainid => domainid,
|
158
|
-
:group => group,
|
159
|
-
:hypervisor => hypervisor,
|
160
|
-
:keypair => keypair,
|
161
|
-
:securitygroupids => securitygroupids,
|
162
|
-
:size => size,
|
163
|
-
:userdata => userdata
|
164
|
-
}.delete_if {|k,v| v.nil? || v == "" }
|
165
|
-
data = service.deploy_virtual_machine(options)
|
166
|
-
merge_attributes(data)
|
167
|
-
true
|
168
|
-
end
|
169
|
-
|
170
|
-
private
|
171
|
-
|
172
|
-
def extract_job_id(job)
|
173
|
-
if job.kind_of? Integer
|
174
|
-
job
|
175
|
-
else
|
176
|
-
job['jobid'] || job['id']
|
177
|
-
end
|
178
|
-
end
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|