Ejemplo n.º 1
0
    def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        log.info("starting test %s.%s", self.__class__.__name__,
                 self._testMethodName)
        self.s4_site = site = s4.server.Site(s4.Root())
        self.ssl_cert = crypto.load_certificate(
            crypto.FILETYPE_PEM, server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)
        if self.s4_use_ssl:
            ssl_context_factory = s4.ContextFactory(
                self.ssl_cert, self.ssl_key)
            self.s4_conn = reactor.listenSSL(0, site, ssl_context_factory)
        else:
            self.s4_conn = reactor.listenTCP(0, site)

        if self.createOOPSFiles:
            location = self.mktemp()
            self.patch(settings, 'OOPS_PATH', location)
            oops_config = configure_oops()

            try:
                os.mkdir(location)
            except OSError:
                for path in self.get_oops():
                    os.unlink(path)
        else:
            # we don't need a real oops serializer, just dump all oops data to
            # stderr for the test run
            oops_config = configure_oops()

            def publish(report):
                report.setdefault("id", uuid.uuid4())
                serializer_rfc822.write(report, sys.stderr)

            oops_config.publishers = [publish]

        self._state = State()
        self.service = StorageServerService(
            0, "localhost", self.s4_port, self.s4_use_ssl,
            s4.AWS_DEFAULT_ACCESS_KEY_ID,
            s4.AWS_DEFAULT_SECRET_ACCESS_KEY,
            auth_provider_class=self.auth_provider_class,
            oops_config=oops_config, status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()
Ejemplo n.º 2
0
    def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        log.info("starting test %s.%s", self.__class__.__name__,
                 self._testMethodName)
        self.s4_site = site = s4.server.Site(s4.Root())
        self.ssl_cert = crypto.load_certificate(
            crypto.FILETYPE_PEM, server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)
        if self.s4_use_ssl:
            ssl_context_factory = s4.ContextFactory(
                self.ssl_cert, self.ssl_key)
            self.s4_conn = reactor.listenSSL(0, site, ssl_context_factory)
        else:
            self.s4_conn = reactor.listenTCP(0, site)

        if self.createOOPSFiles:
            location = self.mktemp()
            self.patch(config.oops, 'path', location)
            oops_config = configure_oops()

            try:
                os.mkdir(location)
            except OSError:
                for path in self.get_oops():
                    os.unlink(path)
        else:
            # we don't need a real oops serializer, just dump all oops data to
            # stderr for the test run
            oops_config = configure_oops()

            def publish(report):
                report.setdefault("id", uuid.uuid4())
                serializer_rfc822.write(report, sys.stderr)

            oops_config.publishers = [publish]

        self._state = State()
        self.service = StorageServerService(
            0, "localhost", self.s4_port, self.s4_use_ssl,
            s4.AWS_DEFAULT_ACCESS_KEY_ID,
            s4.AWS_DEFAULT_SECRET_ACCESS_KEY,
            auth_provider_class=self.auth_provider_class,
            oops_config=oops_config, status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()
    def setUp(self):
        yield super(NotificationErrorsTestCase, self).setUp()

        self.notifier = FakeNotifier()
        self.patch(notifier, 'get_notifier', lambda: self.notifier)
        self.fake_reactor = DummyReactor()
        self.oops_deferred = defer.Deferred()

        def publish(report):
            self.oops_deferred.callback(report)

        oops_config = configure_oops()
        # Should probably be an option to configure_oops?
        oops_timeline.install_hooks(oops_config)
        oops_config.publishers = [publish]

        self.ssfactory = StorageServerFactory(
            s3_host=None,
            s3_port=None,
            s3_key=None,
            s3_ssl=False,
            s3_secret=None,
            oops_config=oops_config,
            reactor=self.fake_reactor)

        protocol = StorageServer()
        protocol.factory = self.ssfactory
        protocol.working_caps = ["volumes", "generations"]
        protocol.logger = logging.getLogger("storage.server")
        protocol.session_id = uuid.uuid4()
        self.patch(self.ssfactory.content, 'get_user_by_id',
                   lambda *a: Failure(self.induced_error("Test error")))
Ejemplo n.º 4
0
    def setUp(self):
        yield super(NotificationErrorsTestCase, self).setUp()

        self.notifier = FakeNotifier()
        self.patch(notifier, 'get_notifier', lambda: self.notifier)
        self.fake_reactor = DummyReactor()
        self.oops_deferred = defer.Deferred()

        def publish(report):
            self.oops_deferred.callback(report)

        oops_config = configure_oops()
        # Should probably be an option to configure_oops?
        oops_timeline.install_hooks(oops_config)
        oops_config.publishers = [publish]

        self.ssfactory = StorageServerFactory(s3_host=None,
                                              s3_port=None,
                                              s3_key=None,
                                              s3_ssl=False,
                                              s3_secret=None,
                                              oops_config=oops_config,
                                              reactor=self.fake_reactor)

        protocol = StorageServer()
        protocol.factory = self.ssfactory
        protocol.working_caps = ["volumes", "generations"]
        protocol.logger = logging.getLogger("storage.server")
        protocol.session_id = uuid.uuid4()
        self.patch(self.ssfactory.content, 'get_user_by_id',
                   lambda *a: Failure(self.induced_error("Test error")))