Esempio n. 1
0
 def test(self):
     addr = "localhost:6806"
     with mock.patch.object(grpc, "secure_channel", autospec=True):
         ingester = server_ingester.ExistingServerDataIngester(addr)
         ingester.start()
     self.assertIsInstance(ingester.data_provider,
                           grpc_provider.GrpcDataProvider)
Esempio n. 2
0
    def _make_data_ingester(self):
        """Determines the right data ingester, starts it, and returns it."""
        flags = self.flags
        if flags.grpc_data_provider:
            ingester = server_ingester.ExistingServerDataIngester(
                flags.grpc_data_provider,
                channel_creds_type=flags.grpc_creds_type,
            )
            ingester.start()
            return ingester

        if flags.load_fast == "true":
            try:
                return self._start_subprocess_data_ingester()
            except server_ingester.NoDataServerError as e:
                msg = "Option --load_fast=true not available: %s\n" % e
                sys.stderr.write(msg)
                sys.exit(1)
            except server_ingester.DataServerStartupError as e:
                msg = _DATA_SERVER_STARTUP_ERROR_MESSAGE_TEMPLATE % e
                sys.stderr.write(msg)
                sys.exit(1)

        if flags.load_fast == "auto" and _should_use_data_server(flags.logdir):
            try:
                return self._start_subprocess_data_ingester()
            except server_ingester.NoDataServerError as e:
                logger.info("No data server: %s", e)
            except server_ingester.DataServerStartupError as e:
                logger.info(
                    "Data server error: %s; falling back to multiplexer", e)

        ingester = local_ingester.LocalDataIngester(flags)
        ingester.start()
        return ingester
Esempio n. 3
0
    def _make_data_provider(self):
        """Returns `(data_provider, deprecated_multiplexer)`."""
        flags = self.flags
        if flags.grpc_data_provider:
            ingester = server_ingester.ExistingServerDataIngester(
                flags.grpc_data_provider,
                channel_creds_type=flags.grpc_creds_type,
            )
        elif flags.load_fast:
            ingester = server_ingester.SubprocessServerDataIngester(
                logdir=flags.logdir,
                reload_interval=flags.reload_interval,
                channel_creds_type=flags.grpc_creds_type,
                samples_per_plugin=flags.samples_per_plugin,
            )
        else:
            ingester = local_ingester.LocalDataIngester(flags)

        # Stash ingester so that it can avoid GCing Windows file handles.
        # (See comment in `SubprocessServerDataIngester.start` for details.)
        self._ingester = ingester

        ingester.start()
        deprecated_multiplexer = None
        if isinstance(ingester, local_ingester.LocalDataIngester):
            deprecated_multiplexer = ingester.deprecated_multiplexer
        return (ingester.data_provider, deprecated_multiplexer)
Esempio n. 4
0
 def _make_data_ingester(self):
     flags = self.flags
     if flags.grpc_data_provider:
         return server_ingester.ExistingServerDataIngester(
             flags.grpc_data_provider,
             channel_creds_type=flags.grpc_creds_type,
         )
     if _should_use_data_server(flags.load_fast, flags.logdir):
         try:
             server_binary = server_ingester.get_server_binary()
         except server_ingester.NoDataServerError as e:
             if flags.load_fast == "true":
                 msg = "Option --load_fast=true not available: %s\n" % e
                 sys.stderr.write(msg)
                 sys.exit(1)
             logger.info("No data server: %s", e)
         else:
             if flags.load_fast == "auto":
                 sys.stderr.write(_DATA_SERVER_MESSAGE)
                 sys.stderr.flush()
             return server_ingester.SubprocessServerDataIngester(
                 server_binary=server_binary,
                 logdir=flags.logdir,
                 reload_interval=flags.reload_interval,
                 channel_creds_type=flags.grpc_creds_type,
                 samples_per_plugin=flags.samples_per_plugin,
             )
     return local_ingester.LocalDataIngester(flags)