X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2Fnetwork.py;h=9276fb0f3f856aac02299fdec9ba6bb7775b3f06;hb=38d587e6a030584323745924d891510bdff74169;hp=d8f0c1dd4e86705af295ff3caa68e04e1abb7136;hpb=821312a785697f0beab750db854bb1f6595ab0df;p=sfa.git diff --git a/sfa/plc/network.py b/sfa/plc/network.py index d8f0c1dd..9276fb0f 100644 --- a/sfa/plc/network.py +++ b/sfa/plc/network.py @@ -1,13 +1,14 @@ from __future__ import with_statement +import sys import re import socket +from StringIO import StringIO +from lxml import etree +from xmlbuilder import XMLBuilder + +from sfa.util.faults import * from sfa.util.xrn import get_authority from sfa.util.plxrn import hrn_to_pl_slicename, hostname_to_urn -from sfa.util.faults import * -from xmlbuilder import XMLBuilder -from lxml import etree -import sys -from StringIO import StringIO class Sliver: def __init__(self, node): @@ -347,6 +348,7 @@ class Network: try: val = self.sites[id] except: + self.api.logger.error("Invalid RSpec: site ID %s not found" % id ) raise InvalidRSpec("site ID %s not found" % id) return val @@ -471,6 +473,10 @@ class Network: if not relaxng(tree): error = relaxng.error_log.last_error message = "%s (line %s)" % (error.message, error.line) + self.api.logger.error("failed to validate rspec %r"%message) + self.api.logger.debug("---------- XML input BEG") + self.api.logger.debug(xml) + self.api.logger.debug("---------- XML input END") raise InvalidRSpec(message) self.rspec = rspec @@ -566,8 +572,12 @@ class Network: """ tmp = [] for node in api.plshell.GetNodes(api.plauth, {'peer_id': None}): - t = node['node_id'], Node(self, node) - tmp.append(t) + try: + t = node['node_id'], Node(self, node) + tmp.append(t) + except: + self.api.logger.error("Failed to add node %s (%s) to RSpec" % (node['hostname'], node['node_id'])) + return dict(tmp) def get_ifaces(self, api):