Add working directory option
refs: #3266 Change-Id: Ifd953b242c99f75c68eb3c63ef5e51ef46195b8b
This commit is contained in:
1 parent
194be2465a
commit
1b66369d43
4 files changed
+27
-17
No files matched your search
+8
-3
@@ -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()
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in new issue
Block a user