def fetchDocuments(self): log.msg('Fetching %i documents.' % len(self.peers), system=LOG_SYSTEM) defs = [] for peer in self.peers: log.msg('Fetching %s' % peer.url, debug=True, system=LOG_SYSTEM) d = httpclient.httpRequest(peer.url, '', {}, 'GET', timeout=10, ctx_factory=self.ctx_factory) d.addCallbacks(self.gotDocument, self.retrievalFailed, callbackArgs=(peer,), errbackArgs=(peer,)) defs.append(d) if defs: return defer.DeferredList(defs)
def fetchTopologies(self): log.msg('Fetching %i topologies.' % len(self.peers), system=LOG_SYSTEM) defs = [] for peer in self.peers: log.msg('Fetching %s' % peer.url, debug=True, system=LOG_SYSTEM) d = httpclient.httpRequest(peer.url, '', {}, 'GET', timeout=10, ctx_factory=self.ctx_factory) d.addCallbacks(self.gotTopology, self.retrievalFailed, callbackArgs=(peer,), errbackArgs=(peer,)) defs.append(d) if defs: return defer.DeferredList(defs)
def teardownLink(self, connection_id, source_target, dest_target, bandwidth): service_url = self.ncs_services_url + '/service/' + connection_id headers = self._createHeaders() def linkDown(_): log.msg('Link %s -> %s down' % (source_target, dest_target), system=self.log_system) def error(failure): log.msg('Error bringing down link %s -> %s' % (source_target, dest_target), system=self.log_system) log.msg('Message: %s' % _extractErrorMessage(failure), system=self.log_system) return failure d = httpclient.httpRequest(service_url, None, headers, method='DELETE', timeout=NCS_TIMEOUT) d.addCallbacks(linkDown, error) return d
def setupLink(self, connection_id, source_target, dest_target, bandwidth): payload = createVPNPayload(connection_id, source_target, dest_target) headers = self._createHeaders() def linkUp(_): log.msg('Link %s -> %s up' % (source_target, dest_target), system=self.log_system) def error(failure): log.msg('Error bringing up link %s -> %s' % (source_target, dest_target), system=self.log_system) log.msg('Message: %s' % _extractErrorMessage(failure), system=self.log_system) return failure d = httpclient.httpRequest(self.ncs_services_url, payload, headers, method='POST', timeout=NCS_TIMEOUT) d.addCallbacks(linkUp, error) return d
def teardownLink(self, connection_id, source_target, dest_target, bandwidth): service_url = self.ncs_services_url + '/bod/' + connection_id + '?' + NO_OUT_OF_SYNC_CHECK headers = self._createHeaders() def linkDown(_): log.msg('Link %s -> %s down' % (source_target, dest_target), system=self.log_system) def error(failure): log.msg('Error bringing down link %s -> %s' % (source_target, dest_target), system=self.log_system) log.msg('Message: %s' % _extractErrorMessage(failure), system=self.log_system) return failure d = httpclient.httpRequest(service_url, None, headers, method='DELETE', timeout=NCS_TIMEOUT) d.addCallbacks(linkDown, error) return d
def fetchDocuments(self): log.msg('Fetching %i documents.' % len(self.peers), system=LOG_SYSTEM) defs = [] for peer in self.peers: log.msg('Fetching %s' % peer.url, debug=True, system=LOG_SYSTEM) d = httpclient.httpRequest(peer.url, '', {}, 'GET', timeout=10, ctx_factory=self.ctx_factory) d.addCallbacks(self.gotDocument, self.retrievalFailed, callbackArgs=(peer,), errbackArgs=(peer,)) defs.append(d) def updateInterval(passthrough): self.call.interval = min(self.call.interval * 2, FETCH_INTERVAL_MAX) return passthrough if defs: return defer.DeferredList(defs).addBoth(updateInterval)
def setupLink(self, connection_id, source_target, dest_target, bandwidth): service_url = self.ncs_services_url + '?' + NO_OUT_OF_SYNC_CHECK payload = createVPNPayload(connection_id, source_target, dest_target) headers = self._createHeaders() def linkUp(_): log.msg('Link %s -> %s up' % (source_target, dest_target), system=self.log_system) def error(failure): log.msg('Error bringing up link %s -> %s' % (source_target, dest_target), system=self.log_system) log.msg('Message: %s' % _extractErrorMessage(failure), system=self.log_system) return failure d = httpclient.httpRequest(service_url, payload, headers, method='POST', timeout=NCS_TIMEOUT) d.addCallbacks(linkUp, error) return d
def testDiscovery(self): aruba_discovery_service = 'http://localhost:4080/NSI/discovery.xml' bonaire_discovery_service = 'http://localhost:4080/NSI/discovery.xml' requester_agent = nsa.NetworkServiceAgent('test-requester:nsa', 'dud_endpoint1') d = httpclient.httpRequest(aruba_discovery_service.encode('utf-8'), b'', {}, b'GET', timeout=10) aruba_discovery_doc = yield d aruba_discovery = discovery.parse(aruba_discovery_doc) # basic tests self.failUnlessEqual('urn:ogf:network:aruba.net:nsa', aruba_discovery.id_, 'nsa id seems to be wrong') self.failUnlessEqual(2, len(aruba_discovery.networkId), 'should have two networks') self.failUnlessIn('urn:ogf:network:aruba.net:san', aruba_discovery.networkId, 'missing network in discovery') self.failUnlessIn('urn:ogf:network:aruba.net:san', aruba_discovery.networkId, 'missing network in discovery') cs_service_url = None nml_topologies = [] for intf in aruba_discovery.interface: if intf.type_ == constants.CS2_SERVICE_TYPE: cs_service_url = intf.href elif intf.type_ == constants.NML_SERVICE_TYPE: nml_topologies.append(intf.href) self.failIfEqual(cs_service_url, None, 'No service url found')
def fetchDocuments(self): log.msg('Fetching %i documents.' % len(self.peers), system=LOG_SYSTEM) defs = [] for peer in self.peers: log.msg('Fetching %s' % peer.url, debug=True, system=LOG_SYSTEM) d = httpclient.httpRequest(peer.url, '', {}, 'GET', timeout=10, ctx_factory=self.ctx_factory) d.addCallbacks(self.gotDocument, self.retrievalFailed, callbackArgs=(peer, ), errbackArgs=(peer, )) defs.append(d) def updateInterval(passthrough): self.call.interval = min(self.call.interval * 2, FETCH_INTERVAL_MAX) return passthrough if defs: return defer.DeferredList(defs).addBoth(updateInterval)