diff --git a/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java b/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java index 157665acc6d..94a025d333c 100755 --- a/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java +++ b/server/src/com/cloud/hypervisor/vmware/VmwareManagerImpl.java @@ -62,6 +62,7 @@ import com.cloud.network.router.VirtualNetworkApplianceManager; import com.cloud.org.Cluster.ClusterType; import com.cloud.secstorage.CommandExecLogDao; import com.cloud.serializer.GsonHelper; +import com.cloud.server.ConfigurationServer; import com.cloud.storage.StorageLayer; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.utils.FileUtil; @@ -105,6 +106,8 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis @Inject CheckPointManager _checkPointMgr; @Inject VirtualNetworkApplianceManager _routerMgr; @Inject SecondaryStorageVmManager _ssvmMgr; + + ConfigurationServer _configServer; String _mountParent; StorageLayer _storage; @@ -272,6 +275,9 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis ((VmwareStorageManagerImpl)_storageMgr).configure(params); + if(_configServer == null) + _configServer = (ConfigurationServer)ComponentLocator.getComponent(ConfigurationServer.Name); + _agentMgr.registerForHostEvents(this, true, true, true); s_logger.info("VmwareManagerImpl has been successfully configured"); @@ -527,6 +533,9 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis File srcIso = getSystemVMPatchIsoFile(); File destIso = new File(mountPoint + "/systemvm/" + getSystemVMIsoFileNameOnDatastore()); if(!destIso.exists()) { + s_logger.info("Inject SSH key pairs before copying systemvm.iso into secondary storage"); + _configServer.updateKeyPairs(); + try { FileUtil.copyfile(srcIso, destIso); } catch(IOException e) { diff --git a/server/src/com/cloud/server/ConfigurationServer.java b/server/src/com/cloud/server/ConfigurationServer.java index b56afe6d29b..c683f3f3b9e 100644 --- a/server/src/com/cloud/server/ConfigurationServer.java +++ b/server/src/com/cloud/server/ConfigurationServer.java @@ -33,5 +33,5 @@ public interface ConfigurationServer { * @return */ public void persistDefaultValues() throws InternalErrorException; - + public void updateKeyPairs(); } diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java index 4df39772d3b..e0e54596d8a 100755 --- a/server/src/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/com/cloud/server/ConfigurationServerImpl.java @@ -574,8 +574,9 @@ public class ConfigurationServerImpl implements ConfigurationServer { } + @Override @DB - protected void updateKeyPairs() { + public void updateKeyPairs() { // Grab the SSH key pair and insert it into the database, if it is not present String userid = System.getProperty("user.name");