remerged with git pending fix to distributed configuration problem
This commit is contained in:
parent
5d0aa4ac1a
commit
d17ed889d2
9 changed files with 348 additions and 345 deletions
|
@ -67,7 +67,7 @@ class Emane(ConfigurableManager):
|
|||
self.logversion()
|
||||
# model for global EMANE configuration options
|
||||
self.emane_config = EmaneGlobalModel(session, None, self.verbose)
|
||||
session.broker.handlers += (self.handledistributed, )
|
||||
session.broker.handlers.add(self.handledistributed)
|
||||
self.loadmodels()
|
||||
self.service = None
|
||||
|
||||
|
@ -455,11 +455,11 @@ class Emane(ConfigurableManager):
|
|||
servers.append(s)
|
||||
self._objslock.release()
|
||||
|
||||
servers.sort(key = lambda x: x.name)
|
||||
for server in servers:
|
||||
if server == "localhost":
|
||||
if server.name == "localhost":
|
||||
continue
|
||||
(host, port, sock) = self.session.broker.getserver(server)
|
||||
if sock is None:
|
||||
if server.sock is None:
|
||||
continue
|
||||
platformid += 1
|
||||
typeflags = coreapi.CONF_TYPE_FLAGS_UPDATE
|
||||
|
@ -467,12 +467,11 @@ class Emane(ConfigurableManager):
|
|||
values[names.index("nem_id_start")] = str(nemid)
|
||||
msg = EmaneGlobalModel.toconfmsg(flags=0, nodenum=None,
|
||||
typeflags=typeflags, values=values)
|
||||
sock.send(msg)
|
||||
server.sock.send(msg)
|
||||
# increment nemid for next server by number of interfaces
|
||||
self._ifccountslock.acquire()
|
||||
if server in self._ifccounts:
|
||||
nemid += self._ifccounts[server]
|
||||
self._ifccountslock.release()
|
||||
with self._ifccountslock:
|
||||
if server in self._ifccounts:
|
||||
nemid += self._ifccounts[server]
|
||||
|
||||
return False
|
||||
|
||||
|
@ -511,7 +510,7 @@ class Emane(ConfigurableManager):
|
|||
session = self.session
|
||||
if not session.master:
|
||||
return # slave server
|
||||
servers = session.broker.getserverlist()
|
||||
servers = session.broker.getservernames()
|
||||
if len(servers) < 2:
|
||||
return # not distributed
|
||||
prefix = session.cfg.get('controlnet')
|
||||
|
@ -1155,6 +1154,22 @@ class Emane(ConfigurableManager):
|
|||
self.session.sdt.updatenodegeo(node.objid, lat, long, alt)
|
||||
return True
|
||||
|
||||
def emanerunning(self, node):
|
||||
'''\
|
||||
Return True if an EMANE process associated with the given node
|
||||
is running, False otherwise.
|
||||
'''
|
||||
status = -1
|
||||
cmd = ['pkill', '-0', '-x', 'emane']
|
||||
try:
|
||||
if self.version < self.EMANE092:
|
||||
status = subprocess.call(cmd)
|
||||
else:
|
||||
status = node.cmd(cmd, wait=True)
|
||||
except:
|
||||
pass
|
||||
return status == 0
|
||||
|
||||
def emane_version():
|
||||
'Return the locally installed EMANE version identifier and string.'
|
||||
cmd = ('emane', '--version')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue