Search in sources :

Example 1 with Cluster

use of org.ovirt.engine.sdk4.types.Cluster in project ovirt-engine-sdk-java by oVirt.

the class AddVmFromTemplateVersion method main.

public static void main(String[] args) throws Exception {
    // Create the connection to the server:
    Connection connection = connection().url("https://engine40.example.com/ovirt-engine/api").user("admin@internal").password("redhat123").trustStoreFile("truststore.jks").build();
    // Get the reference to the root of the tree of services:
    SystemService systemService = connection.systemService();
    // Get the reference to the service that manages the storage domains:
    StorageDomainsService storageDomainsService = systemService.storageDomainsService();
    // Find the storage domain we want to be used for virtual machine disks:
    StorageDomain storageDomain = storageDomainsService.list().search("name=mydata").send().storageDomains().get(0);
    // Get the reference to the service that manages the templates:
    TemplatesService templatesService = systemService.templatesService();
    // When a template has multiple versions they all have the same name, so we need to explicitly find the one that
    // has the version name or version number that we want to use. In this case we want to use version 3 of the
    // template.
    List<Template> templates = templatesService.list().search("name=mytemplate").send().templates();
    String templateId = null;
    for (Template template : templates) {
        if (template.version().versionNumber().equals(BigInteger.valueOf(3))) {
            templateId = template.id();
            break;
        }
    }
    // Find the template disk we want be created on specific storage domain
    // for our virtual machine:
    TemplateService templateService = templatesService.templateService(templateId);
    List<DiskAttachment> diskAttachments = connection.followLink(templateService.get().send().template().diskAttachments());
    Disk disk = diskAttachments.get(0).disk();
    // Get the reference to the service that manages the virtual machines:
    VmsService vmsService = connection.systemService().vmsService();
    // Add a new virtual machine explicitly indicating the identifier of the template version that we want to use:
    vmsService.add().vm(vm().name("myvm").cluster(cluster().name("mycluster")).template(template().id(templateId)).diskAttachments(diskAttachment().disk(disk().id(disk.id()).format(DiskFormat.COW).storageDomains(storageDomain().id(storageDomain.id()))))).send();
    // Close the connection to the server:
    connection.close();
}
Also used : Connection(org.ovirt.engine.sdk4.Connection) VmsService(org.ovirt.engine.sdk4.services.VmsService) TemplatesService(org.ovirt.engine.sdk4.services.TemplatesService) Template(org.ovirt.engine.sdk4.types.Template) StorageDomainsService(org.ovirt.engine.sdk4.services.StorageDomainsService) StorageDomain(org.ovirt.engine.sdk4.types.StorageDomain) SystemService(org.ovirt.engine.sdk4.services.SystemService) DiskAttachment(org.ovirt.engine.sdk4.types.DiskAttachment) TemplateService(org.ovirt.engine.sdk4.services.TemplateService) Disk(org.ovirt.engine.sdk4.types.Disk)

Example 2 with Cluster

use of org.ovirt.engine.sdk4.types.Cluster in project ovirt-engine-sdk-java by oVirt.

the class AddVmWithSysprep method main.

public static void main(String[] args) throws Exception {
    // Create the connection to the server:
    Connection connection = connection().url("https://engine40.example.com/ovirt-engine/api").user("admin@internal").password("redhat123").trustStoreFile("truststore.jks").build();
    // Find the service that manages the collection of virtual machines:
    VmsService vmsService = connection.systemService().vmsService();
    // Create the virtual machine. Note that no Sysprep stuff is needed here, when creating it, it will be used
    // later, when starting it:
    Vm vm = vmsService.add().vm(vm().name("myvm").cluster(cluster().name("mycluster")).template(template().name("mytemplate"))).send().vm();
    // Find the service that manages the virtual machine:
    VmService vmService = vmsService.vmService(vm.id());
    // Wait till the virtual machine is down, which indicates that all the disks have been created:
    while (vm.status() != VmStatus.DOWN) {
        Thread.sleep(5 * 1000);
        vm = vmService.get().send().vm();
    }
    // The content of the Unattend.xml file. Note that this is an incomplete file, make sure to use a complete one,
    // maybe reading it from an external file:
    String unattendXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<unattend xmlns=\"urn:schemas-microsoft-com:unattend\">\n" + "  ...\n" + "</unattend>\n";
    // Start the virtual machine enabling Sysprep. Make sure to use a Windows operating system, either in the
    // template, or overriding it explicitly here. Without that the Sysprep logic won't be triggered.
    vmService.start().useSysprep(true).vm(vm().os(operatingSystem().type("windows_7x64"))).send();
    // Close the connection to the server:
    connection.close();
}
Also used : Vm(org.ovirt.engine.sdk4.types.Vm) VmService(org.ovirt.engine.sdk4.services.VmService) Connection(org.ovirt.engine.sdk4.Connection) VmsService(org.ovirt.engine.sdk4.services.VmsService)

Example 3 with Cluster

use of org.ovirt.engine.sdk4.types.Cluster in project ovirt-engine-sdk-java by oVirt.

the class CloneVmFromSnapshot method main.

public static void main(String[] args) throws Exception {
    // Create the connection to the server:
    Connection connection = connection().url("https://engine40.example.com/ovirt-engine/api").user("admin@internal").password("redhat123").trustStoreFile("truststore.jks").build();
    // Get the reference to the root of the tree of services:
    SystemService systemService = connection.systemService();
    // Find the virtual machine:
    VmsService vmsService = systemService.vmsService();
    Vm vm = vmsService.list().search("name=myvm").send().vms().get(0);
    // Find the service that manages the virtual machine:
    VmService vmService = vmsService.vmService(vm.id());
    // Find the snapshot. Note that the snapshots collection doesn't support search, so we need to retrieve the
    // complete list and the look for the snapshot that has the description that we are looking for.
    SnapshotsService snapsService = vmService.snapshotsService();
    List<Snapshot> snaps = snapsService.list().send().snapshots();
    Snapshot snap = null;
    for (Snapshot s : snaps) {
        if (Objects.equals(s.description(), "mysnap")) {
            snap = s;
            break;
        }
    }
    // Create a new virtual machine, cloning it from the snapshot:
    Vm clonedVm = vmsService.add().vm(vm().name("myclonedvm").snapshots(snapshot().id(snap.id())).cluster(cluster().name("mycluster"))).send().vm();
    // Find the service that manages the cloned virtual machine:
    VmService clonedVmService = vmsService.vmService(clonedVm.id());
    // Wait till the virtual machine is down, as that means that the creation of the disks has been completed:
    for (; ; ) {
        Thread.sleep(5 * 1000);
        clonedVm = clonedVmService.get().send().vm();
        if (clonedVm.status() == VmStatus.DOWN) {
            break;
        }
    }
    // Close the connection to the server:
    connection.close();
}
Also used : Snapshot(org.ovirt.engine.sdk4.types.Snapshot) SystemService(org.ovirt.engine.sdk4.services.SystemService) SnapshotsService(org.ovirt.engine.sdk4.services.SnapshotsService) Vm(org.ovirt.engine.sdk4.types.Vm) VmService(org.ovirt.engine.sdk4.services.VmService) Connection(org.ovirt.engine.sdk4.Connection) VmsService(org.ovirt.engine.sdk4.services.VmsService)

Example 4 with Cluster

use of org.ovirt.engine.sdk4.types.Cluster in project ovirt-engine-sdk-java by oVirt.

the class ImportVm method main.

public static void main(String[] args) throws Exception {
    // Create connection to the oVirt engine server:
    Connection connection = connection().url("https://engine40.example.com/ovirt-engine/api").user("admin@internal").password("redhat123").trustStoreFile("truststore.jks").build();
    // Get storage domains service
    StorageDomainsService storageDomainsService = connection.systemService().storageDomainsService();
    // Get export storage domain
    StorageDomain exportDomain = storageDomainsService.list().search("name=myexport").send().storageDomains().get(0);
    // Get target storage domain
    StorageDomain targetStorageDomain = storageDomainsService.list().search("name=mydata").send().storageDomains().get(0);
    // Get cluster service
    ClustersService clustersService = connection.systemService().clustersService();
    // Get the cluster we import the VM to
    Cluster cluster = clustersService.list().search("name=mycluster").send().clusters().get(0);
    // Get VM service for export storage domain
    StorageDomainVmsService vmsService = storageDomainsService.storageDomainService(exportDomain.id()).vmsService();
    // Get the first exported VM, assuming we have one
    Vm exportedVm = vmsService.list().send().vm().get(0);
    // Import the exported VM into target storage domain, 'mydata'
    vmsService.vmService(exportedVm.id()).import_().storageDomain(storageDomain().id(targetStorageDomain.id())).cluster(cluster().id(cluster.id())).vm(vm().id(exportedVm.id())).send();
    // Close the connection
    connection.close();
}
Also used : StorageDomainsService(org.ovirt.engine.sdk4.services.StorageDomainsService) StorageDomain(org.ovirt.engine.sdk4.types.StorageDomain) Vm(org.ovirt.engine.sdk4.types.Vm) Connection(org.ovirt.engine.sdk4.Connection) ClustersService(org.ovirt.engine.sdk4.services.ClustersService) Cluster(org.ovirt.engine.sdk4.types.Cluster) StorageDomainVmsService(org.ovirt.engine.sdk4.services.StorageDomainVmsService)

Example 5 with Cluster

use of org.ovirt.engine.sdk4.types.Cluster in project ovirt-engine-sdk-java by oVirt.

the class AddMacPool method main.

public static void main(String[] args) throws Exception {
    // Create the connection to the server:
    Connection connection = connection().url("https://engine40.example.com/ovirt-engine/api").user("admin@internal").password("redhat123").trustStoreFile("truststore.jks").build();
    // Get the reference to the service that manages the MAC address pools:
    MacPoolsService poolsService = connection.systemService().macPoolsService();
    // Add a new MAC address pool:
    MacPool pool = poolsService.add().pool(macPool().name("mymacpool").ranges(range().from("02:00:00:00:00:00").to("02:00:00:01:00:00"))).send().pool();
    // Find the service that manages clusters, as we need it in order to find the cluster where we wnt to set the
    // MAC address pool:
    ClustersService clustersService = connection.systemService().clustersService();
    // Find the cluster:
    Cluster cluster = clustersService.list().search("name=mycluster").send().clusters().get(0);
    // Find the service that manages the cluster, as we need it in order to do the update:
    ClusterService clusterService = clustersService.clusterService(cluster.id());
    // Update the service so that it uses the new MAC pool:
    clusterService.update().cluster(cluster().macPool(macPool().id(pool.id()))).send();
    // Close the connection to the server:
    connection.close();
}
Also used : ClusterService(org.ovirt.engine.sdk4.services.ClusterService) MacPool(org.ovirt.engine.sdk4.types.MacPool) MacPoolsService(org.ovirt.engine.sdk4.services.MacPoolsService) Connection(org.ovirt.engine.sdk4.Connection) ClustersService(org.ovirt.engine.sdk4.services.ClustersService) Cluster(org.ovirt.engine.sdk4.types.Cluster)

Aggregations

Connection (org.ovirt.engine.sdk4.Connection)13 Cluster (org.ovirt.engine.sdk4.types.Cluster)7 VmsService (org.ovirt.engine.sdk4.services.VmsService)6 Vm (org.ovirt.engine.sdk4.types.Vm)5 ClusterService (org.ovirt.engine.sdk4.services.ClusterService)4 ClustersService (org.ovirt.engine.sdk4.services.ClustersService)4 StorageDomainsService (org.ovirt.engine.sdk4.services.StorageDomainsService)4 StorageDomain (org.ovirt.engine.sdk4.types.StorageDomain)4 Test (org.junit.Test)3 SystemService (org.ovirt.engine.sdk4.services.SystemService)3 StorageDomainService (org.ovirt.engine.sdk4.services.StorageDomainService)2 StorageDomainVmsService (org.ovirt.engine.sdk4.services.StorageDomainVmsService)2 VmService (org.ovirt.engine.sdk4.services.VmService)2 Template (org.ovirt.engine.sdk4.types.Template)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 InputStream (java.io.InputStream)1 XmlReader (org.ovirt.api.metamodel.runtime.xml.XmlReader)1 ClusterNetworksService (org.ovirt.engine.sdk4.services.ClusterNetworksService)1 HostService (org.ovirt.engine.sdk4.services.HostService)1 HostsService (org.ovirt.engine.sdk4.services.HostsService)1