from nepi.resources.linux.application import LinuxApplication
from nepi.resources.linux.node import OSType
from nepi.util.timefuncs import tnow, tdiffsec
-from nepi.resources.ns3.simulator import NS3Simulator
+from nepi.resources.ns3.ns3simulator import NS3Simulator
+from nepi.resources.linux.ns3.ns3client import LinuxNS3Client
import os
@clsinit_copy
class LinuxNS3Simulator(LinuxApplication, NS3Simulator):
- _rtype = "LinuxSimulator"
+ _rtype = "LinuxNS3Simulator"
@classmethod
def _register_attributes(cls):
"Sets the CCND_MAX_RTE_MICROSEC environmental variable. ",
flags = Flags.ExecReadOnly)
- keystore = Attribute("keyStoreDirectory",
- "Sets the CCND_KEYSTORE_DIRECTORY environmental variable. ",
- flags = Flags.ExecReadOnly)
-
cls._register_attribute(debug)
- cls._register_attribute(port)
-
- @classmethod
- def _register_traces(cls):
- log = Trace("log", "CCND log output")
- status = Trace("status", "ccndstatus output")
-
- cls._register_trace(log)
- cls._register_trace(status)
def __init__(self, ec, guid):
- super(LinuxCCND, self).__init__(ec, guid)
- self._home = "ccnd-%s" % self.guid
- self._version = "ccnx"
+ super(LinuxApplication, self).__init__(ec, guid)
+ super(NS3Simulator, self).__init__()
- @property
- def version(self):
- return self._version
+ self._home = "ns3-simu-%s" % self.guid
+
+ # TODO: Create socket!!
+ self._client = LinuxNS3Client(socket_name)
- @property
- def path(self):
- return "PATH=$PATH:${BIN}/%s/" % self.version
def do_deploy(self):
if not self.node or self.node.state < ResourceState.READY:
rtype = tid.GetName()
category = tid.GetGroupName()
+ base_class_import = "from nepi.resources.ns3.ns3base import NS3Base"
+ base_clas = "NS3Base"
+
classname = rtype.replace("ns3::", "NS3").replace("::","")
uncamm_rtype = re.sub('([a-z])([A-Z])', r'\1-\2', rtype).lower()
short_rtype = uncamm_rtype.replace("::","-")
d = os.path.dirname(os.path.realpath(__file__))
- ftemp = open(os.path.join(d, "templates", "rm_template.txt"), "r")
+ ftemp = open(os.path.join(d, "templates", "resource_manager_template.txt"), "r")
template = ftemp.read()
ftemp.close()
replace("<RTYPE>", rtype). \
replace("<ATTRIBUTES>", attributes). \
replace("<TRACES>", traces). \
+ replace("<BASE_CLASS_IMPORT>", base_class_import). \
+ replace("<BASE_CLASS>", base_class). \
replace("<SHORT-RTYPE>", short_rtype)
fname = uncamm_rtype.replace('ns3::', ''). \
from nepi.execution.trace import Trace, TraceAttr
from nepi.execution.resource import ResourceManager, clsinit_copy, \
ResourceState, reschedule_delay
-from nepi.resources.ns3.ns3_base import NS3Base
+<BASE_CLASS_IMPORT>
@clsinit_copy
-class <CLASS_NAME>(NS3Base):
+class <CLASS_NAME>(<BASE_CLASS>):
_rtype = "<RTYPE>"
@classmethod
def __init__(self, ec, guid):
super(<CLASS_NAME>, self).__init__(ec, guid)
self._home = "<SHORT-RTYPE>-%s" % self.guid
- # TODO!
- self._version = None
-
- @property
- def version(self):
- return self._version
-