Search in sources :

Example 1 with StorageDomain

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

the class UpdateQuotaLimits 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 reference to the root of the tree of services:
    SystemService systemService = connection.systemService();
    // Find the data center and the service that manages it:
    DataCentersService dcsService = systemService.dataCentersService();
    DataCenter dc = dcsService.list().search("name=mydc").send().dataCenters().get(0);
    DataCenterService dcService = dcsService.dataCenterService(dc.id());
    // Find the storage domain and the service that manages it:
    StorageDomainsService sdsService = systemService.storageDomainsService();
    StorageDomain sd = sdsService.list().search("name=mydata").send().storageDomains().get(0);
    StorageDomainService sdService = sdsService.storageDomainService(sd.id());
    // Find the quota and the service that manages it. Note that the service that manages the quota doesn't support
    // search, so we need to retrieve all the quotas and filter explicitly. If the quota doesn't exist, create it.
    QuotasService quotasService = dcService.quotasService();
    List<Quota> quotas = quotasService.list().send().quotas();
    Quota quota = null;
    for (Quota q : quotas) {
        if (Objects.equals(q.id(), "myquota")) {
            quota = q;
            break;
        }
    }
    if (quota == null) {
        quota = quotasService.add().quota(quota().name("myquota").description("My quota").clusterHardLimitPct(20).clusterSoftLimitPct(80).storageHardLimitPct(20).storageSoftLimitPct(80)).send().quota();
    }
    QuotaService quotaService = quotasService.quotaService(quota.id());
    // Find the quota limits for the storage domain that we are interested on:
    QuotaStorageLimitsService limitsService = quotaService.quotaStorageLimitsService();
    List<QuotaStorageLimit> limits = limitsService.list().send().limits();
    QuotaStorageLimit limit = null;
    for (QuotaStorageLimit l : limits) {
        if (Objects.equals(l.id(), sd.id())) {
            limit = l;
            break;
        }
    }
    // If that limit exists we will delete it:
    if (limit != null) {
        QuotaStorageLimitService limitService = limitsService.limitService(limit.id());
        limitService.remove();
    }
    // Create the limit again with the desired values, in this example it will be 100 GiB:
    limitsService.add().limit(quotaStorageLimit().name("mydatalimit").description("My storage domain limit").limit(100).storageDomain(storageDomain().id(sd.id()))).send();
    // Close the connection to the server:
    connection.close();
}
Also used : StorageDomainService(org.ovirt.engine.sdk4.services.StorageDomainService) DataCentersService(org.ovirt.engine.sdk4.services.DataCentersService) Connection(org.ovirt.engine.sdk4.Connection) QuotaStorageLimitService(org.ovirt.engine.sdk4.services.QuotaStorageLimitService) QuotaStorageLimitsService(org.ovirt.engine.sdk4.services.QuotaStorageLimitsService) StorageDomainsService(org.ovirt.engine.sdk4.services.StorageDomainsService) StorageDomain(org.ovirt.engine.sdk4.types.StorageDomain) QuotaStorageLimit(org.ovirt.engine.sdk4.types.QuotaStorageLimit) DataCenter(org.ovirt.engine.sdk4.types.DataCenter) SystemService(org.ovirt.engine.sdk4.services.SystemService) Quota(org.ovirt.engine.sdk4.types.Quota) QuotasService(org.ovirt.engine.sdk4.services.QuotasService) DataCenterService(org.ovirt.engine.sdk4.services.DataCenterService) QuotaService(org.ovirt.engine.sdk4.services.QuotaService)

Example 2 with StorageDomain

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

the class AddVmDisk 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();
    // Locate the virtual machines service and use it to find the virtual machine:
    VmsService vmsService = connection.systemService().vmsService();
    Vm vm = vmsService.list().search("name=myvm").send().vms().get(0);
    // Locate the service that manages the disk attachments of the virtual machine:
    DiskAttachmentsService diskAttachmentsService = vmsService.vmService(vm.id()).diskAttachmentsService();
    // Use the `add` method of the disk attachments service to add the disk. Note that the size of the disk,
    // the `provionedSize` attribute, is specified in bytes, so to create a disk of 10 GiB the value should
    // be 10 * 2^30.
    DiskAttachment diskAttachment = diskAttachmentsService.add().attachment(diskAttachment().disk(disk().name("mydisk").description("My disk").format(DiskFormat.COW).provisionedSize(BigInteger.valueOf(10).multiply(BigInteger.valueOf(2).pow(30))).storageDomains(storageDomain().name("mydata"))).interface_(DiskInterface.VIRTIO).bootable(false).active(true)).send().attachment();
    // Wait till the disk is OK:
    DisksService disksService = connection.systemService().disksService();
    DiskService diskService = disksService.diskService(diskAttachment.disk().id());
    for (; ; ) {
        Thread.sleep(5 * 1000);
        Disk disk = diskService.get().send().disk();
        if (disk.status() == DiskStatus.OK) {
            break;
        }
    }
    // Close the connection to the server:
    connection.close();
}
Also used : DiskAttachment(org.ovirt.engine.sdk4.types.DiskAttachment) Vm(org.ovirt.engine.sdk4.types.Vm) DisksService(org.ovirt.engine.sdk4.services.DisksService) Connection(org.ovirt.engine.sdk4.Connection) VmsService(org.ovirt.engine.sdk4.services.VmsService) Disk(org.ovirt.engine.sdk4.types.Disk) DiskService(org.ovirt.engine.sdk4.services.DiskService) DiskAttachmentsService(org.ovirt.engine.sdk4.services.DiskAttachmentsService)

Example 3 with StorageDomain

use of org.ovirt.engine.sdk4.types.StorageDomain 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 4 with StorageDomain

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

the class AttachNfsDataStorageDomain 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();
    // Locate the service that manages the storage domains, and use it to search for the storage domain:
    StorageDomainsService sdsService = connection.systemService().storageDomainsService();
    StorageDomain sd = sdsService.list().search("name=mydata").send().storageDomains().get(0);
    // Locate the service that manages the data centers and use it to search for the data center:
    DataCentersService dcsService = connection.systemService().dataCentersService();
    DataCenter dc = dcsService.list().search("name=mydc").send().dataCenters().get(0);
    // Locate the service that manages the data center where we want to attach the storage domain:
    DataCenterService dcService = dcsService.dataCenterService(dc.id());
    // Locate the service that manages the storage domains that are attached to the data center:
    AttachedStorageDomainsService attachedSdsService = dcService.storageDomainsService();
    // Use the "add" method of the service that manages the attached storage domains to attach it:
    attachedSdsService.add().storageDomain(storageDomain().id(sd.id())).send();
    // Wait till the storage domain is active:
    AttachedStorageDomainService attachedSdService = attachedSdsService.storageDomainService(sd.id());
    for (; ; ) {
        Thread.sleep(5 * 1000);
        sd = attachedSdService.get().send().storageDomain();
        if (sd.status() == StorageDomainStatus.ACTIVE) {
            break;
        }
    }
    // Close the connection to the server:
    connection.close();
}
Also used : AttachedStorageDomainsService(org.ovirt.engine.sdk4.services.AttachedStorageDomainsService) StorageDomainsService(org.ovirt.engine.sdk4.services.StorageDomainsService) StorageDomain(org.ovirt.engine.sdk4.types.StorageDomain) DataCentersService(org.ovirt.engine.sdk4.services.DataCentersService) DataCenter(org.ovirt.engine.sdk4.types.DataCenter) AttachedStorageDomainService(org.ovirt.engine.sdk4.services.AttachedStorageDomainService) Connection(org.ovirt.engine.sdk4.Connection) DataCenterService(org.ovirt.engine.sdk4.services.DataCenterService) AttachedStorageDomainsService(org.ovirt.engine.sdk4.services.AttachedStorageDomainsService)

Example 5 with StorageDomain

use of org.ovirt.engine.sdk4.types.StorageDomain 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)

Aggregations

Connection (org.ovirt.engine.sdk4.Connection)15 StorageDomain (org.ovirt.engine.sdk4.types.StorageDomain)13 StorageDomainsService (org.ovirt.engine.sdk4.services.StorageDomainsService)12 StorageDomainService (org.ovirt.engine.sdk4.services.StorageDomainService)7 SystemService (org.ovirt.engine.sdk4.services.SystemService)7 Vm (org.ovirt.engine.sdk4.types.Vm)6 VmsService (org.ovirt.engine.sdk4.services.VmsService)5 Disk (org.ovirt.engine.sdk4.types.Disk)4 DataCenterService (org.ovirt.engine.sdk4.services.DataCenterService)3 DataCentersService (org.ovirt.engine.sdk4.services.DataCentersService)3 VmService (org.ovirt.engine.sdk4.services.VmService)3 DataCenter (org.ovirt.engine.sdk4.types.DataCenter)3 AttachedStorageDomainService (org.ovirt.engine.sdk4.services.AttachedStorageDomainService)2 AttachedStorageDomainsService (org.ovirt.engine.sdk4.services.AttachedStorageDomainsService)2 DiskService (org.ovirt.engine.sdk4.services.DiskService)2 DisksService (org.ovirt.engine.sdk4.services.DisksService)2 ImagesService (org.ovirt.engine.sdk4.services.ImagesService)2 StorageDomainVmsService (org.ovirt.engine.sdk4.services.StorageDomainVmsService)2 DiskAttachment (org.ovirt.engine.sdk4.types.DiskAttachment)2 Image (org.ovirt.engine.sdk4.types.Image)2