diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index c32d1a1bb99..c032e2c1912 100755 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -2481,7 +2481,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements ConsoleDef console = new ConsoleDef("pty", null, null, (short) 0); devices.addDevice(console); - GraphicDef grap = new GraphicDef("vnc", (short) 0, true, null, null, + GraphicDef grap = new GraphicDef("vnc", (short) 0, true, vmTO.getVncAddr(), null, null); devices.addDevice(grap); @@ -2507,6 +2507,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements protected synchronized StartAnswer execute(StartCommand cmd) { VirtualMachineTO vmSpec = cmd.getVirtualMachine(); + vmSpec.setVncAddr(cmd.getHostIp()); String vmName = vmSpec.getName(); LibvirtVMDef vm = null; diff --git a/api/src/com/cloud/agent/api/StartCommand.java b/api/src/com/cloud/agent/api/StartCommand.java index fcd8b360fa0..4d871389836 100644 --- a/api/src/com/cloud/agent/api/StartCommand.java +++ b/api/src/com/cloud/agent/api/StartCommand.java @@ -17,12 +17,14 @@ package com.cloud.agent.api; import com.cloud.agent.api.to.VirtualMachineTO; +import com.cloud.host.Host; /** */ public class StartCommand extends Command { VirtualMachineTO vm; - + String hostIp; + public VirtualMachineTO getVirtualMachine() { return vm; } @@ -34,8 +36,17 @@ public class StartCommand extends Command { protected StartCommand() { } - + public StartCommand(VirtualMachineTO vm) { this.vm = vm; } + + public StartCommand(VirtualMachineTO vm, Host host) { + this.vm = vm; + this.hostIp = host.getPrivateIpAddress(); + } + + public String getHostIp() { + return this.hostIp; + } } diff --git a/api/src/com/cloud/agent/api/to/VirtualMachineTO.java b/api/src/com/cloud/agent/api/to/VirtualMachineTO.java index ec93fc65718..42d91626e35 100644 --- a/api/src/com/cloud/agent/api/to/VirtualMachineTO.java +++ b/api/src/com/cloud/agent/api/to/VirtualMachineTO.java @@ -40,6 +40,7 @@ public class VirtualMachineTO { boolean enableHA; boolean limitCpuUse; String vncPassword; + String vncAddr; Map params; VolumeTO[] disks; @@ -191,6 +192,14 @@ public class VirtualMachineTO { public void setVncPassword(String vncPassword) { this.vncPassword = vncPassword; } + + public String getVncAddr() { + return this.vncAddr; + } + + public void setVncAddr(String vncAddr) { + this.vncAddr = vncAddr; + } public Map getDetails() { return params; diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index b73d0fd8e48..b33f27021d7 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -755,7 +755,7 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene vmTO = hvGuru.implement(vmProfile); cmds = new Commands(OnError.Stop); - cmds.addCommand(new StartCommand(vmTO)); + cmds.addCommand(new StartCommand(vmTO, dest.getHost())); vmGuru.finalizeDeployment(cmds, vmProfile, dest, ctx);