fog 1.36.0 → 1.37.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/Rakefile +0 -3
- data/fog.gemspec +4 -3
- data/lib/fog/digitalocean/compute_v2.rb +2 -1
- data/lib/fog/digitalocean/examples/getting_started.md +24 -48
- data/lib/fog/digitalocean/models/compute_v2/server.rb +4 -0
- data/lib/fog/digitalocean/models/compute_v2/ssh_key.rb +17 -16
- data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +1 -1
- data/lib/fog/digitalocean/requests/compute_v2/get_image_details.rb +1 -2
- data/lib/fog/openstack.rb +2 -0
- data/lib/fog/openstack/common.rb +46 -0
- data/lib/fog/openstack/compute.rb +3 -1
- data/lib/fog/openstack/core.rb +15 -3
- data/lib/fog/openstack/docs/compute.md +1 -1
- data/lib/fog/openstack/identity.rb +0 -37
- data/lib/fog/openstack/identity_v2.rb +9 -3
- data/lib/fog/openstack/identity_v3.rb +8 -3
- data/lib/fog/openstack/image.rb +1 -41
- data/lib/fog/openstack/image_v1.rb +9 -3
- data/lib/fog/openstack/image_v2.rb +7 -2
- data/lib/fog/openstack/metering.rb +2 -1
- data/lib/fog/openstack/models/compute/server.rb +5 -0
- data/lib/fog/openstack/models/identity_v2/user.rb +6 -2
- data/lib/fog/openstack/models/volume/availability_zone.rb +1 -4
- data/lib/fog/openstack/models/volume/availability_zones.rb +1 -4
- data/lib/fog/openstack/models/volume/transfer.rb +1 -9
- data/lib/fog/openstack/models/volume/transfers.rb +1 -4
- data/lib/fog/openstack/models/volume/volume.rb +6 -18
- data/lib/fog/openstack/models/volume/volume_type.rb +0 -3
- data/lib/fog/openstack/models/volume/volume_types.rb +1 -4
- data/lib/fog/openstack/models/volume/volumes.rb +1 -4
- data/lib/fog/openstack/models/volume_v1/availability_zone.rb +15 -0
- data/lib/fog/openstack/models/volume_v1/availability_zones.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/transfer.rb +18 -0
- data/lib/fog/openstack/models/volume_v1/transfers.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volume.rb +26 -0
- data/lib/fog/openstack/models/volume_v1/volume_type.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volume_types.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volumes.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/availability_zone.rb +15 -0
- data/lib/fog/openstack/models/volume_v2/availability_zones.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/transfer.rb +19 -0
- data/lib/fog/openstack/models/volume_v2/transfers.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volume.rb +27 -0
- data/lib/fog/openstack/models/volume_v2/volume_type.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volume_types.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volumes.rb +16 -0
- data/lib/fog/openstack/network.rb +2 -1
- data/lib/fog/openstack/orchestration.rb +2 -1
- data/lib/fog/openstack/planning.rb +2 -1
- data/lib/fog/openstack/requests/compute/evacuate_server.rb +26 -0
- data/lib/fog/openstack/requests/volume/accept_transfer.rb +8 -10
- data/lib/fog/openstack/requests/volume/create_transfer.rb +8 -10
- data/lib/fog/openstack/requests/volume/create_volume.rb +9 -40
- data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +13 -31
- data/lib/fog/openstack/requests/volume/create_volume_type.rb +2 -2
- data/lib/fog/openstack/requests/volume/delete_snapshot.rb +2 -2
- data/lib/fog/openstack/requests/volume/delete_transfer.rb +1 -3
- data/lib/fog/openstack/requests/volume/delete_volume.rb +2 -2
- data/lib/fog/openstack/requests/volume/delete_volume_type.rb +2 -2
- data/lib/fog/openstack/requests/volume/extend_volume.rb +2 -2
- data/lib/fog/openstack/requests/volume/get_quota.rb +2 -2
- data/lib/fog/openstack/requests/volume/get_quota_defaults.rb +7 -7
- data/lib/fog/openstack/requests/volume/get_quota_usage.rb +2 -2
- data/lib/fog/openstack/requests/volume/get_snapshot_details.rb +1 -20
- data/lib/fog/openstack/requests/volume/get_transfer_details.rb +1 -1
- data/lib/fog/openstack/requests/volume/get_volume_details.rb +1 -22
- data/lib/fog/openstack/requests/volume/get_volume_type_details.rb +2 -2
- data/lib/fog/openstack/requests/volume/list_snapshots.rb +2 -2
- data/lib/fog/openstack/requests/volume/list_snapshots_detailed.rb +2 -2
- data/lib/fog/openstack/requests/volume/list_transfers.rb +1 -1
- data/lib/fog/openstack/requests/volume/list_transfers_detailed.rb +1 -1
- data/lib/fog/openstack/requests/volume/list_volume_types.rb +2 -2
- data/lib/fog/openstack/requests/volume/list_volumes.rb +1 -34
- data/lib/fog/openstack/requests/volume/list_volumes_detailed.rb +1 -34
- data/lib/fog/openstack/requests/volume/list_zones.rb +2 -2
- data/lib/fog/openstack/requests/volume/set_tenant.rb +2 -2
- data/lib/fog/openstack/requests/volume/update_quota.rb +2 -2
- data/lib/fog/openstack/requests/volume/update_volume_type.rb +2 -2
- data/lib/fog/openstack/requests/volume_v1/accept_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/create_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/create_volume.rb +49 -0
- data/lib/fog/openstack/requests/volume_v1/create_volume_snapshot.rb +44 -0
- data/lib/fog/openstack/requests/volume_v1/create_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_snapshot.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/extend_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_quota_defaults.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_quota_usage.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_snapshot_details.rb +32 -0
- data/lib/fog/openstack/requests/volume_v1/get_transfer_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/get_volume_details.rb +35 -0
- data/lib/fog/openstack/requests/volume_v1/get_volume_type_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_snapshots.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_snapshots_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_transfers.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_transfers_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_volume_types.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/list_volumes.rb +46 -0
- data/lib/fog/openstack/requests/volume_v1/list_volumes_detailed.rb +46 -0
- data/lib/fog/openstack/requests/volume_v1/list_zones.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/real.rb +11 -0
- data/lib/fog/openstack/requests/volume_v1/real_mock.rb +14 -0
- data/lib/fog/openstack/requests/volume_v1/set_tenant.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/update_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/accept_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/create_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/create_volume.rb +49 -0
- data/lib/fog/openstack/requests/volume_v2/create_volume_snapshot.rb +43 -0
- data/lib/fog/openstack/requests/volume_v2/create_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_snapshot.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_transfer.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_volume_type.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/extend_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_quota_defaults.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_quota_usage.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_snapshot_details.rb +32 -0
- data/lib/fog/openstack/requests/volume_v2/get_transfer_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/get_volume_details.rb +35 -0
- data/lib/fog/openstack/requests/volume_v2/get_volume_type_details.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_snapshots.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_snapshots_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_transfers.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_transfers_detailed.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_volume_types.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/list_volumes.rb +46 -0
- data/lib/fog/openstack/requests/volume_v2/list_volumes_detailed.rb +46 -0
- data/lib/fog/openstack/requests/volume_v2/list_zones.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/real.rb +11 -0
- data/lib/fog/openstack/requests/volume_v2/real_mock.rb +14 -0
- data/lib/fog/openstack/requests/volume_v2/set_tenant.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_quota.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_volume_type.rb +2 -0
- data/lib/fog/openstack/storage.rb +2 -1
- data/lib/fog/openstack/volume.rb +21 -176
- data/lib/fog/openstack/volume_v1.rb +163 -0
- data/lib/fog/openstack/volume_v2.rb +164 -0
- data/lib/fog/rackspace/compute_v2.rb +1 -0
- data/lib/fog/rackspace/docs/compute_v2.md +1 -1
- data/lib/fog/rackspace/models/compute_v2/server.rb +14 -0
- data/lib/fog/rackspace/requests/compute_v2/get_vnc_console.rb +45 -0
- data/lib/fog/rackspace/requests/storage/put_container.rb +10 -6
- data/lib/fog/vcloud_director/compute.rb +18 -2
- data/lib/fog/vcloud_director/models/compute/disks.rb +6 -0
- data/lib/fog/vcloud_director/models/compute/networks.rb +7 -2
- data/lib/fog/vcloud_director/models/compute/vdc.rb +5 -0
- data/lib/fog/vcloud_director/models/compute/vm.rb +15 -1
- data/lib/fog/vcloud_director/parsers/compute/vm.rb +4 -0
- data/lib/fog/vcloud_director/parsers/compute/vms.rb +4 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +24 -3
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +23 -0
- data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +11 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +1 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +20 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms.rb +13 -0
- data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/post_power_on_vapp.rb +35 -0
- data/lib/fog/vcloud_director/requests/compute/post_reconfigure_vm.rb +118 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb +34 -0
- data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +2 -1
- data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +31 -0
- data/lib/fog/version.rb +1 -1
- data/lib/tasks/changelog_task.rb +1 -0
- data/spec/fog/openstack/shared_context.rb +11 -2
- data/spec/fog/openstack/volume/common_setup.yml +74 -50
- data/spec/fog/openstack/volume/volume_crud.yml +286 -236
- data/spec/fog/openstack/volume/volume_extend.yml +270 -363
- data/spec/fog/openstack/volume/volume_transfer_and_accept.yml +418 -424
- data/spec/fog/openstack/volume/volume_transfer_and_delete.yml +292 -321
- data/spec/fog/openstack/volume/volume_type_read.yml +30 -36
- data/spec/fog/openstack/volume_spec.rb +251 -224
- data/spec/fog/openstack/volume_v1/common_setup.yml +100 -0
- data/spec/fog/openstack/volume_v1/volume_crud.yml +535 -0
- data/spec/fog/openstack/volume_v1/volume_extend.yml +596 -0
- data/spec/fog/openstack/volume_v1/volume_transfer_and_accept.yml +1010 -0
- data/spec/fog/openstack/volume_v1/volume_transfer_and_delete.yml +645 -0
- data/spec/fog/openstack/volume_v1/volume_type_read.yml +114 -0
- data/spec/fog/openstack/volume_v2/common_setup.yml +100 -0
- data/spec/fog/openstack/volume_v2/volume_crud.yml +611 -0
- data/spec/fog/openstack/volume_v2/volume_extend.yml +669 -0
- data/spec/fog/openstack/volume_v2/volume_transfer_and_accept.yml +1072 -0
- data/spec/fog/openstack/volume_v2/volume_transfer_and_delete.yml +666 -0
- data/spec/fog/openstack/volume_v2/volume_type_read.yml +114 -0
- data/tests/helpers/mock_helper.rb +0 -4
- data/tests/openstack/authenticate_tests.rb +4 -0
- data/tests/openstack/volume_tests.rb +4 -0
- data/tests/rackspace/requests/compute_v2/server_tests.rb +4 -0
- metadata +135 -152
- data/lib/fog/bin/vsphere.rb +0 -28
- data/lib/fog/vsphere.rb +0 -1
- data/lib/fog/vsphere/compute.rb +0 -474
- data/lib/fog/vsphere/core.rb +0 -39
- data/lib/fog/vsphere/models/compute/cluster.rb +0 -28
- data/lib/fog/vsphere/models/compute/clusters.rb +0 -23
- data/lib/fog/vsphere/models/compute/customfield.rb +0 -16
- data/lib/fog/vsphere/models/compute/customfields.rb +0 -24
- data/lib/fog/vsphere/models/compute/customvalue.rb +0 -14
- data/lib/fog/vsphere/models/compute/customvalues.rb +0 -34
- data/lib/fog/vsphere/models/compute/datacenter.rb +0 -44
- data/lib/fog/vsphere/models/compute/datacenters.rb +0 -20
- data/lib/fog/vsphere/models/compute/datastore.rb +0 -21
- data/lib/fog/vsphere/models/compute/datastores.rb +0 -22
- data/lib/fog/vsphere/models/compute/folder.rb +0 -24
- data/lib/fog/vsphere/models/compute/folders.rb +0 -24
- data/lib/fog/vsphere/models/compute/interface.rb +0 -91
- data/lib/fog/vsphere/models/compute/interfaces.rb +0 -67
- data/lib/fog/vsphere/models/compute/interfacetype.rb +0 -22
- data/lib/fog/vsphere/models/compute/interfacetypes.rb +0 -35
- data/lib/fog/vsphere/models/compute/network.rb +0 -18
- data/lib/fog/vsphere/models/compute/networks.rb +0 -23
- data/lib/fog/vsphere/models/compute/process.rb +0 -18
- data/lib/fog/vsphere/models/compute/resource_pool.rb +0 -19
- data/lib/fog/vsphere/models/compute/resource_pools.rb +0 -23
- data/lib/fog/vsphere/models/compute/scsicontroller.rb +0 -16
- data/lib/fog/vsphere/models/compute/server.rb +0 -325
- data/lib/fog/vsphere/models/compute/servers.rb +0 -37
- data/lib/fog/vsphere/models/compute/servertype.rb +0 -36
- data/lib/fog/vsphere/models/compute/servertypes.rb +0 -24
- data/lib/fog/vsphere/models/compute/snapshot.rb +0 -35
- data/lib/fog/vsphere/models/compute/snapshots.rb +0 -27
- data/lib/fog/vsphere/models/compute/template.rb +0 -11
- data/lib/fog/vsphere/models/compute/templates.rb +0 -20
- data/lib/fog/vsphere/models/compute/volume.rb +0 -99
- data/lib/fog/vsphere/models/compute/volumes.rb +0 -54
- data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +0 -65
- data/lib/fog/vsphere/requests/compute/create_folder.rb +0 -22
- data/lib/fog/vsphere/requests/compute/create_vm.rb +0 -227
- data/lib/fog/vsphere/requests/compute/current_time.rb +0 -18
- data/lib/fog/vsphere/requests/compute/get_cluster.rb +0 -25
- data/lib/fog/vsphere/requests/compute/get_compute_resource.rb +0 -41
- data/lib/fog/vsphere/requests/compute/get_datacenter.rb +0 -31
- data/lib/fog/vsphere/requests/compute/get_datastore.rb +0 -30
- data/lib/fog/vsphere/requests/compute/get_folder.rb +0 -74
- data/lib/fog/vsphere/requests/compute/get_interface_type.rb +0 -15
- data/lib/fog/vsphere/requests/compute/get_network.rb +0 -59
- data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +0 -26
- data/lib/fog/vsphere/requests/compute/get_server_type.rb +0 -32
- data/lib/fog/vsphere/requests/compute/get_template.rb +0 -16
- data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +0 -57
- data/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb +0 -26
- data/lib/fog/vsphere/requests/compute/list_child_snapshots.rb +0 -71
- data/lib/fog/vsphere/requests/compute/list_clusters.rb +0 -72
- data/lib/fog/vsphere/requests/compute/list_compute_resources.rb +0 -92
- data/lib/fog/vsphere/requests/compute/list_customfields.rb +0 -21
- data/lib/fog/vsphere/requests/compute/list_datacenters.rb +0 -53
- data/lib/fog/vsphere/requests/compute/list_datastores.rb +0 -40
- data/lib/fog/vsphere/requests/compute/list_folders.rb +0 -44
- data/lib/fog/vsphere/requests/compute/list_interface_types.rb +0 -25
- data/lib/fog/vsphere/requests/compute/list_networks.rb +0 -38
- data/lib/fog/vsphere/requests/compute/list_processes.rb +0 -41
- data/lib/fog/vsphere/requests/compute/list_resource_pools.rb +0 -38
- data/lib/fog/vsphere/requests/compute/list_server_types.rb +0 -54
- data/lib/fog/vsphere/requests/compute/list_templates.rb +0 -48
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +0 -80
- data/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb +0 -20
- data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +0 -63
- data/lib/fog/vsphere/requests/compute/list_vm_snapshots.rb +0 -66
- data/lib/fog/vsphere/requests/compute/list_vm_volumes.rb +0 -52
- data/lib/fog/vsphere/requests/compute/modify_vm_interface.rb +0 -59
- data/lib/fog/vsphere/requests/compute/modify_vm_volume.rb +0 -25
- data/lib/fog/vsphere/requests/compute/revert_to_snapshot.rb +0 -30
- data/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb +0 -17
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +0 -727
- data/lib/fog/vsphere/requests/compute/vm_config_vnc.rb +0 -45
- data/lib/fog/vsphere/requests/compute/vm_destroy.rb +0 -23
- data/lib/fog/vsphere/requests/compute/vm_execute.rb +0 -47
- data/lib/fog/vsphere/requests/compute/vm_migrate.rb +0 -33
- data/lib/fog/vsphere/requests/compute/vm_power_off.rb +0 -39
- data/lib/fog/vsphere/requests/compute/vm_power_on.rb +0 -26
- data/lib/fog/vsphere/requests/compute/vm_reboot.rb +0 -31
- data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +0 -23
- data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +0 -24
- data/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb +0 -23
- data/lib/fog/vsphere/requests/compute/vm_take_snapshot.rb +0 -37
- data/tests/vsphere/compute_tests.rb +0 -53
- data/tests/vsphere/models/compute/server_tests.rb +0 -70
- data/tests/vsphere/models/compute/servers_tests.rb +0 -15
- data/tests/vsphere/requests/compute/current_time_tests.rb +0 -12
- data/tests/vsphere/requests/compute/get_network_tests.rb +0 -48
- data/tests/vsphere/requests/compute/list_child_snapshots_tests.rb +0 -10
- data/tests/vsphere/requests/compute/list_clusters_tests.rb +0 -11
- data/tests/vsphere/requests/compute/list_virtual_machines_tests.rb +0 -38
- data/tests/vsphere/requests/compute/list_vm_snapshots_tests.rb +0 -10
- data/tests/vsphere/requests/compute/revert_to_snapshot_tests.rb +0 -15
- data/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb +0 -20
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +0 -50
- data/tests/vsphere/requests/compute/vm_config_vnc_tests.rb +0 -19
- data/tests/vsphere/requests/compute/vm_destroy_tests.rb +0 -17
- data/tests/vsphere/requests/compute/vm_migrate_tests.rb +0 -16
- data/tests/vsphere/requests/compute/vm_power_off_tests.rb +0 -26
- data/tests/vsphere/requests/compute/vm_power_on_tests.rb +0 -17
- data/tests/vsphere/requests/compute/vm_reboot_tests.rb +0 -26
- data/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb +0 -19
- data/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb +0 -19
- data/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb +0 -19
- data/tests/vsphere/requests/compute/vm_take_snapshot_tests.rb +0 -19
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/vsphere/models/compute/interface'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Vsphere
|
7
|
-
class Interfaces < Fog::Collection
|
8
|
-
model Fog::Compute::Vsphere::Interface
|
9
|
-
|
10
|
-
attribute :server_id
|
11
|
-
|
12
|
-
def all(filters = {})
|
13
|
-
requires :server_id
|
14
|
-
|
15
|
-
case server
|
16
|
-
when Fog::Compute::Vsphere::Server
|
17
|
-
load service.list_vm_interfaces(server.id)
|
18
|
-
when Fog::Compute::Vsphere::Template
|
19
|
-
load service.list_template_interfaces(server.id)
|
20
|
-
else
|
21
|
-
raise 'interfaces should have vm or template'
|
22
|
-
end
|
23
|
-
|
24
|
-
self.each { |interface| interface.server_id = server.id }
|
25
|
-
self
|
26
|
-
end
|
27
|
-
|
28
|
-
def get(id)
|
29
|
-
requires :server_id
|
30
|
-
|
31
|
-
case server
|
32
|
-
when Fog::Compute::Vsphere::Server
|
33
|
-
interface = service.get_vm_interface(server.id, :key => id, :mac=> id, :name => id)
|
34
|
-
when Fog::Compute::Vsphere::Template
|
35
|
-
interface = service.get_template_interfaces(server.id, :key => id, :mac=> id, :name => id)
|
36
|
-
else
|
37
|
-
|
38
|
-
raise 'interfaces should have vm or template'
|
39
|
-
end
|
40
|
-
|
41
|
-
if interface
|
42
|
-
Fog::Compute::Vsphere::Interface.new(interface.merge(:server_id => server.id, :service => service))
|
43
|
-
else
|
44
|
-
nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def new(attributes = {})
|
49
|
-
if server_id
|
50
|
-
super({ :server_id => server_id }.merge(attributes))
|
51
|
-
else
|
52
|
-
super
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def server
|
57
|
-
return nil if server_id.nil?
|
58
|
-
service.servers.get(server_id)
|
59
|
-
end
|
60
|
-
|
61
|
-
def server=(new_server)
|
62
|
-
server_id = new_server.id
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class Vsphere
|
4
|
-
class Interfacetype < Fog::Model
|
5
|
-
identity :id
|
6
|
-
|
7
|
-
# attribute :class
|
8
|
-
attribute :name
|
9
|
-
attribute :datacenter
|
10
|
-
attribute :servertype
|
11
|
-
|
12
|
-
def initialize(attributes={} )
|
13
|
-
super attributes
|
14
|
-
end
|
15
|
-
|
16
|
-
def to_s
|
17
|
-
name
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/vsphere/models/compute/interfacetype'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Vsphere
|
7
|
-
class Interfacetypes < Fog::Collection
|
8
|
-
model Fog::Compute::Vsphere::Interfacetype
|
9
|
-
attr_accessor :datacenter
|
10
|
-
attr_accessor :servertype
|
11
|
-
|
12
|
-
def all(filters = { })
|
13
|
-
requires :servertype
|
14
|
-
case servertype
|
15
|
-
when Fog::Compute::Vsphere::Servertype
|
16
|
-
load service.list_interface_types(filters.merge({
|
17
|
-
:datacenter => datacenter,
|
18
|
-
:servertype => servertype.id
|
19
|
-
}))
|
20
|
-
else
|
21
|
-
raise 'interfacetypes should have a servertype'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def get(id)
|
26
|
-
requires :servertype
|
27
|
-
requires :datacenter
|
28
|
-
new service.get_interface_type id, servertype, datacenter
|
29
|
-
rescue Fog::Compute::Vsphere::NotFound
|
30
|
-
nil
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class Vsphere
|
4
|
-
class Network < Fog::Model
|
5
|
-
identity :id
|
6
|
-
|
7
|
-
attribute :name
|
8
|
-
attribute :datacenter
|
9
|
-
attribute :accessible # reachable by at least one hypervisor
|
10
|
-
attribute :virtualswitch
|
11
|
-
|
12
|
-
def to_s
|
13
|
-
name
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/vsphere/models/compute/network'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Vsphere
|
7
|
-
class Networks < Fog::Collection
|
8
|
-
model Fog::Compute::Vsphere::Network
|
9
|
-
attr_accessor :datacenter
|
10
|
-
|
11
|
-
def all(filters = {})
|
12
|
-
f = { :datacenter => datacenter }.merge(filters)
|
13
|
-
load service.list_networks(f)
|
14
|
-
end
|
15
|
-
|
16
|
-
def get(id)
|
17
|
-
requires :datacenter
|
18
|
-
new service.get_network(id, datacenter)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'fog/compute/models/server'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Vsphere
|
6
|
-
class Process < Fog::Model
|
7
|
-
attribute :cmd_line
|
8
|
-
attribute :end_time
|
9
|
-
attribute :exit_code
|
10
|
-
attribute :name
|
11
|
-
attribute :owner
|
12
|
-
attribute :pid
|
13
|
-
attribute :start_time
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class Vsphere
|
4
|
-
class ResourcePool < Fog::Model
|
5
|
-
identity :id
|
6
|
-
|
7
|
-
attribute :name
|
8
|
-
attribute :cluster
|
9
|
-
attribute :datacenter
|
10
|
-
attribute :configured_memory_mb
|
11
|
-
attribute :overall_status
|
12
|
-
|
13
|
-
def to_s
|
14
|
-
name
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'fog/core/collection'
|
2
|
-
require 'fog/vsphere/models/compute/resource_pool'
|
3
|
-
|
4
|
-
module Fog
|
5
|
-
module Compute
|
6
|
-
class Vsphere
|
7
|
-
class ResourcePools < Fog::Collection
|
8
|
-
model Fog::Compute::Vsphere::ResourcePool
|
9
|
-
attr_accessor :datacenter, :cluster
|
10
|
-
|
11
|
-
def all(filters = {})
|
12
|
-
load service.list_resource_pools(filters.merge(:datacenter => datacenter, :cluster => cluster))
|
13
|
-
end
|
14
|
-
|
15
|
-
def get(id)
|
16
|
-
requires :datacenter
|
17
|
-
requires :cluster
|
18
|
-
new service.get_resource_pool(id, cluster, datacenter)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Compute
|
3
|
-
class Vsphere
|
4
|
-
class SCSIController < Fog::Model
|
5
|
-
attribute :shared_bus
|
6
|
-
attribute :type
|
7
|
-
attribute :unit_number
|
8
|
-
attribute :key
|
9
|
-
|
10
|
-
def to_s
|
11
|
-
"#{type} ##{key}: shared: #{shared_bus}, unit_number: #{unit_number}"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,325 +0,0 @@
|
|
1
|
-
require 'fog/compute/models/server'
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
class Vsphere
|
6
|
-
class Server < Fog::Compute::Server
|
7
|
-
extend Fog::Deprecation
|
8
|
-
deprecate(:ipaddress, :public_ip_address)
|
9
|
-
|
10
|
-
# This will be the instance uuid which is globally unique across
|
11
|
-
# a vSphere deployment.
|
12
|
-
identity :id
|
13
|
-
|
14
|
-
# JJM REVISIT (Extend the model of a vmware server)
|
15
|
-
# SEE: http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.VirtualMachine.html
|
16
|
-
# (Take note of the See also section.)
|
17
|
-
# In particular:
|
18
|
-
# GuestInfo: information about the guest operating system
|
19
|
-
# VirtualMachineConfigInfo: Access to the VMX file and configuration
|
20
|
-
|
21
|
-
attribute :name
|
22
|
-
# UUID may be the same from VM to VM if the user does not select (I copied it)
|
23
|
-
attribute :uuid
|
24
|
-
attribute :hostname
|
25
|
-
attribute :operatingsystem
|
26
|
-
attribute :public_ip_address, :aliases => 'ipaddress'
|
27
|
-
attribute :power_state, :aliases => 'power'
|
28
|
-
attribute :tools_state, :aliases => 'tools'
|
29
|
-
attribute :tools_version
|
30
|
-
attribute :mac_addresses, :aliases => 'macs'
|
31
|
-
attribute :hypervisor, :aliases => 'host'
|
32
|
-
attribute :connection_state
|
33
|
-
attribute :mo_ref
|
34
|
-
attribute :path
|
35
|
-
attribute :memory_mb
|
36
|
-
attribute :cpus
|
37
|
-
attribute :corespersocket
|
38
|
-
attribute :interfaces
|
39
|
-
attribute :volumes
|
40
|
-
attribute :customvalues
|
41
|
-
attribute :overall_status, :aliases => 'status'
|
42
|
-
attribute :cluster
|
43
|
-
attribute :datacenter
|
44
|
-
attribute :resource_pool
|
45
|
-
attribute :instance_uuid # move this --> id
|
46
|
-
attribute :guest_id
|
47
|
-
attribute :hardware_version
|
48
|
-
attribute :scsi_controller # this is the first scsi controller. Right now no more of them can be used.
|
49
|
-
attribute :cpuHotAddEnabled
|
50
|
-
attribute :memoryHotAddEnabled
|
51
|
-
attribute :firmware
|
52
|
-
|
53
|
-
def initialize(attributes={} )
|
54
|
-
super defaults.merge(attributes)
|
55
|
-
self.instance_uuid ||= id # TODO: remvoe instance_uuid as it can be replaced with simple id
|
56
|
-
initialize_interfaces
|
57
|
-
initialize_volumes
|
58
|
-
initialize_customvalues
|
59
|
-
initialize_scsi_controller
|
60
|
-
end
|
61
|
-
|
62
|
-
# Lazy Loaded Attributes
|
63
|
-
[:datacenter, :cluster, :hypervisor, :resource_pool, :mac_addresses].each do |attr|
|
64
|
-
define_method attr do
|
65
|
-
attributes[attr] = attributes[attr].call if attributes[attr].is_a?(Proc)
|
66
|
-
attributes[attr]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
# End Lazy Loaded Attributes
|
70
|
-
|
71
|
-
def vm_reconfig_memory(options = {})
|
72
|
-
requires :instance_uuid, :memory
|
73
|
-
service.vm_reconfig_memory('instance_uuid' => instance_uuid, 'memory' => memory_mb)
|
74
|
-
end
|
75
|
-
|
76
|
-
def vm_reconfig_cpus(options = {})
|
77
|
-
requires :instance_uuid, :cpus, :corespersocket
|
78
|
-
service.vm_reconfig_cpus('instance_uuid' => instance_uuid, 'cpus' => cpus, 'corespersocket' => corespersocket)
|
79
|
-
end
|
80
|
-
|
81
|
-
def vm_reconfig_hardware(hardware_spec, options = {})
|
82
|
-
requires :instance_uuid
|
83
|
-
service.vm_reconfig_hardware('instance_uuid' => instance_uuid, 'hardware_spec' => hardware_spec)
|
84
|
-
end
|
85
|
-
|
86
|
-
def start(options = {})
|
87
|
-
requires :instance_uuid
|
88
|
-
service.vm_power_on('instance_uuid' => instance_uuid)
|
89
|
-
end
|
90
|
-
|
91
|
-
def stop(options = {})
|
92
|
-
options = { :force => !tools_installed? || !tools_running? }.merge(options)
|
93
|
-
requires :instance_uuid
|
94
|
-
service.vm_power_off('instance_uuid' => instance_uuid, 'force' => options[:force])
|
95
|
-
end
|
96
|
-
|
97
|
-
def reboot(options = {})
|
98
|
-
options = { :force => false }.merge(options)
|
99
|
-
requires :instance_uuid
|
100
|
-
service.vm_reboot('instance_uuid' => instance_uuid, 'force' => options[:force])
|
101
|
-
end
|
102
|
-
|
103
|
-
def destroy(options = {})
|
104
|
-
requires :instance_uuid
|
105
|
-
if ready?
|
106
|
-
# need to turn it off before destroying
|
107
|
-
stop(options)
|
108
|
-
wait_for { !ready? }
|
109
|
-
end
|
110
|
-
service.vm_destroy('instance_uuid' => instance_uuid)
|
111
|
-
end
|
112
|
-
|
113
|
-
def migrate(options = {})
|
114
|
-
options = { :priority => 'defaultPriority' }.merge(options)
|
115
|
-
requires :instance_uuid
|
116
|
-
service.vm_migrate('instance_uuid' => instance_uuid, 'priority' => options[:priority])
|
117
|
-
end
|
118
|
-
|
119
|
-
# Clone from a server object
|
120
|
-
#
|
121
|
-
# ==== Parameters
|
122
|
-
# *<~Hash>:
|
123
|
-
# * 'name'<~String> - *REQUIRED* Name of the _new_ VirtualMachine
|
124
|
-
# * See more options in vm_clone request/compute/vm_clone.rb
|
125
|
-
#
|
126
|
-
def clone(options = {})
|
127
|
-
requires :name, :datacenter, :path
|
128
|
-
|
129
|
-
# Convert symbols to strings
|
130
|
-
req_options = options.reduce({}) { |hsh, (k,v)| hsh[k.to_s] = v; hsh }
|
131
|
-
|
132
|
-
# Give our path to the request
|
133
|
-
req_options['template_path'] ="#{relative_path}/#{name}"
|
134
|
-
req_options['datacenter'] = "#{datacenter}"
|
135
|
-
|
136
|
-
# Perform the actual clone
|
137
|
-
clone_results = service.vm_clone(req_options)
|
138
|
-
|
139
|
-
# We need to assign the service, otherwise we can't reload the model
|
140
|
-
# Create the new VM model. TODO This only works when "wait=true"
|
141
|
-
new_vm = self.class.new(clone_results['new_vm'].merge(:service => self.service))
|
142
|
-
|
143
|
-
# We need to assign the collection otherwise we
|
144
|
-
# cannot reload the model.
|
145
|
-
new_vm.collection = self.collection
|
146
|
-
|
147
|
-
# Return the new VM model.
|
148
|
-
new_vm
|
149
|
-
end
|
150
|
-
|
151
|
-
def take_snapshot(options = {})
|
152
|
-
requires :instance_uuid
|
153
|
-
service.vm_take_snapshot(options.merge('instance_uuid' => instance_uuid))
|
154
|
-
end
|
155
|
-
|
156
|
-
def ready?
|
157
|
-
power_state == "poweredOn"
|
158
|
-
end
|
159
|
-
|
160
|
-
def tools_installed?
|
161
|
-
tools_state != "toolsNotInstalled"
|
162
|
-
end
|
163
|
-
|
164
|
-
def tools_running?
|
165
|
-
["toolsOk","toolsOld"].include? tools_state
|
166
|
-
end
|
167
|
-
|
168
|
-
# defines VNC attributes on the hypervisor
|
169
|
-
def config_vnc(options = {})
|
170
|
-
requires :instance_uuid
|
171
|
-
service.vm_config_vnc(options.merge('instance_uuid' => instance_uuid))
|
172
|
-
end
|
173
|
-
|
174
|
-
# returns a hash of VNC attributes required for service
|
175
|
-
def vnc
|
176
|
-
requires :instance_uuid
|
177
|
-
service.vm_get_vnc(instance_uuid)
|
178
|
-
end
|
179
|
-
|
180
|
-
def memory
|
181
|
-
memory_mb * 1024 * 1024
|
182
|
-
end
|
183
|
-
|
184
|
-
def sockets
|
185
|
-
cpus / corespersocket
|
186
|
-
end
|
187
|
-
|
188
|
-
def mac
|
189
|
-
interfaces.first.mac unless interfaces.empty?
|
190
|
-
end
|
191
|
-
|
192
|
-
def interfaces
|
193
|
-
attributes[:interfaces] ||= id.nil? ? [] : service.interfaces( :server_id => self.id )
|
194
|
-
end
|
195
|
-
|
196
|
-
def interface_ready? attrs
|
197
|
-
(attrs.is_a? Hash and attrs[:blocking]) or attrs.is_a? Fog::Compute::Vsphere::Interface
|
198
|
-
end
|
199
|
-
|
200
|
-
def add_interface attrs
|
201
|
-
Fog::Logger.deprecation("<server>.add_interface is deprecated. Call <server>.interfaces.create instead.")
|
202
|
-
|
203
|
-
interfaces.create(attrs)
|
204
|
-
end
|
205
|
-
|
206
|
-
def update_interface attrs
|
207
|
-
wait_for { not ready? } if interface_ready? attrs
|
208
|
-
service.update_vm_interface(id, attrs)
|
209
|
-
end
|
210
|
-
|
211
|
-
def destroy_interface attrs
|
212
|
-
Fog::Logger.deprecation("<server>.destroy_vm_interface is deprecated. Call <server>.interfaces.get(:key => <nic_key>).destroy instead.")
|
213
|
-
|
214
|
-
interfaces.get(attrs[:key] || attrs['key']).destroy
|
215
|
-
end
|
216
|
-
|
217
|
-
def volumes
|
218
|
-
attributes[:volumes] ||= id.nil? ? [] : service.volumes(:server_id => self.id)
|
219
|
-
end
|
220
|
-
|
221
|
-
def snapshots(opts = {})
|
222
|
-
service.snapshots(server_id: self.id).all(opts)
|
223
|
-
end
|
224
|
-
|
225
|
-
def find_snapshot(snapshot_ref)
|
226
|
-
snapshots.get(snapshot_ref)
|
227
|
-
end
|
228
|
-
|
229
|
-
def revert_snapshot(snapshot)
|
230
|
-
case snapshot
|
231
|
-
when Snapshot
|
232
|
-
service.revert_to_snapshot(snapshot)
|
233
|
-
when String
|
234
|
-
service.revert_to_snapshot(find_snapshot(snapshot))
|
235
|
-
else
|
236
|
-
fail ArgumentError, "snapshot has to be kind of Snapshot or String class"
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
def guest_processes(opts = {})
|
241
|
-
fail 'VM tools must be running' unless tools_running?
|
242
|
-
service.list_processes(self.id, opts)
|
243
|
-
end
|
244
|
-
|
245
|
-
def customvalues
|
246
|
-
attributes[:customvalues] ||= id.nil? ? [] : service.customvalues( :vm => self )
|
247
|
-
end
|
248
|
-
|
249
|
-
def scsi_controller
|
250
|
-
self.attributes[:scsi_controller] ||= service.get_vm_first_scsi_controller(id)
|
251
|
-
end
|
252
|
-
|
253
|
-
def folder
|
254
|
-
return nil unless datacenter and path
|
255
|
-
attributes[:folder] ||= service.folders(:datacenter => datacenter, :type => :vm).get(path)
|
256
|
-
end
|
257
|
-
|
258
|
-
def save
|
259
|
-
requires :name, :cluster, :datacenter
|
260
|
-
if persisted?
|
261
|
-
raise "update is not supported yet"
|
262
|
-
# service.update_vm(attributes)
|
263
|
-
else
|
264
|
-
self.id = service.create_vm(attributes)
|
265
|
-
end
|
266
|
-
reload
|
267
|
-
end
|
268
|
-
|
269
|
-
def new?
|
270
|
-
id.nil?
|
271
|
-
end
|
272
|
-
|
273
|
-
def reload
|
274
|
-
# reload does not re-read assoiciated attributes, so we clear it manually
|
275
|
-
[:interfaces, :volumes].each do |attr|
|
276
|
-
self.attributes.delete(attr)
|
277
|
-
end
|
278
|
-
super
|
279
|
-
end
|
280
|
-
|
281
|
-
def relative_path
|
282
|
-
requires :path, :datacenter
|
283
|
-
|
284
|
-
(path.split('/').reject {|e| e.empty?} - ["Datacenters", datacenter, "vm"]).join("/")
|
285
|
-
end
|
286
|
-
|
287
|
-
private
|
288
|
-
|
289
|
-
def defaults
|
290
|
-
{
|
291
|
-
:cpus => 1,
|
292
|
-
# :corespersocket => 1,
|
293
|
-
:memory_mb => 512,
|
294
|
-
:guest_id => 'otherGuest',
|
295
|
-
:path => '/'
|
296
|
-
}
|
297
|
-
end
|
298
|
-
|
299
|
-
def initialize_interfaces
|
300
|
-
if attributes[:interfaces] and attributes[:interfaces].is_a?(Array)
|
301
|
-
self.attributes[:interfaces].map! { |nic| nic.is_a?(Hash) ? service.interfaces.new(nic) : nic }
|
302
|
-
end
|
303
|
-
end
|
304
|
-
|
305
|
-
def initialize_volumes
|
306
|
-
if attributes[:volumes] and attributes[:volumes].is_a?(Array)
|
307
|
-
self.attributes[:volumes].map! { |vol| vol.is_a?(Hash) ? service.volumes.new(vol) : vol }
|
308
|
-
end
|
309
|
-
end
|
310
|
-
|
311
|
-
def initialize_customvalues
|
312
|
-
if attributes[:customvalues] and attributes[:customvalues].is_a?(Array)
|
313
|
-
self.attributes[:customvalues].map { |cfield| cfield.is_a?(Hash) ? service.customvalue.new(cfield) : cfield}
|
314
|
-
end
|
315
|
-
end
|
316
|
-
|
317
|
-
def initialize_scsi_controller
|
318
|
-
if attributes[:scsi_controller] and attributes[:scsi_controller].is_a?(Hash)
|
319
|
-
Fog::Compute::Vsphere::SCSIController.new(self.attributes[:scsi_controller])
|
320
|
-
end
|
321
|
-
end
|
322
|
-
end
|
323
|
-
end
|
324
|
-
end
|
325
|
-
end
|