Add working directory option

refs: #3266

Change-Id: Ifd953b242c99f75c68eb3c63ef5e51ef46195b8b
This commit is contained in:
Ashlesh Gawande authored and Vince Lehman committed 2015-10-22 11:55:30 -05:00
1 parent 194be2465a
commit 1b66369d43
4 files changed
+27 -17

No files matched your search

+8 -3
View File
@@ -104,6 +104,7 @@ class ProgramOptions:
self.isCliEnabled = True
self.nPings = 300
self.testbed = False
self.workDir = "/tmp"
def parse_args():
usage = """Usage: minindn [template_file] [ -t | --testbed ]
@@ -138,6 +139,9 @@ def parse_args():
parser.add_option("-t", "--testbed", action="store_true", dest="testbed", default=False,
help="instantiates NDN Testbed")
parser.add_option("--work-dir", action="store", dest="workDir", default="/tmp",
help="Specify the working directory; default is /tmp")
parser.add_option('--version', '-V', action='callback', callback=printVersion,
help='Displays version information')
@@ -151,6 +155,7 @@ def parse_args():
options.isCliEnabled = args.isCliEnabled
options.nPings = args.nPings
options.testbed = args.testbed
options.workDir = args.workDir
if options.experimentName is not None and options.experimentName not in ExperimentManager.getExperimentNames():
print("No experiment named %s" % options.experimentName)
@@ -164,7 +169,7 @@ def parse_args():
return options
class NdnTopo(Topo):
def __init__(self, conf_arq, **opts):
def __init__(self, conf_arq, workDir, **opts):
Topo.__init__(self, **opts)
global hosts_conf
@@ -178,7 +183,7 @@ class NdnTopo(Topo):
for host in hosts_conf:
if host.cpu != None and self.isLimited != True:
self.isLimited = True
self.addHost(host.name, app=host.app, params=host.uri_tuples, cpu=host.cpu,cores=host.cores,cache=host.cache)
self.addHost(host.name, app=host.app, params=host.uri_tuples, cpu=host.cpu,cores=host.cores,cache=host.cache, workdir=workDir)
for link in links_conf:
if len(link.linkDict) == 0:
@@ -210,7 +215,7 @@ def execute(options):
os.system("sudo cp /usr/local/etc/ndn/nfd.conf.sample %s" % nfdConfFile)
os.system("sudo sed -i \'s|default_level [A-Z]*$|default_level $LOG_LEVEL|g\' %s" % nfdConfFile)
topo = NdnTopo(template_file)
topo = NdnTopo(template_file, options.workDir)
t = datetime.datetime.now()
+10
View File
@@ -93,6 +93,11 @@ class NdnHost(Host, NdnHostCommon):
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 @@ class CpuLimitedNdnHost(CPULimitedHost, NdnHostCommon):
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()
+4 -9
View File
@@ -33,15 +33,10 @@ class Nfd(NdnApplication):
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 @@ class Nfd(NdnApplication):
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))
+5 -5
View File
@@ -27,10 +27,10 @@ class Nlsr(NdnApplication):
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 @@ class NlsrConfigGenerator:
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 @@ class NlsrConfigGenerator:
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