commit cefbcea3515f7010c955aa5afe783e96d108ea4c Author: Radek Pazdera rpazdera@redhat.com Date: Fri Jun 8 12:19:25 2012 +0200
NetConfigParse: Extending options parsing
This commit makes NetConfigParser accept <netdevice> options in a slightly different format. Previous format of options accepted values only as an 'value' attribute to the <option> tag. With this modification it is possible to define options also with values as a text elements of the option tag. There are now two possibilities:
<!-- The usual way --> <option name="opt" value="5" />
<!-- Longer values can be specified like this --> <option name="teamd_config"> { "device": "team1", "runner": {"name": "roundrobin"}, "ports": {"eth3": {}, "eth4": {}} } </option>
Signed-off-by: Radek Pazdera rpazdera@redhat.com
NetConfig/NetConfigParse.py | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) --- diff --git a/NetConfig/NetConfigParse.py b/NetConfig/NetConfigParse.py index dbd7a6d..ff148e5 100644 --- a/NetConfig/NetConfigParse.py +++ b/NetConfig/NetConfigParse.py @@ -97,7 +97,17 @@ class NetConfigParse:
def _parse_options_handler(self, lst, dom_element, config): name = str(dom_element.getAttribute("name")) - value = str(dom_element.getAttribute("value")) + + value = "" + if dom_element.hasAttribute("value"): + value = str(dom_element.getAttribute("value")) + elif dom_element.hasChildNodes(): + node = dom_element.firstChild + try: + value = str(dom_element.firstChild.data) + except: + raise Exception("Invalid option value") + lst.append((name, value))
def _parse_options(self, netdev, dom_netdev, config):
lnst-developers@lists.fedorahosted.org