On systems where sudo is used you can't always rely on ~ for the homedir of the 
user cloud.

We should use the property of "user.name" as a basis and use that throughout 
the code instead of heaving ~ or ~cloud hardcoded.

Although we are not able to run under a different user yet, the code should be 
prepared for it as far as we can.

Signed-off-by: Wido den Hollander <w...@widodh.nl>
---
 .../com/cloud/server/ConfigurationServerImpl.java  |   16 ++++------------
 1 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java 
b/server/src/com/cloud/server/ConfigurationServerImpl.java
index 81ca96e..304d510 100755
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -583,16 +583,9 @@ public class ConfigurationServerImpl implements 
ConfigurationServer {
         }
         String already = _configDao.getValue("ssh.privatekey");
         String homeDir = null;
-        if (devel) {
-               homeDir = Script.runSimpleBashScript("echo ~");
-               if (homeDir == null) {
-                       throw new CloudRuntimeException("Cannot get home 
directory for account: cloud");
-               }
-        } else {
-               homeDir = Script.runSimpleBashScript("echo ~cloud");
-               if (homeDir == null) {
-                       throw new CloudRuntimeException("Cannot get home 
directory for account: cloud");
-               }
+        homeDir = Script.runSimpleBashScript("echo ~" + userid);
+        if (homeDir == null) {
+            throw new CloudRuntimeException("Cannot get home directory for 
account: " + userid);
         }
         
         if (s_logger.isInfoEnabled()) {
@@ -611,7 +604,7 @@ public class ConfigurationServerImpl implements 
ConfigurationServer {
                 s_logger.info("Systemvm keypairs not found in database. Need 
to store them in the database");
             }
             // FIXME: take a global database lock here for safety.
-            Script.runSimpleBashScript("if [ -f ~/.ssh/id_rsa ] ; then rm -f 
~/.ssh/id_rsa ; fi; ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa -q");
+            Script.runSimpleBashScript("if [ -f " + privkeyfile + " ] ; then 
rm -f " + privkeyfile + "; fi; ssh-keygen -t rsa -N '' -f " + privkeyfile + " 
-q");
 
             byte[] arr1 = new byte[4094]; // configuration table column value 
size
             try {
@@ -680,7 +673,6 @@ public class ConfigurationServerImpl implements 
ConfigurationServer {
     }
 
     private void writeKeyToDisk(String key, String keyPath) {
-        Script.runSimpleBashScript("mkdir -p ~/.ssh");
         File keyfile = new File(keyPath);
         if (!keyfile.exists()) {
             try {
-- 
1.7.5.4

Reply via email to