fog 1.34.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +10 -24
- data/CHANGELOG.md +84 -0
- data/CONTRIBUTING.md +1 -1
- data/README.md +4 -20
- data/fog.gemspec +7 -5
- data/lib/fog.rb +1 -0
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/digitalocean/compute_v2.rb +108 -0
- data/lib/fog/digitalocean/models/compute_v2/flavor.rb +17 -0
- data/lib/fog/digitalocean/models/compute_v2/flavors.rb +21 -0
- data/lib/fog/digitalocean/models/compute_v2/image.rb +25 -0
- data/lib/fog/digitalocean/models/compute_v2/images.rb +36 -0
- data/lib/fog/digitalocean/models/compute_v2/region.rb +13 -0
- data/lib/fog/digitalocean/models/compute_v2/regions.rb +21 -0
- data/lib/fog/digitalocean/models/compute_v2/server.rb +166 -0
- data/lib/fog/digitalocean/models/compute_v2/servers.rb +39 -0
- data/lib/fog/digitalocean/models/compute_v2/ssh_key.rb +30 -0
- data/lib/fog/digitalocean/models/compute_v2/ssh_keys.rb +35 -0
- data/lib/fog/digitalocean/requests/compute_v2/change_kernel.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/convert_to_snapshot.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/create_server.rb +93 -0
- data/lib/fog/digitalocean/requests/compute_v2/create_ssh_key.rb +47 -0
- data/lib/fog/digitalocean/requests/compute_v2/delete_server.rb +28 -0
- data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +28 -0
- data/lib/fog/digitalocean/requests/compute_v2/disable_backups.rb +45 -0
- data/lib/fog/digitalocean/requests/compute_v2/enable_ipv6.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/enable_private_networking.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/get_droplet_action.rb +36 -0
- data/lib/fog/digitalocean/requests/compute_v2/get_image_details.rb +43 -0
- data/lib/fog/digitalocean/requests/compute_v2/get_server_details.rb +84 -0
- data/lib/fog/digitalocean/requests/compute_v2/get_ssh_key.rb +34 -0
- data/lib/fog/digitalocean/requests/compute_v2/list_droplet_actions.rb +38 -0
- data/lib/fog/digitalocean/requests/compute_v2/list_flavors.rb +131 -0
- data/lib/fog/digitalocean/requests/compute_v2/list_images.rb +50 -0
- data/lib/fog/digitalocean/requests/compute_v2/list_regions.rb +94 -0
- data/lib/fog/digitalocean/requests/compute_v2/list_servers.rb +28 -0
- data/lib/fog/digitalocean/requests/compute_v2/list_ssh_keys.rb +26 -0
- data/lib/fog/digitalocean/requests/compute_v2/password_reset.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/power_cycle.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/power_off.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/power_on.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/reboot_server.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/rebuild.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/rename.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/resize.rb +48 -0
- data/lib/fog/digitalocean/requests/compute_v2/restore.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/shutdown.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/snapshot.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/transfer_image.rb +44 -0
- data/lib/fog/digitalocean/requests/compute_v2/update_ssh_key.rb +46 -0
- data/lib/fog/digitalocean/requests/compute_v2/upgrade.rb +44 -0
- data/lib/fog/digitalocean/service.rb +51 -0
- data/lib/fog/linode/models/compute/kernels.rb +1 -1
- data/lib/fog/opennebula/models/compute/flavor.rb +13 -13
- data/lib/fog/opennebula/requests/compute/template_pool.rb +14 -11
- data/lib/fog/openstack.rb +2 -0
- data/lib/fog/openstack/core.rb +30 -3
- data/lib/fog/openstack/identity.rb +8 -7
- data/lib/fog/openstack/identity_v3.rb +1 -0
- data/lib/fog/openstack/image.rb +35 -130
- data/lib/fog/openstack/image_v1.rb +142 -0
- data/lib/fog/openstack/image_v2.rb +137 -0
- data/lib/fog/openstack/models/image_v1/image.rb +78 -0
- data/lib/fog/openstack/models/image_v1/images.rb +70 -0
- data/lib/fog/openstack/models/image_v2/image.rb +149 -0
- data/lib/fog/openstack/models/image_v2/images.rb +67 -0
- data/lib/fog/openstack/models/orchestration/stack.rb +5 -0
- data/lib/fog/openstack/models/volume/volume_type.rb +25 -0
- data/lib/fog/openstack/orchestration.rb +1 -0
- data/lib/fog/openstack/requests/compute/server_actions.rb +14 -3
- data/lib/fog/openstack/requests/{image → image_v1}/add_member_to_image.rb +2 -0
- data/lib/fog/openstack/requests/image_v1/create_image.rb +78 -0
- data/lib/fog/openstack/requests/image_v1/delete_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v1/get_image.rb +47 -0
- data/lib/fog/openstack/requests/image_v1/get_image_by_id.rb +34 -0
- data/lib/fog/openstack/requests/image_v1/get_image_members.rb +31 -0
- data/lib/fog/openstack/requests/image_v1/get_shared_images.rb +31 -0
- data/lib/fog/openstack/requests/image_v1/list_public_images.rb +35 -0
- data/lib/fog/openstack/requests/image_v1/list_public_images_detailed.rb +37 -0
- data/lib/fog/openstack/requests/image_v1/remove_member_from_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v1/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/image_v1/update_image.rb +66 -0
- data/lib/fog/openstack/requests/image_v1/update_image_members.rb +39 -0
- data/lib/fog/openstack/requests/image_v2/add_member_to_image.rb +26 -0
- data/lib/fog/openstack/requests/image_v2/add_tag_to_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/create_image.rb +54 -0
- data/lib/fog/openstack/requests/image_v2/deactivate_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/delete_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/download_image.rb +29 -0
- data/lib/fog/openstack/requests/image_v2/get_image.rb +47 -0
- data/lib/fog/openstack/requests/image_v2/get_image_by_id.rb +34 -0
- data/lib/fog/openstack/requests/image_v2/get_image_members.rb +31 -0
- data/lib/fog/openstack/requests/image_v2/get_member_details.rb +33 -0
- data/lib/fog/openstack/requests/image_v2/get_shared_images.rb +31 -0
- data/lib/fog/openstack/requests/image_v2/list_images.rb +35 -0
- data/lib/fog/openstack/requests/image_v2/reactivate_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/remove_member_from_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/remove_tag_from_image.rb +25 -0
- data/lib/fog/openstack/requests/image_v2/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/image_v2/update_image.rb +49 -0
- data/lib/fog/openstack/requests/image_v2/update_image_member.rb +34 -0
- data/lib/fog/openstack/requests/image_v2/upload_image.rb +30 -0
- data/lib/fog/openstack/requests/orchestration/patch_stack.rb +37 -0
- data/lib/fog/openstack/requests/volume/create_volume_type.rb +41 -0
- data/lib/fog/openstack/requests/{image/delete_image.rb → volume/delete_volume_type.rb} +6 -6
- data/lib/fog/openstack/requests/volume/get_quota_usage.rb +44 -0
- data/lib/fog/openstack/requests/volume/get_volume_type_details.rb +1 -1
- data/lib/fog/openstack/requests/volume/update_volume_type.rb +41 -0
- data/lib/fog/openstack/volume.rb +5 -0
- data/lib/fog/rackspace/models/compute_v2/server.rb +11 -1
- data/lib/fog/rackspace/models/compute_v2/servers.rb +2 -2
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +7 -2
- data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +13 -10
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/models/compute/server.rb +1 -1
- data/lib/tasks/changelog_task.rb +1 -0
- data/spec/fog/openstack/identity_v3/authv3_a.yml +45 -52
- data/spec/fog/openstack/identity_v3/authv3_b.yml +45 -52
- data/spec/fog/openstack/identity_v3/authv3_c.yml +95 -101
- data/spec/fog/openstack/identity_v3/authv3_project.yml +68 -75
- data/spec/fog/openstack/identity_v3/authv3_token.yml +212 -174
- data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +278 -266
- data/spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml +190 -202
- data/spec/fog/openstack/identity_v3/common_setup.yml +67 -445
- data/spec/fog/openstack/identity_v3/idv3_credential.yml +56 -26
- data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +292 -152
- data/spec/fog/openstack/identity_v3/idv3_domain.yml +99 -49
- data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +239 -119
- data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +414 -205
- data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +259 -136
- data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +474 -472
- data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +679 -626
- data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +536 -269
- data/spec/fog/openstack/identity_v3/idv3_policy.yml +76 -36
- data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +197 -97
- data/spec/fog/openstack/identity_v3/idv3_project.yml +135 -85
- data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +237 -127
- data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +625 -295
- data/spec/fog/openstack/identity_v3/idv3_project_hier_crud_list.yml +716 -355
- data/spec/fog/openstack/identity_v3/idv3_role.yml +134 -88
- data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +312 -118
- data/spec/fog/openstack/identity_v3/idv3_service.yml +179 -133
- data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +306 -212
- data/spec/fog/openstack/identity_v3/idv3_token.yml +213 -177
- data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +345 -188
- data/spec/fog/openstack/identity_v3/idv3_users.yml +182 -116
- data/spec/fog/openstack/identity_v3_spec.rb +103 -85
- data/spec/fog/openstack/{identity_v3/idv3_other_region.yml → image_v1/common_setup.yml} +50 -93
- data/spec/fog/openstack/image_v1/list_images.yml +54 -0
- data/spec/fog/openstack/image_v1_spec.rb +24 -0
- data/spec/fog/openstack/image_v2/common_setup.yml +144 -0
- data/spec/fog/openstack/image_v2/image_schema.json +190 -0
- data/spec/fog/openstack/image_v2/image_v2_activation.yml +3988 -0
- data/spec/fog/openstack/image_v2/image_v2_create_id.yml +291 -0
- data/spec/fog/openstack/image_v2/image_v2_crud.yml +437 -0
- data/spec/fog/openstack/image_v2/image_v2_member_crudl.yml +451 -0
- data/spec/fog/openstack/image_v2/image_v2_tags.yml +532 -0
- data/spec/fog/openstack/image_v2/image_v2_upload_download.yml +3966 -0
- data/spec/fog/openstack/image_v2/minimal.ova +0 -0
- data/spec/fog/openstack/image_v2_spec.rb +285 -0
- data/spec/fog/openstack/image_v2_upload_spec.rb +74 -0
- data/spec/fog/openstack/shared_context.rb +14 -10
- data/tests/compute/helper.rb +0 -3
- data/tests/digitalocean/requests/compute_v2/list_flavors_tests.rb +25 -0
- data/tests/digitalocean/requests/compute_v2/list_images_tests.rb +25 -0
- data/tests/digitalocean/requests/compute_v2/list_regions_tests.rb +21 -0
- data/tests/digitalocean/requests/compute_v2/server_tests.rb +77 -0
- data/tests/helpers/mock_helper.rb +1 -0
- data/tests/opennebula/models/compute/flavor_tests.rb +1 -1
- data/tests/openstack/requests/orchestration/stack_tests.rb +5 -1
- data/tests/openstack/requests/volume/volume_type_tests.rb +32 -0
- data/tests/rackspace/models/compute_v2/server_tests.rb +7 -7
- metadata +160 -236
- data/gemfiles/Gemfile-ruby-1.8.7 +0 -17
- data/lib/fog/bin/xenserver.rb +0 -29
- data/lib/fog/openstack/models/image/image.rb +0 -76
- data/lib/fog/openstack/models/image/images.rb +0 -67
- data/lib/fog/openstack/requests/image/create_image.rb +0 -76
- data/lib/fog/openstack/requests/image/get_image.rb +0 -45
- data/lib/fog/openstack/requests/image/get_image_by_id.rb +0 -32
- data/lib/fog/openstack/requests/image/get_image_members.rb +0 -29
- data/lib/fog/openstack/requests/image/get_shared_images.rb +0 -29
- data/lib/fog/openstack/requests/image/list_public_images.rb +0 -33
- data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +0 -35
- data/lib/fog/openstack/requests/image/remove_member_from_image.rb +0 -23
- data/lib/fog/openstack/requests/image/set_tenant.rb +0 -19
- data/lib/fog/openstack/requests/image/update_image.rb +0 -64
- data/lib/fog/openstack/requests/image/update_image_members.rb +0 -37
- data/lib/fog/xenserver.rb +0 -1
- data/lib/fog/xenserver/CHANGELOG.md +0 -77
- data/lib/fog/xenserver/compute.rb +0 -186
- data/lib/fog/xenserver/core.rb +0 -94
- data/lib/fog/xenserver/examples/README.md +0 -11
- data/lib/fog/xenserver/examples/chage_default_storage_repository.md +0 -99
- data/lib/fog/xenserver/examples/creating_servers.md +0 -168
- data/lib/fog/xenserver/examples/getting_started.md +0 -163
- data/lib/fog/xenserver/examples/networks-and-vlans.rb +0 -44
- data/lib/fog/xenserver/examples/storage_repositories.md +0 -94
- data/lib/fog/xenserver/models/compute/blob.rb +0 -22
- data/lib/fog/xenserver/models/compute/blobs.rb +0 -25
- data/lib/fog/xenserver/models/compute/bond.rb +0 -23
- data/lib/fog/xenserver/models/compute/bonds.rb +0 -25
- data/lib/fog/xenserver/models/compute/console.rb +0 -29
- data/lib/fog/xenserver/models/compute/consoles.rb +0 -25
- data/lib/fog/xenserver/models/compute/crash_dump.rb +0 -19
- data/lib/fog/xenserver/models/compute/crash_dumps.rb +0 -25
- data/lib/fog/xenserver/models/compute/dr_task.rb +0 -17
- data/lib/fog/xenserver/models/compute/dr_tasks.rb +0 -25
- data/lib/fog/xenserver/models/compute/gpu_group.rb +0 -22
- data/lib/fog/xenserver/models/compute/gpu_groups.rb +0 -25
- data/lib/fog/xenserver/models/compute/guest_metrics.rb +0 -26
- data/lib/fog/xenserver/models/compute/host.rb +0 -156
- data/lib/fog/xenserver/models/compute/host_cpu.rb +0 -34
- data/lib/fog/xenserver/models/compute/host_crash_dump.rb +0 -20
- data/lib/fog/xenserver/models/compute/host_crash_dumps.rb +0 -25
- data/lib/fog/xenserver/models/compute/host_metrics.rb +0 -26
- data/lib/fog/xenserver/models/compute/host_patch.rb +0 -25
- data/lib/fog/xenserver/models/compute/host_patchs.rb +0 -25
- data/lib/fog/xenserver/models/compute/hosts.rb +0 -25
- data/lib/fog/xenserver/models/compute/network.rb +0 -93
- data/lib/fog/xenserver/models/compute/networks.rb +0 -29
- data/lib/fog/xenserver/models/compute/pbd.rb +0 -37
- data/lib/fog/xenserver/models/compute/pbds.rb +0 -29
- data/lib/fog/xenserver/models/compute/pci.rb +0 -22
- data/lib/fog/xenserver/models/compute/pcis.rb +0 -25
- data/lib/fog/xenserver/models/compute/pgpu.rb +0 -20
- data/lib/fog/xenserver/models/compute/pgpus.rb +0 -25
- data/lib/fog/xenserver/models/compute/pif.rb +0 -54
- data/lib/fog/xenserver/models/compute/pif_metrics.rb +0 -28
- data/lib/fog/xenserver/models/compute/pifs.rb +0 -29
- data/lib/fog/xenserver/models/compute/pifs_metrics.rb +0 -25
- data/lib/fog/xenserver/models/compute/pool.rb +0 -75
- data/lib/fog/xenserver/models/compute/pool_patch.rb +0 -24
- data/lib/fog/xenserver/models/compute/pool_patchs.rb +0 -25
- data/lib/fog/xenserver/models/compute/pools.rb +0 -29
- data/lib/fog/xenserver/models/compute/role.rb +0 -19
- data/lib/fog/xenserver/models/compute/roles.rb +0 -25
- data/lib/fog/xenserver/models/compute/server.rb +0 -251
- data/lib/fog/xenserver/models/compute/server_appliance.rb +0 -21
- data/lib/fog/xenserver/models/compute/server_appliances.rb +0 -25
- data/lib/fog/xenserver/models/compute/servers.rb +0 -64
- data/lib/fog/xenserver/models/compute/storage_manager.rb +0 -28
- data/lib/fog/xenserver/models/compute/storage_managers.rb +0 -25
- data/lib/fog/xenserver/models/compute/storage_repositories.rb +0 -27
- data/lib/fog/xenserver/models/compute/storage_repository.rb +0 -90
- data/lib/fog/xenserver/models/compute/tunnel.rb +0 -20
- data/lib/fog/xenserver/models/compute/tunnels.rb +0 -25
- data/lib/fog/xenserver/models/compute/vbd.rb +0 -88
- data/lib/fog/xenserver/models/compute/vbd_metrics.rb +0 -25
- data/lib/fog/xenserver/models/compute/vbds.rb +0 -29
- data/lib/fog/xenserver/models/compute/vdi.rb +0 -102
- data/lib/fog/xenserver/models/compute/vdis.rb +0 -25
- data/lib/fog/xenserver/models/compute/vif.rb +0 -56
- data/lib/fog/xenserver/models/compute/vifs.rb +0 -25
- data/lib/fog/xenserver/models/compute/vlan.rb +0 -78
- data/lib/fog/xenserver/models/compute/vlans.rb +0 -35
- data/lib/fog/xenserver/models/compute/vmpp.rb +0 -35
- data/lib/fog/xenserver/models/compute/vmpps.rb +0 -25
- data/lib/fog/xenserver/models/compute/vtpm.rb +0 -18
- data/lib/fog/xenserver/models/compute/vtpms.rb +0 -25
- data/lib/fog/xenserver/parser.rb +0 -34
- data/lib/fog/xenserver/parsers/get_hosts.rb +0 -16
- data/lib/fog/xenserver/parsers/get_networks.rb +0 -16
- data/lib/fog/xenserver/parsers/get_pools.rb +0 -16
- data/lib/fog/xenserver/parsers/get_records.rb +0 -16
- data/lib/fog/xenserver/parsers/get_storage_repositories.rb +0 -16
- data/lib/fog/xenserver/parsers/get_vbds.rb +0 -16
- data/lib/fog/xenserver/parsers/get_vifs.rb +0 -16
- data/lib/fog/xenserver/parsers/get_vms.rb +0 -16
- data/lib/fog/xenserver/requests/compute/clone_server.rb +0 -30
- data/lib/fog/xenserver/requests/compute/create_network.rb +0 -46
- data/lib/fog/xenserver/requests/compute/create_server.rb +0 -144
- data/lib/fog/xenserver/requests/compute/create_sr.rb +0 -88
- data/lib/fog/xenserver/requests/compute/create_vbd.rb +0 -43
- data/lib/fog/xenserver/requests/compute/create_vdi.rb +0 -57
- data/lib/fog/xenserver/requests/compute/create_vif.rb +0 -62
- data/lib/fog/xenserver/requests/compute/create_vlan.rb +0 -43
- data/lib/fog/xenserver/requests/compute/destroy_network.rb +0 -31
- data/lib/fog/xenserver/requests/compute/destroy_record.rb +0 -11
- data/lib/fog/xenserver/requests/compute/destroy_server.rb +0 -20
- data/lib/fog/xenserver/requests/compute/destroy_sr.rb +0 -28
- data/lib/fog/xenserver/requests/compute/destroy_vdi.rb +0 -20
- data/lib/fog/xenserver/requests/compute/destroy_vif.rb +0 -20
- data/lib/fog/xenserver/requests/compute/destroy_vlan.rb +0 -30
- data/lib/fog/xenserver/requests/compute/disable_host.rb +0 -23
- data/lib/fog/xenserver/requests/compute/eject_vbd.rb +0 -17
- data/lib/fog/xenserver/requests/compute/enable_host.rb +0 -22
- data/lib/fog/xenserver/requests/compute/get_record.rb +0 -31
- data/lib/fog/xenserver/requests/compute/get_records.rb +0 -24
- data/lib/fog/xenserver/requests/compute/insert_vbd.rb +0 -17
- data/lib/fog/xenserver/requests/compute/provision_server.rb +0 -17
- data/lib/fog/xenserver/requests/compute/reboot_host.rb +0 -17
- data/lib/fog/xenserver/requests/compute/reboot_server.rb +0 -17
- data/lib/fog/xenserver/requests/compute/scan_sr.rb +0 -17
- data/lib/fog/xenserver/requests/compute/set_affinity.rb +0 -19
- data/lib/fog/xenserver/requests/compute/set_attribute.rb +0 -19
- data/lib/fog/xenserver/requests/compute/shutdown_host.rb +0 -17
- data/lib/fog/xenserver/requests/compute/shutdown_server.rb +0 -17
- data/lib/fog/xenserver/requests/compute/snapshot_revert.rb +0 -24
- data/lib/fog/xenserver/requests/compute/snapshot_server.rb +0 -17
- data/lib/fog/xenserver/requests/compute/start_server.rb +0 -17
- data/lib/fog/xenserver/requests/compute/start_vm.rb +0 -19
- data/lib/fog/xenserver/requests/compute/unplug_pbd.rb +0 -20
- data/lib/fog/xenserver/requests/compute/unplug_vbd.rb +0 -25
- data/lib/fog/xenserver/utilities.rb +0 -8
- data/tests/xenserver/README +0 -21
- data/tests/xenserver/compute_tests.rb +0 -51
- data/tests/xenserver/helper.rb +0 -36
- data/tests/xenserver/models/compute/console_test.rb +0 -35
- data/tests/xenserver/models/compute/consoles_test.rb +0 -19
- data/tests/xenserver/models/compute/host_cpu_tests.rb +0 -58
- data/tests/xenserver/models/compute/host_metrics_tests.rb +0 -48
- data/tests/xenserver/models/compute/host_tests.rb +0 -98
- data/tests/xenserver/models/compute/hosts_tests.rb +0 -22
- data/tests/xenserver/models/compute/network_tests.rb +0 -79
- data/tests/xenserver/models/compute/networks_tests.rb +0 -22
- data/tests/xenserver/models/compute/pbd_tests.rb +0 -76
- data/tests/xenserver/models/compute/pbds_tests.rb +0 -22
- data/tests/xenserver/models/compute/pif_tests.rb +0 -58
- data/tests/xenserver/models/compute/pifs_tests.rb +0 -22
- data/tests/xenserver/models/compute/pool_tests.rb +0 -56
- data/tests/xenserver/models/compute/pools_tests.rb +0 -30
- data/tests/xenserver/models/compute/server_tests.rb +0 -184
- data/tests/xenserver/models/compute/servers_tests.rb +0 -89
- data/tests/xenserver/models/compute/storage_repositories_tests.rb +0 -30
- data/tests/xenserver/models/compute/storage_repository_tests.rb +0 -114
- data/tests/xenserver/models/compute/vbd_tests.rb +0 -115
- data/tests/xenserver/models/compute/vbds_tests.rb +0 -22
- data/tests/xenserver/models/compute/vif_tests.rb +0 -53
- data/tests/xenserver/models/compute/vifs_tests.rb +0 -22
- data/tests/xenserver/models/compute/vlan_tests.rb +0 -76
- data/tests/xenserver/models/compute/vlans_tests.rb +0 -36
- data/tests/xenserver/requests/compute/clone_server_tests.rb +0 -32
- data/tests/xenserver/requests/compute/create_network_tests.rb +0 -20
- data/tests/xenserver/requests/compute/create_server_tests.rb +0 -129
- data/tests/xenserver/requests/compute/create_sr_tests.rb +0 -54
- data/tests/xenserver/requests/compute/create_vdi_tests.rb +0 -80
- data/tests/xenserver/requests/compute/create_vif_tests.rb +0 -88
- data/tests/xenserver/requests/compute/create_vlan_tests.rb +0 -36
- data/tests/xenserver/requests/compute/destroy_network_tests.rb +0 -13
- data/tests/xenserver/requests/compute/destroy_sr_tests.rb +0 -46
- data/tests/xenserver/requests/compute/destroy_vdi_tests.rb +0 -25
- data/tests/xenserver/requests/compute/destroy_vlan_tests.rb +0 -36
- data/tests/xenserver/requests/compute/disable_host_tests.rb +0 -16
- data/tests/xenserver/requests/compute/enable_host_tests.rb +0 -16
- data/tests/xenserver/requests/compute/get_record_tests.rb +0 -15
- data/tests/xenserver/requests/compute/set_attribute_tests.rb +0 -66
- data/tests/xenserver/requests/compute/unplug_pbd_tests.rb +0 -48
- data/tests/xenserver/xenserver_tests.rb +0 -33
@@ -1,11 +0,0 @@
|
|
1
|
-
# fog/xenserver compute examples
|
2
|
-
|
3
|
-
fog/xenserver examples contributed by BVox World S.L.U.
|
4
|
-
Original examples from https://github.com/bvox/fog-xenserver-examples
|
5
|
-
|
6
|
-
Maintainer: Sergio Rubio <rubiojr@bvox.net>
|
7
|
-
|
8
|
-
A general introduction to Fog is available at:
|
9
|
-
|
10
|
-
http://fog.io
|
11
|
-
|
@@ -1,99 +0,0 @@
|
|
1
|
-
# How To Change the Default Storage Repository to File-based VHD-on-EXT3
|
2
|
-
|
3
|
-
**NOTE: Requires fog > 1.8 (currently in development as of this writing)**
|
4
|
-
|
5
|
-
This tutorial explains how to convert a local Logical Volume Manager (LVM)
|
6
|
-
based storage repository into a file-based (VHD) storage repository.
|
7
|
-
|
8
|
-
It's the fog/xenserver version of the original Citrix KB article:
|
9
|
-
|
10
|
-
http://support.citrix.com/article/ctx116324
|
11
|
-
|
12
|
-
To create this tutorial, I've used a vanilla XCP 1.6 ISO install in VirtualBox.
|
13
|
-
|
14
|
-
## Create the connection
|
15
|
-
|
16
|
-
```ruby
|
17
|
-
require 'fog'
|
18
|
-
|
19
|
-
conn = Fog::Compute.new({
|
20
|
-
:provider => 'XenServer',
|
21
|
-
:xenserver_url => '192.168.1.39',
|
22
|
-
:xenserver_username => 'root',
|
23
|
-
:xenserver_password => 'secret'
|
24
|
-
})
|
25
|
-
```
|
26
|
-
|
27
|
-
## Remove the LVM-backed storage repository (SR).
|
28
|
-
|
29
|
-
Find the default LVM storage repository:
|
30
|
-
|
31
|
-
```ruby
|
32
|
-
#
|
33
|
-
# Equivalent to:
|
34
|
-
# xe sr-list type=lvm
|
35
|
-
#
|
36
|
-
lvm_sr = nil
|
37
|
-
conn.storage_repositories.each do |sr|
|
38
|
-
lvm_sr = sr if sr.type == 'lvm'
|
39
|
-
end
|
40
|
-
```
|
41
|
-
|
42
|
-
Determine the UUID for your default SR's physical block device:
|
43
|
-
|
44
|
-
```ruby
|
45
|
-
#
|
46
|
-
# Equivalent to:
|
47
|
-
# xe pbd-list sr-uuid=your SR UUID
|
48
|
-
#
|
49
|
-
if lvm_sr
|
50
|
-
conn.pbds.each do |pbd|
|
51
|
-
# Unplug it if found
|
52
|
-
# Equivalent to:
|
53
|
-
# xe pbd-unplug uuid=your PBD UUID
|
54
|
-
#
|
55
|
-
pbd.unplug if pbd.storage_repository.uuid == lvm_sr.uuid
|
56
|
-
end
|
57
|
-
# Destroy the SR
|
58
|
-
lvm_sr.destroy
|
59
|
-
end
|
60
|
-
```
|
61
|
-
|
62
|
-
Create a new VHD-backed SR:
|
63
|
-
|
64
|
-
```ruby
|
65
|
-
#
|
66
|
-
# Equivalent to:
|
67
|
-
#
|
68
|
-
# xe sr-create content-type="local SR" \
|
69
|
-
# host-uuid=5d189b7a-cd5e-4029-9940-d4daaa34633d \
|
70
|
-
# type=ext device-config-device=/dev/sda3 shared=false \
|
71
|
-
# name-label="Local File SR"
|
72
|
-
#
|
73
|
-
sr = conn.storage_repositories.create :name => 'Local File SR',
|
74
|
-
:host => conn.hosts.first,
|
75
|
-
:type => 'ext',
|
76
|
-
:content_type => 'local SR',
|
77
|
-
:device_config => { :device => '/dev/sda3' },
|
78
|
-
:shared => false
|
79
|
-
```
|
80
|
-
|
81
|
-
Set your SR as the default SR on the system:
|
82
|
-
|
83
|
-
```ruby
|
84
|
-
#
|
85
|
-
# Equivalent command:
|
86
|
-
# xe pool-param-set suspend-image-SR='YOUR NEW SR UUID' uuid=bleh
|
87
|
-
#
|
88
|
-
conn.pools.first.default_storage_repository = sr
|
89
|
-
```
|
90
|
-
|
91
|
-
Set your SR as the default location for suspended VM images:
|
92
|
-
|
93
|
-
```ruby
|
94
|
-
#
|
95
|
-
# Equivalent command:
|
96
|
-
# xe pool-param-set suspend-image-SR= YOUR NEW SR UUID uuid=bleh
|
97
|
-
#
|
98
|
-
conn.pools.first.suspend_image_sr = sr
|
99
|
-
```
|
@@ -1,168 +0,0 @@
|
|
1
|
-
# Creating servers (VMs) and templates
|
2
|
-
|
3
|
-
The basic server creation steps are detailed in the getting started tutorial.
|
4
|
-
|
5
|
-
Now let's do something a little bit more complex and probably more useful in
|
6
|
-
day-to-day operations. That is:
|
7
|
-
|
8
|
-
1. Uploading a VHD image.
|
9
|
-
2. Create a new template with it.
|
10
|
-
3. Spin a new server using the recently added template.
|
11
|
-
|
12
|
-
## Part I: Upload the VHD
|
13
|
-
|
14
|
-
Assuming we have an image file 'ubuntu.vhd' ready to be uploaded, let's create
|
15
|
-
the connection to the XenServer host and upload the image to the storage repository,
|
16
|
-
using SSH. The code also assumes that you have a file storage repository mounted
|
17
|
-
somewhere in /var/run/sr-mount/#{sr-UUID} (the standard XenServer base directory
|
18
|
-
for mounted storage repositories).
|
19
|
-
|
20
|
-
require 'fog'
|
21
|
-
require 'net/scp'
|
22
|
-
require 'uuidtools'
|
23
|
-
|
24
|
-
#
|
25
|
-
# Create the connection to the XenServer host
|
26
|
-
#
|
27
|
-
xenserver = Fog::Compute.new({
|
28
|
-
:provider => 'XenServer',
|
29
|
-
:xenserver_url => 'xenserver-test',
|
30
|
-
:xenserver_username => 'root',
|
31
|
-
:xenserver_password => 'secret',
|
32
|
-
})
|
33
|
-
|
34
|
-
|
35
|
-
We'll be uploading the image to the "Local File SR" storage repository, so
|
36
|
-
we need the reference to this SR (Storage Repository):
|
37
|
-
|
38
|
-
sr = xenserver.storage_repositories.find { |sr| sr.name == "Local File SR" }
|
39
|
-
|
40
|
-
XenServer uses UUIDs to store images in the storage repositories, so we will
|
41
|
-
emulate that behavior, creating a new UUID for our image and uploading it.
|
42
|
-
|
43
|
-
#
|
44
|
-
# Use the excelent uuidtools gem to create the new UUID
|
45
|
-
# for the image
|
46
|
-
#
|
47
|
-
image_uuid = UUIDTools::UUID.random_create.to_s
|
48
|
-
|
49
|
-
|
50
|
-
To upload the new image using SCP, we need the destination directory, where the
|
51
|
-
SR is mounted. In our case, the storage repository mount point is
|
52
|
-
/var/run/sr-mount/#{sr.uuid} (where sr.uuid is the UUID of the storage
|
53
|
-
repository). We will upload the new image there:
|
54
|
-
|
55
|
-
sr_mount_point = "/var/run/sr-mount/#{sr.uuid}"
|
56
|
-
# Target image file path. We will upload the local image to the destination
|
57
|
-
# using SCP
|
58
|
-
destination = File.join(sr_mount_point, "#{image_uuid}.vhd")
|
59
|
-
# source image, located in the current directory
|
60
|
-
source = 'ubuntu.vhd'
|
61
|
-
# Use the XenServer root credentials to upload
|
62
|
-
Net::SSH.start('xenserver-test', 'root', :password => 'secret') do |ssh|
|
63
|
-
ssh.scp.upload!(source, destination) do |ch, name, sent, total|
|
64
|
-
# print progress
|
65
|
-
p = (sent.to_f * 100 / total.to_f).to_i.to_s
|
66
|
-
print "\rProgress: #{p}% completed"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
We need to let the XenServer know, that there's a new image:
|
71
|
-
|
72
|
-
sr.scan
|
73
|
-
|
74
|
-
Now that XenServer is aware of the new image, get its reference
|
75
|
-
and set the image name attribute to 'ubuntu-template'
|
76
|
-
|
77
|
-
ubuntu_vdi = xenserver.vdis.find { |vdi| vdi.uuid == image_uuid }
|
78
|
-
ubuntu_vdi.set_attribute 'name_label', 'ubuntu-template'
|
79
|
-
|
80
|
-
Good! the image is ready to be used.
|
81
|
-
|
82
|
-
## Part II: create the server template
|
83
|
-
|
84
|
-
We have the image ready to be used by our new template.
|
85
|
-
|
86
|
-
Templates are regular servers, so let's create one with 512 MB of RAM, 1 CPU
|
87
|
-
and a network card. The main difference with a regular server from an API
|
88
|
-
point of view is that we will not start it.
|
89
|
-
|
90
|
-
We will also create the template as PV (paravirtual):
|
91
|
-
|
92
|
-
server_mem = (512 * 1024 * 1024).to_s
|
93
|
-
server = xenserver.servers.new :name => "ubuntu-template",
|
94
|
-
# Required when using Server.new
|
95
|
-
:affinity => xenserver.hosts.first,
|
96
|
-
:other_config => {},
|
97
|
-
:pv_bootloader => 'pygrub', # PV related
|
98
|
-
:hvm_boot_policy => '', # PV related
|
99
|
-
:pv_args => '-- console=hvc0', # PV related
|
100
|
-
:memory_static_max => mem,
|
101
|
-
:memory_static_min => mem,
|
102
|
-
:memory_dynamic_max => mem,
|
103
|
-
:memory_dynamic_min => mem
|
104
|
-
server.save
|
105
|
-
|
106
|
-
We need to attach the disk image to a VBD and to the server
|
107
|
-
|
108
|
-
xenserver.vbds.create :server => server, :vdi => ubuntu_vdi
|
109
|
-
|
110
|
-
Note that we're using Server.new here, instead of Server.create.
|
111
|
-
Server.create would start the server, and that's not what we want here.
|
112
|
-
|
113
|
-
Let's add the NIC (VIF or virtual interface) to the server.
|
114
|
-
|
115
|
-
I have a network in my XenServer named "Pool-wide network associated with eth0"
|
116
|
-
bridged to the physical eth0 NIC and I will attach the new NIC to that network.
|
117
|
-
|
118
|
-
Don't be scared by the VIF creation code. There are easier ways to create a
|
119
|
-
VIF, and we'll be dealing with that and some other cases in the networking
|
120
|
-
tutorial (TODO).
|
121
|
-
|
122
|
-
First, let's find the network since we'll need the reference.
|
123
|
-
|
124
|
-
net = xenserver.networks.find { |n| n.name == 'Pool-wide network associated with eth0' }
|
125
|
-
|
126
|
-
To create the VM VIF, we need to set some attributes and use the
|
127
|
-
create_vif_custom request:
|
128
|
-
|
129
|
-
vif_attr = {
|
130
|
-
'MAC_autogenerated' => 'True',
|
131
|
-
'VM' => server.reference, # we need the VM reference here
|
132
|
-
'network' => net.reference, # we need the Network reference here
|
133
|
-
'MAC' => '', # ignored, since we use autogeneration
|
134
|
-
'device' => '0',
|
135
|
-
'MTU' => '0',
|
136
|
-
'other_config' => {},
|
137
|
-
'qos_algorithm_type' => 'ratelimit',
|
138
|
-
'qos_algorithm_params' => {}
|
139
|
-
}
|
140
|
-
xenserver.create_vif_custom vif_attr
|
141
|
-
|
142
|
-
|
143
|
-
The template is now ready to be used and we can list it!
|
144
|
-
|
145
|
-
xenserver.servers.custom_templates.find { |t| puts t.name }
|
146
|
-
|
147
|
-
## Party III: spin a new server using the brand new template
|
148
|
-
|
149
|
-
Now that we have the template in place, it's easy to create as many servers
|
150
|
-
as you want. All of them will share hardware specs with the template. That is,
|
151
|
-
512 MB of RAM, 1 CPU, 1 NIC attached to the 'Pool-wide network...':
|
152
|
-
|
153
|
-
xenserver.servers.create :name => 'my-brand-new-server',
|
154
|
-
:template_name => 'ubuntu-template'
|
155
|
-
|
156
|
-
|
157
|
-
# The End
|
158
|
-
|
159
|
-
Pretty similar code is used by knife-xenserver (http://github.com/bvox/knife-xenserver)
|
160
|
-
to upload new templates. Have a look at it if you're interested, it's full of
|
161
|
-
examples and fog/xenserver tricks to manage XenServer/XCP hosts.
|
162
|
-
|
163
|
-
The full source code used in this tutorial is available at:
|
164
|
-
|
165
|
-
https://github.com/bvox/fog-xenserver-examples/blob/master/upload_template_and_create.rb
|
166
|
-
|
167
|
-
Enjoy!
|
168
|
-
|
@@ -1,163 +0,0 @@
|
|
1
|
-
# Getting started: the compute service
|
2
|
-
|
3
|
-
## Connecting, retrieving and managing server objects
|
4
|
-
|
5
|
-
First, create a connection to the XenServer host:
|
6
|
-
|
7
|
-
require 'fog'
|
8
|
-
require 'pp'
|
9
|
-
|
10
|
-
#
|
11
|
-
# http://rubydoc.info/github/fog/fog/Fog/Compute/XenServer/Real
|
12
|
-
#
|
13
|
-
conn = Fog::Compute.new({
|
14
|
-
:provider => 'XenServer',
|
15
|
-
:xenserver_url => 'xenserver-test',
|
16
|
-
:xenserver_username => 'root',
|
17
|
-
:xenserver_password => 'changeme',
|
18
|
-
:xenserver_defaults => {
|
19
|
-
:template => "squeeze-test"
|
20
|
-
}
|
21
|
-
})
|
22
|
-
|
23
|
-
## Listing servers (VMs) and templates
|
24
|
-
|
25
|
-
We try to follow fog naming conventions and behavior as much as we can, so the
|
26
|
-
terminology used in fog/xenserver is a little bit different from the one
|
27
|
-
used in XAPI/XenServer documents. In particular:
|
28
|
-
|
29
|
-
* A Fog::Compute::XenServer::Server is a XenServer VM or DomU
|
30
|
-
|
31
|
-
* A Fog::Compute::XenServer::Host is a Hypervisor or Dom0
|
32
|
-
|
33
|
-
Having that in mind, we can start doing things with out XenServer host.
|
34
|
-
|
35
|
-
Listing all the servers (VMs):
|
36
|
-
|
37
|
-
conn.servers.all
|
38
|
-
|
39
|
-
This will return a list of Fog::Compute::XenServer::Server.
|
40
|
-
|
41
|
-
List all the servers whose name matches Ubuntu:
|
42
|
-
|
43
|
-
conn.servers.all :name_matches => "Ubuntu"
|
44
|
-
|
45
|
-
Listing the first server running (templates aren't included by default
|
46
|
-
in the list):
|
47
|
-
|
48
|
-
server = conn.servers.first
|
49
|
-
|
50
|
-
Listing custom templates, that is, the ones created by the user:
|
51
|
-
|
52
|
-
custom = conn.servers.custom_templates
|
53
|
-
|
54
|
-
Listing built-in templates (the templates available after a fresh install):
|
55
|
-
|
56
|
-
built_in = conn.servers.builtin_templates
|
57
|
-
|
58
|
-
Templates are regular Fog::Compute::XenServer::Server objects too, so you can
|
59
|
-
inspect some of their attributes. The relevant XAPI documentation:
|
60
|
-
|
61
|
-
http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VM
|
62
|
-
|
63
|
-
Fog::Compute::XenServer::Server attributes and operations usually map to the
|
64
|
-
ones found in the official Citrix documentation, and they are available at:
|
65
|
-
|
66
|
-
http://rubydoc.info/github/fog/fog/Fog/Compute/XenServer/Server
|
67
|
-
|
68
|
-
and
|
69
|
-
|
70
|
-
https://github.com/fog/fog/blob/master/lib/fog/xenserver/models/compute/server.rb
|
71
|
-
|
72
|
-
## Server operations and attributes
|
73
|
-
|
74
|
-
Getting server VIFs (virtual network interfaces):
|
75
|
-
|
76
|
-
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VIF
|
77
|
-
server.networks
|
78
|
-
# or server.vifs
|
79
|
-
|
80
|
-
Listing the server VBDs (virtual block devices):
|
81
|
-
|
82
|
-
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VBD
|
83
|
-
server.vbds
|
84
|
-
|
85
|
-
|
86
|
-
Get VDIs objects (virtual disk images) attached to the server:
|
87
|
-
|
88
|
-
server.vbds.each do |vbd|
|
89
|
-
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VDI
|
90
|
-
vdi = vbd.vdi
|
91
|
-
# In bytes
|
92
|
-
puts vdi.virtual_size
|
93
|
-
puts vdi.physical_utilisation
|
94
|
-
end
|
95
|
-
|
96
|
-
## Server creation and life-cycle management
|
97
|
-
|
98
|
-
Creating a new server/VM:
|
99
|
-
|
100
|
-
server = conn.servers.create :name => 'foobar',
|
101
|
-
:template_name => 'squeeze-test'
|
102
|
-
|
103
|
-
The server is automatically started after that.
|
104
|
-
|
105
|
-
Note that template_name is optional if you have specified the ':template'
|
106
|
-
parameter when when creating the connection.
|
107
|
-
|
108
|
-
If you don't want to automatically start the server, use 'new' instead of 'create':
|
109
|
-
|
110
|
-
server = conn.servers.new :name => 'foobar',
|
111
|
-
:template_name => 'squeeze-test'
|
112
|
-
|
113
|
-
and set auto_start to false when saving it:
|
114
|
-
|
115
|
-
server.save :auto_start => false
|
116
|
-
|
117
|
-
Shutting down the server, By forcing it
|
118
|
-
|
119
|
-
server.stop 'hard'
|
120
|
-
# server.hard_shutdown is equivalent
|
121
|
-
|
122
|
-
Doing a clean shutdown
|
123
|
-
|
124
|
-
server.stop 'clean'
|
125
|
-
# server.clean_shutdown is equivalent
|
126
|
-
|
127
|
-
And finally, destroy it (it will force a shutdown first if running):
|
128
|
-
|
129
|
-
server.destroy
|
130
|
-
|
131
|
-
# XenServer Host (Dom0) operations
|
132
|
-
|
133
|
-
The are some operations that can be performed on the host, without retrieving
|
134
|
-
and/or manipulating servers:
|
135
|
-
|
136
|
-
Listing all the VBDs (virtual block devices):
|
137
|
-
|
138
|
-
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VBD
|
139
|
-
conn.vbds.all
|
140
|
-
|
141
|
-
This will retrieve the list of every single VBD available in the XenServer.
|
142
|
-
|
143
|
-
Same thing applies to the virtual disk images:
|
144
|
-
|
145
|
-
conn.vdis.all
|
146
|
-
|
147
|
-
Listing Storage Repositories (Xen SRs), where the disk images are stored:
|
148
|
-
|
149
|
-
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=SR
|
150
|
-
conn.storage_repositories
|
151
|
-
|
152
|
-
|
153
|
-
XenServer Pools:
|
154
|
-
|
155
|
-
# http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=pool
|
156
|
-
conn.pools
|
157
|
-
|
158
|
-
|
159
|
-
Retrieve the default storage repository in a pool:
|
160
|
-
|
161
|
-
conn.pools.first.default_storage_repository
|
162
|
-
# or the equivalent conn.pools.first.default_sr
|
163
|
-
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'fog'
|
2
|
-
|
3
|
-
#
|
4
|
-
# Create the connection to the XenServer host
|
5
|
-
#
|
6
|
-
xenserver = Fog::Compute.new({
|
7
|
-
:provider => 'XenServer',
|
8
|
-
:xenserver_url => '1.2.3.4',
|
9
|
-
:xenserver_username => 'root',
|
10
|
-
:xenserver_password => 'secret',
|
11
|
-
})
|
12
|
-
|
13
|
-
# We have a bonded interface in XenServer, bond0 and
|
14
|
-
# we want to add the VLANs there.
|
15
|
-
# Note the VLAN ID -1, it is important since you
|
16
|
-
# will problably have many PIFs with device == bond0
|
17
|
-
# but we need the one without a proper VLAN ID
|
18
|
-
#
|
19
|
-
bondmaster_pif = xenserver.pifs.find do |pif|
|
20
|
-
pif.vlan == "-1" and pif.device == "bond0"
|
21
|
-
end
|
22
|
-
|
23
|
-
# Another valid way of finding a PIF, without bonding
|
24
|
-
# pif = xenserver.pifs.find { |pif| pif.physical and pif.device == 'eth0' }
|
25
|
-
|
26
|
-
# We want to create these new VLANs
|
27
|
-
vlans = [
|
28
|
-
{ "name" => "VLAN 44", "vlanid" => 44},
|
29
|
-
{ "name" => "VLAN 55", "vlanid" => 55}
|
30
|
-
]
|
31
|
-
|
32
|
-
vlans.each do |vlan|
|
33
|
-
# Do not create duplicated networks
|
34
|
-
if xenserver.networks.find { |n| n.name == vlan['name'] }
|
35
|
-
puts "Network #{vlan['name']} available, skipping"
|
36
|
-
next
|
37
|
-
end
|
38
|
-
|
39
|
-
puts "Craeting Network #{vlan['name']}, VLAN ID #{vlan['vlanid']}"
|
40
|
-
network = xenserver.networks.create :name => vlan['name']
|
41
|
-
xenserver.vlans.create :tag => vlan['vlanid'],
|
42
|
-
:network => network,
|
43
|
-
:pif => bondmaster_pif
|
44
|
-
end
|