Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
    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
Пример #6
0
    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)
Пример #7
0
    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
Пример #8
0
    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')
Пример #9
0
    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)