initial commit with things working for the most part
This commit is contained in:
parent
c1b6747a26
commit
2ede43e3ae
21 changed files with 1018 additions and 1397 deletions
|
@ -1,6 +1,7 @@
|
|||
from xml.dom.minidom import parse
|
||||
|
||||
from core import logger
|
||||
from core.conf import ConfigShim
|
||||
from core.enumerations import NodeTypes
|
||||
from core.misc import nodeutils
|
||||
from core.service import ServiceManager
|
||||
|
@ -369,6 +370,7 @@ class CoreDocumentParser0(object):
|
|||
values.append("files=%s" % files)
|
||||
if not bool(service.getAttribute("custom")):
|
||||
return True
|
||||
values = ConfigShim.str_to_dict(values)
|
||||
self.session.services.setcustomservice(n.objid, svc, values)
|
||||
return True
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ from xml.dom.minidom import parse
|
|||
|
||||
from core import constants
|
||||
from core import logger
|
||||
from core.conf import ConfigShim
|
||||
from core.enumerations import NodeTypes
|
||||
from core.misc import nodeutils
|
||||
from core.misc.ipaddress import MacAddress
|
||||
|
@ -615,6 +616,7 @@ class CoreDocumentParser1(object):
|
|||
values.append('cmddown=%s' % shutdown)
|
||||
if validate:
|
||||
values.append('cmdval=%s' % validate)
|
||||
|
||||
filenames = []
|
||||
files = []
|
||||
for f in xmlutils.iter_children_with_name(service, 'file'):
|
||||
|
@ -629,11 +631,15 @@ class CoreDocumentParser1(object):
|
|||
data = None
|
||||
typestr = 'service:%s:%s' % (name, filename)
|
||||
files.append((typestr, filename, data))
|
||||
|
||||
if filenames:
|
||||
values.append('files=%s' % filenames)
|
||||
|
||||
custom = service.getAttribute('custom')
|
||||
if custom and custom.lower() == 'true':
|
||||
values = ConfigShim.str_to_dict(values)
|
||||
self.session.services.setcustomservice(node.objid, session_service, values)
|
||||
|
||||
# NOTE: if a custom service is used, setservicefile() must be
|
||||
# called after the custom service exists
|
||||
for typestr, filename, data in files:
|
||||
|
@ -812,7 +818,7 @@ class CoreDocumentParser1(object):
|
|||
params = self.parse_parameter_children(options)
|
||||
for name, value in params.iteritems():
|
||||
if name and value:
|
||||
setattr(self.session.options, str(name), str(value))
|
||||
self.session.options.set_config(str(name), str(value))
|
||||
|
||||
def parse_session_hooks(self, session_config):
|
||||
"""
|
||||
|
|
|
@ -217,13 +217,7 @@ class ScenarioPlan(XmlElement):
|
|||
self.last_network_id = 0
|
||||
self.addNetworks()
|
||||
self.addDevices()
|
||||
|
||||
# XXX Do we need these?
|
||||
# self.session.emane.setup() # not during runtime?
|
||||
# self.addorigin()
|
||||
|
||||
self.addDefaultServices()
|
||||
|
||||
self.addSessionConfiguration()
|
||||
|
||||
def addNetworks(self):
|
||||
|
@ -318,10 +312,12 @@ class ScenarioPlan(XmlElement):
|
|||
|
||||
# options
|
||||
options = self.createElement("options")
|
||||
defaults = self.coreSession.options.getdefaultvalues()
|
||||
for i, (k, v) in enumerate(self.coreSession.options.getkeyvaluelist()):
|
||||
if str(v) != str(defaults[i]):
|
||||
XmlElement.add_parameter(self.document, options, k, v)
|
||||
options_config = self.coreSession.options.get_configs()
|
||||
for _id, default_value in self.coreSession.options.default_values().iteritems():
|
||||
value = options_config[_id]
|
||||
if value != default_value:
|
||||
XmlElement.add_parameter(self.document, options, _id, value)
|
||||
|
||||
if options.hasChildNodes():
|
||||
config.appendChild(options)
|
||||
|
||||
|
@ -340,7 +336,7 @@ class ScenarioPlan(XmlElement):
|
|||
|
||||
# metadata
|
||||
meta = self.createElement("metadata")
|
||||
for k, v in self.coreSession.metadata.items():
|
||||
for k, v in self.coreSession.metadata.get_configs().iteritems():
|
||||
XmlElement.add_parameter(self.document, meta, k, v)
|
||||
if meta.hasChildNodes():
|
||||
config.appendChild(meta)
|
||||
|
@ -482,6 +478,7 @@ class NetworkElement(NamedXmlElement):
|
|||
modelconfigs = network_object.session.mobility.getmodels(network_object)
|
||||
modelconfigs += network_object.session.emane.getmodels(network_object)
|
||||
chan = None
|
||||
|
||||
for model, conf in modelconfigs:
|
||||
# Handle mobility parameters below
|
||||
if model.config_type == RegisterTlvs.MOBILITY.value:
|
||||
|
@ -496,10 +493,9 @@ class NetworkElement(NamedXmlElement):
|
|||
channel_domain="CORE")
|
||||
|
||||
# Add wireless model parameters
|
||||
for i, key in enumerate(model.getnames()):
|
||||
value = conf[i]
|
||||
for key, value in conf.iteritems():
|
||||
if value is not None:
|
||||
chan.addParameter(key, model.valueof(key, conf))
|
||||
chan.addParameter(key, value)
|
||||
|
||||
for model, conf in modelconfigs:
|
||||
if model.config_type == RegisterTlvs.MOBILITY.value:
|
||||
|
@ -509,8 +505,8 @@ class NetworkElement(NamedXmlElement):
|
|||
type_element = self.createElement("type")
|
||||
type_element.appendChild(self.createTextNode(model.name))
|
||||
mobility.appendChild(type_element)
|
||||
for i, key in enumerate(model.getnames()):
|
||||
value = conf[i]
|
||||
|
||||
for key, value in conf.iteritems():
|
||||
if value is not None:
|
||||
mobility.addParameter(key, value)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue