Связывание Java Libvirt - использование listDomains () для Xen - PullRequest
1 голос
/ 05 ноября 2011

Я использую следующую программу:

public class minitest {
public static void main(String[] args) {
    Connect conn=null;
    try{
        int i;
        conn = new Connect("xen:///", true);
         int[] id = conn.listDomains();
         int no=conn.numOfDomains();

         System.out.println("length " +id.length);
         }
   }
}

Программа перечисляет количество виртуальных машин для KVM (в этом случае оператор Connect будет меняться на Connect("qemu:///system",true), но не выполняется для Xen. Исключение из-за пределов массива возникает всякий раз, когда я пытаюсь получить доступ к id [0]. достаточно виртуальных машин работает. Только listDomain () не работает.

Другие функции отлично работают на Xen и KVM.

Спасибо!

1 Ответ

1 голос
/ 03 октября 2012

Используйте эти функции для XEN в Java

Connect conn = null;
Domain d = null;
ConnectAuth defaultAuth = new ConnectAuthDefault();
conn = new Connect("xen:///", defaultAuth, 0);

System.out.println("Capabilities: " + conn.getCapabilities());
System.out.println("hostname: " + conn.getHostName());
System.out.println("version: " + conn.getLibVirVersion());
System.out.println("isSecure: " + conn.isSecure());
System.out.println("isEncrypted: " + conn.isEncrypted());
System.out.println("numOfDomains: " + conn.numOfDomains());
System.out.println("active Domains: " + conn.listDomains().length);

int[] ids = conn.listDomains();
System.out.println("Domains informations");
for (int i : ids) {
System.out.println(DASH);
System.out.println("Domain name = " + d.getName() + " | ID = " + d.getID() + " | OSType = " + d.getOSType());
System.out.println("MaxMemory = " + d.getMaxMemory() + " | " + d.getMaxVcpus());
System.out.println("UUID = " + d.getUUIDString());
System.out.println("Active? = " + d.isActive());
System.out.println("Persistent? = " + d.isPersistent());

DomainInfo df = d.getInfo();
System.out.println("CPUTime = " + df.cpuTime);
System.out.println("MaxMem = " + df.maxMem);
System.out.println("memory = " + df.memory);
System.out.println("nrVirtCpu = " + df.nrVirtCpu);
System.out.println("state = " + df.state);
}
...
d = conn.domainLookupByID(idToDelete);
d.destroy();
...
// create a domain
System.out.println("conn.domainCreateLinux:" + conn.domainCreateLinux(xml_file, 0));
...