UUID в аргументе Java servlet Libvirt

#java #servlets #methods #uuid #libvirt

#java #сервлеты #методы #uuid #libvirt

Вопрос:

Я хочу вызвать метод для создания новой виртуальной машины. У меня есть все, кроме 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;
}
  

Комментарии:

1. зачем вам нужен uuid в сигнатуре вашего метода, если вы переназначаете его на случайное значение( vmUuid = UUID.randomUUID(); ) внутри метода?

2. createVM("test",UUID.randomUUID(),20000,2,"/home/jur/Downloads/debian-8.6.0-amd64-netinst.iso"); Будет работать, но в вашем методе вы все равно перезаписываете UUID?

Ответ №1:

Это будет работать:

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

Но не забудьте оставить форму vmUuid = UUID.randomUUID(); строки внутри вашего метода.