Skip to content
Snippets Groups Projects
Commit bbd54fe2 authored by Henrik Thostrup Jensen's avatar Henrik Thostrup Jensen
Browse files

add connection trace in reserve request

parent f33d3d34
No related branches found
No related tags found
No related merge requests found
...@@ -291,7 +291,8 @@ class Aggregator: ...@@ -291,7 +291,8 @@ class Aggregator:
provider_nsa = self.topology.getNSA(link.network) provider_nsa = self.topology.getNSA(link.network)
provider = self.getProvider(provider_nsa.urn()) provider = self.getProvider(provider_nsa.urn())
header = nsa.NSIHeader(self.nsa_.urn(), provider_nsa.urn()) conn_trace = header.connection_trace or [] + [ self.nsa_.urn() + ':' + conn.connection_id ]
c_header = nsa.NSIHeader(self.nsa_.urn(), provider_nsa.urn(), connection_trace=conn_trace)
# this has to be done more generic sometime # this has to be done more generic sometime
sd = nsa.Point2PointService(nsa.STP(link.network, link.src_port, link.src_label), sd = nsa.Point2PointService(nsa.STP(link.network, link.src_port, link.src_label),
...@@ -299,7 +300,7 @@ class Aggregator: ...@@ -299,7 +300,7 @@ class Aggregator:
conn.bandwidth, sd.directionality, sd.symmetric) conn.bandwidth, sd.directionality, sd.symmetric)
# save info for db saving # save info for db saving
self.reservations[header.correlation_id] = { self.reservations[c_header.correlation_id] = {
'provider_nsa' : provider_nsa.urn(), 'provider_nsa' : provider_nsa.urn(),
'service_connection_id' : conn.id, 'service_connection_id' : conn.id,
'order_id' : idx, 'order_id' : idx,
...@@ -310,7 +311,7 @@ class Aggregator: ...@@ -310,7 +311,7 @@ class Aggregator:
crt = nsa.Criteria(criteria.revision, criteria.schedule, sd) crt = nsa.Criteria(criteria.revision, criteria.schedule, sd)
d = provider.reserve(header, None, conn.global_reservation_id, conn.description, crt) d = provider.reserve(c_header, None, conn.global_reservation_id, conn.description, crt)
conn_info.append( (d, provider_nsa) ) conn_info.append( (d, provider_nsa) )
# Don't bother trying to save connection here, wait for reserveConfirmed # Don't bother trying to save connection here, wait for reserveConfirmed
...@@ -350,9 +351,9 @@ class Aggregator: ...@@ -350,9 +351,9 @@ class Aggregator:
for (sc_id, provider_nsa) in reserved_connections: for (sc_id, provider_nsa) in reserved_connections:
provider = self.getProvider(provider_nsa.urn()) provider = self.getProvider(provider_nsa.urn())
header = nsa.NSIHeader(self.nsa_.urn(), provider_nsa.urn()) t_header = nsa.NSIHeader(self.nsa_.urn(), provider_nsa.urn())
d = provider.terminate(header, sc_id) d = provider.terminate(t_header, sc_id)
d.addCallbacks( d.addCallbacks(
lambda c : log.msg('Succesfully terminated sub connection %s at %s after partial reservation failure.' % (sc_id, provider_nsa.urn()) , system=LOG_SYSTEM), lambda c : log.msg('Succesfully terminated sub connection %s at %s after partial reservation failure.' % (sc_id, provider_nsa.urn()) , system=LOG_SYSTEM),
lambda f : log.msg('Error terminating connection after partial-reservation failure: %s' % str(f), system=LOG_SYSTEM) lambda f : log.msg('Error terminating connection after partial-reservation failure: %s' % str(f), system=LOG_SYSTEM)
......
...@@ -24,7 +24,7 @@ class CommonHeaderType(object): ...@@ -24,7 +24,7 @@ class CommonHeaderType(object):
element.findtext('providerNSA'), element.findtext('providerNSA'),
element.findtext('replyTo') if element.find('replyTo') is not None else None, element.findtext('replyTo') if element.find('replyTo') is not None else None,
[ SessionSecurityAttrType.build(e) for e in element.findall('sessionSecurityAttr') ] if element.find('sessionSecurityAttr') is not None else None, [ SessionSecurityAttrType.build(e) for e in element.findall('sessionSecurityAttr') ] if element.find('sessionSecurityAttr') is not None else None,
[ e for e in element.find(str(ConnectionTrace)).findall(str(Connection)) ] if element.find(str(ConnectionTrace)) is not None else None [ e.text for e in element.find(str(ConnectionTrace)).findall(str(Connection)) ] if element.find(str(ConnectionTrace)) is not None else None
) )
def xml(self, elementName): def xml(self, elementName):
......
...@@ -41,9 +41,9 @@ LABEL_MAP = { ...@@ -41,9 +41,9 @@ LABEL_MAP = {
def createHeader(requester_nsa_urn, provider_nsa_urn, session_security_attrs=None, reply_to=None, correlation_id=None): def createHeader(requester_nsa_urn, provider_nsa_urn, session_security_attrs=None, reply_to=None, correlation_id=None, connection_trace=None):
header = nsiframework.CommonHeaderType(cnt.CS2_SERVICE_TYPE, correlation_id, requester_nsa_urn, provider_nsa_urn, reply_to, session_security_attrs) header = nsiframework.CommonHeaderType(cnt.CS2_SERVICE_TYPE, correlation_id, requester_nsa_urn, provider_nsa_urn, reply_to, session_security_attrs, connection_trace)
header_element = header.xml(nsiframework.nsiHeader) header_element = header.xml(nsiframework.nsiHeader)
return header_element return header_element
...@@ -100,7 +100,7 @@ def parseRequest(soap_data): ...@@ -100,7 +100,7 @@ def parseRequest(soap_data):
else: else:
body = [ nsiconnection.parseElement(b) for b in bodies ] body = [ nsiconnection.parseElement(b) for b in bodies ]
nsi_header = nsa.NSIHeader(header.requesterNSA, header.providerNSA, header.correlationId, header.replyTo) nsi_header = nsa.NSIHeader(header.requesterNSA, header.providerNSA, header.correlationId, header.replyTo, connection_trace=header.connectionTrace)
return nsi_header, body return nsi_header, body
......
...@@ -88,7 +88,8 @@ class RequesterClient: ...@@ -88,7 +88,8 @@ class RequesterClient:
# payload construction # payload construction
header_payload = helper.createHeader(header.requester_nsa, header.provider_nsa, reply_to=self.reply_to, correlation_id=header.correlation_id) header_payload = helper.createHeader(header.requester_nsa, header.provider_nsa, reply_to=self.reply_to,
correlation_id=header.correlation_id, connection_trace=header.connection_trace)
schedule = criteria.schedule schedule = criteria.schedule
sd = criteria.service_def sd = criteria.service_def
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment