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();
}
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();
}
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();
}
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();
}
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();
}
Aggregations