我想调用创建新虚拟机的方法。除了UUID,我什么都拥有。如何在调用方法的参数中插入随机生成的UUID?

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub


    response.getWriter().append("Served at: ").append(request.getContextPath());

    createVM("test",,20000,2,"/home/jur/Downloads/debian-8.6.0-amd64-netinst.iso");
}


    public boolean createVM(String vmName,
            UUID vmUuid,
            long vmMemory,
            int vmCpu,
            String vmImage) {
String template;

Connect conn;

try {
System.out.println("Connecting to local hypervisor");
conn = new Connect("qemu:///system");

System.out.println("Creating template");
vmUuid = UUID.randomUUID();
template = TEMPLATE;
template = template.replace("$vmName", vmName);
template = template.replace("$vmMemory", String.valueOf(vmMemory));
template = template.replace("$vmCpu", String.valueOf(vmCpu));
template = template.replace("$vmImage", vmImage);
template = template.replace("$vmUuid", vmUuid.toString());

System.out.println("Resulting template: \n" + template);
System.out.println("Creating VM");
Domain domain = conn.domainCreateXML(template, 0);

conn.close();
} catch (LibvirtException e) {
e.printStackTrace();
return false;
}

return true;
}

最佳答案

这将起作用:

createVM("test",UUID.randomUUID(),20000,2,"/home/jur/Downloa‌​ds/debian-8.6.0-amd6‌​4-netinst.iso");


但是请确保在方法中省略vmUuid = UUID.randomUUID();行形式。

10-06 10:17