Add working directory option

refs: #3266

Change-Id: Ifd953b242c99f75c68eb3c63ef5e51ef46195b8b
diff --git a/ndn/ndn_host.py b/ndn/ndn_host.py
index bc820c2..0bed247 100644
--- a/ndn/ndn_host.py
+++ b/ndn/ndn_host.py
@@ -93,6 +93,11 @@
         if not NdnHost.inited:
             NdnHostCommon.init()
 
+        # Create home directory for a node
+        self.homeFolder = "%s/%s" % (self.params['workdir'], self.name)
+        self.cmd("mkdir -p %s" % self.homeFolder)
+        self.cmd("cd %s" % self.homeFolder)
+
         self.nfd = Nfd(self)
         self.nfd.start()
 
@@ -123,6 +128,11 @@
         if not NdnHost.inited:
             NdnHostCommon.init()
 
+        # Create home directory for a node
+        self.homeFolder = "%s/%s" % (self.params['workdir'], self.name)
+        self.cmd("mkdir -p %s" % self.homeFolder)
+        self.cmd("cd %s" % self.homeFolder)
+
         self.nfd = Nfd(self)
         self.nfd.start()
 
diff --git a/ndn/nfd.py b/ndn/nfd.py
index a56115b..36dcf96 100644
--- a/ndn/nfd.py
+++ b/ndn/nfd.py
@@ -33,15 +33,10 @@
 
         self.logLevel = node.params["params"].get("nfd-log-level", "NONE")
 
-        # Create home directory for a node
-        node.cmd("cd /tmp && mkdir %s" % node.name)
-        node.cmd("cd %s" % node.name)
-
-        self.homeFolder = "/tmp/%s" % node.name
-        self.confFile = "%s/%s.conf" % (self.homeFolder, node.name)
-        self.logFile = "%s/%s.log" % (self.homeFolder, node.name)
+        self.confFile = "%s/%s.conf" % (node.homeFolder, node.name)
+        self.logFile = "%s/%s.log" % (node.homeFolder, node.name)
         self.sockFile = "/var/run/%s.sock" % node.name
-        self.ndnFolder = "%s/.ndn" % self.homeFolder
+        self.ndnFolder = "%s/.ndn" % node.homeFolder
         self.clientConf = "%s/client.conf" % self.ndnFolder
 
         # Copy nfd.conf file from /usr/local/etc/mini-ndn to the node's home
@@ -61,7 +56,7 @@
         node.cmd("sudo sed -i 's|nfd.sock|%s.sock|g' %s" % (node.name, self.clientConf))
 
         # Change home folder
-        node.cmd("export HOME=%s" % self.homeFolder)
+        node.cmd("export HOME=%s" % node.homeFolder)
 
     def start(self):
         NdnApplication.start(self, "sudo nfd --config %s 2>> %s &" % (self.confFile, self.logFile))
diff --git a/ndn/nlsr.py b/ndn/nlsr.py
index 4a90e30..2da0894 100644
--- a/ndn/nlsr.py
+++ b/ndn/nlsr.py
@@ -27,10 +27,10 @@
     def __init__(self, node):
         NdnApplication.__init__(self, node)
         self.routerName = "/%sC1.Router/cs/%s" % ('%', node.name)
-        self.confFile = "/tmp/%s/nlsr.conf" % node.name
+        self.confFile = "%s/nlsr.conf" % node.homeFolder
 
         # Make directory for log file
-        self.logDir = "/tmp/%s/log" % node.name
+        self.logDir = "%s/log" % node.homeFolder
         node.cmd("mkdir %s" % self.logDir)
 
         # Configure basic router information in nlsr.conf based on host name
@@ -61,7 +61,7 @@
 
     def createConfigFile(self):
 
-        filePath = "/tmp/%s/nlsr.conf" % self.node.name
+        filePath = "%s/nlsr.conf" % self.node.homeFolder
 
         configFile = open(filePath, 'r')
         oldContent = configFile.read()
@@ -96,8 +96,8 @@
         general += "  site /edu\n"
         general += "  router /%C1.Router/cs/" + self.node.name + "\n"
         general += "  log-level " + self.logLevel + "\n"
-        general += "  log-dir /tmp/" + self.node.name + "/log\n"
-        general += "  seq-dir /tmp/" + self.node.name + "/log\n"
+        general += "  log-dir " + self.node.homeFolder + "/log\n"
+        general += "  seq-dir " + self.node.homeFolder + "/log\n"
         general += "}\n"
 
         return general