def baseplate_thrift_client(endpoint, client_span_observer=None): baseplate = Baseplate() if client_span_observer: class TestServerSpanObserver(ServerSpanObserver): def on_child_span_created(self, span): span.register(client_span_observer) observer = TestServerSpanObserver() class TestBaseplateObserver(BaseplateObserver): def on_server_span_created(self, context, span): span.register(observer) baseplate.register(TestBaseplateObserver()) context = baseplate.make_context_object() trace_info = TraceInfo.from_upstream( trace_id=1234, parent_id=2345, span_id=3456, flags=4567, sampled=True ) baseplate.configure_context( {"example_service.endpoint": str(endpoint)}, {"example_service": ThriftClient(TestService.Client)}, ) baseplate.make_server_span(context, "example_service.example", trace_info) edge_context_factory = make_edge_context_factory() edge_context = edge_context_factory.from_upstream(SERIALIZED_EDGECONTEXT_WITH_VALID_AUTH) edge_context.attach_context(context) yield context
def setUp(self): self.baseplate_observer = TestBaseplateObserver() profiles = { "foo": ExecutionProfile(consistency_level=ConsistencyLevel.QUORUM) } baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.configure_context( { "cassandra.contact_points": cassandra_endpoint.address.host, "cassandra_no_prof.contact_points": cassandra_endpoint.address.host, }, { "cassandra_no_prof": CassandraClient(keyspace="system"), "cassandra": CassandraClient(keyspace="system", execution_profiles=profiles), }, ) self.context = baseplate.make_context_object() self.server_span = baseplate.make_server_span(self.context, "test")
def test_configure_context_supports_complex_specs(self): from baseplate.context.thrift import ThriftClient from baseplate.thrift import BaseplateService app_config = { "enable_some_fancy_feature": "true", "thrift.foo.endpoint": "localhost:9090", "thrift.bar.endpoint": "localhost:9091", } baseplate = Baseplate() baseplate.configure_context( app_config, { "enable_some_fancy_feature": config.Boolean, "thrift": { "foo": ThriftClient(BaseplateService.Client), "bar": ThriftClient(BaseplateService.Client), }, }, ) context = baseplate.make_context_object() with baseplate.make_server_span(context, "test"): self.assertTrue(context.enable_some_fancy_feature) self.assertIsNotNone(context.thrift.foo) self.assertIsNotNone(context.thrift.bar)
def test_simple_config(self): baseplate = Baseplate() baseplate.configure_context({"db.url": "sqlite://"}, {"db": SQLAlchemySession()}) context = baseplate.make_context_object() with baseplate.make_server_span(context, "test"): context.db.execute("SELECT 1;")
def test_null_server_observer(self): baseplate = Baseplate() mock_context = baseplate.make_context_object() mock_observer = mock.Mock(spec=BaseplateObserver) mock_observer.on_server_span_created.return_value = None baseplate.register(mock_observer) server_span = baseplate.make_server_span(mock_context, "name", TraceInfo(1, 2, 3, None, 0)) self.assertEqual(server_span.observers, [])
def test_null_server_observer(self): mock_context = mock.Mock() mock_observer = mock.Mock(spec=BaseplateObserver) mock_observer.on_server_span_created.return_value = None baseplate = Baseplate() baseplate.register(mock_observer) server_span = baseplate.make_server_span(mock_context, "name", TraceInfo(1, 2, 3, None, 0)) self.assertEqual(server_span.observers, [])
def setUp(self): self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.configure_context( {"memcache.endpoint": str(memcached_endpoint)}, {"memcache": MemcacheClient()}) self.context = baseplate.make_context_object() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.configure_context( {"redis.url": f"redis://{redis_endpoint}/0"}, {"redis": RedisClient()}) self.context = baseplate.make_context_object() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): pool = redis.ConnectionPool(host="localhost") factory = RedisContextFactory(pool) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("redis", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): pool = redis.ConnectionPool(host="localhost") factory = RedisContextFactory(pool) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("redis", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): pool = PooledClient(server=("localhost", 11211)) factory = MemcacheContextFactory(pool) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("memcache", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.configure_context( {"cassandra.contact_points": cassandra_endpoint.address.host}, {"cassandra": CassandraClient(keyspace="system")}, ) self.context = baseplate.make_context_object() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): pool = PooledClient(server=("localhost", 11211)) factory = MemcacheContextFactory(pool) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("memcache", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def test_server_observer_made(self): mock_context = mock.Mock() mock_observer = mock.Mock(spec=BaseplateObserver) baseplate = Baseplate() baseplate.register(mock_observer) server_span = baseplate.make_server_span(mock_context, "name", TraceInfo(1, 2, 3, None, 0)) self.assertEqual(baseplate.observers, [mock_observer]) self.assertEqual(mock_observer.on_server_span_created.call_count, 1) self.assertEqual(mock_observer.on_server_span_created.call_args, mock.call(mock_context, server_span))
def test_server_observer_made(self): mock_context = mock.Mock() mock_observer = mock.Mock(spec=BaseplateObserver) baseplate = Baseplate() baseplate.register(mock_observer) server_span = baseplate.make_server_span(mock_context, "name", TraceInfo(1, 2, 3, None, 0)) self.assertEqual(baseplate.observers, [mock_observer]) self.assertEqual(mock_observer.on_server_span_created.call_count, 1) self.assertEqual(mock_observer.on_server_span_created.call_args, mock.call(mock_context, server_span))
def setUp(self): cluster = Cluster(["localhost"]) session = cluster.connect("system") factory = CassandraContextFactory(session) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("cassandra", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): secrets_store = mock.Mock(spec=SecretsStore) secrets_store.get_vault_url.return_value = "http://%s:%d/" % vault_endpoint.address secrets_store.get_vault_token.return_value = "b4c6f298-3f80-11e7-8b88-5254001e7ad3" self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.configure_context({}, {"vault": HvacClient(secrets_store)}) self.context = baseplate.make_context_object() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): cluster = Cluster(["localhost"]) session = cluster.connect("system") factory = CassandraContextFactory(session) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("cassandra", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): engine = create_engine("sqlite://") # in-memory db Base.metadata.create_all(bind=engine) factory = SQLAlchemySessionContextFactory(engine) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("db", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): engine = create_engine("sqlite://") # in-memory db Base.metadata.create_all(bind=engine) factory = SQLAlchemySessionContextFactory(engine) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("db", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): engine = engine_from_config({"database.url": "sqlite://"}) # in-memory db Base.metadata.create_all(bind=engine) factory = SQLAlchemySessionContextFactory(engine) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("db", factory) self.context = baseplate.make_context_object() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): self.allowance = 10 self.interval = 1 ratelimiter_factory = RateLimiterContextFactory( self.backend_factory, self.allowance, self.interval) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("ratelimiter", ratelimiter_factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): app_config = {} secrets_store = mock.Mock(spec=SecretsStore) secrets_store.get_vault_url.return_value = "http://%s:%d/" % vault_endpoint.address secrets_store.get_vault_token.return_value = "b4c6f298-3f80-11e7-8b88-5254001e7ad3" factory = hvac_factory_from_config(app_config, secrets_store) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("vault", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")
def setUp(self): app_config = {} secrets_store = mock.Mock(spec=SecretsStore) secrets_store.get_vault_url.return_value = "http://localhost:8200/" secrets_store.get_vault_token.return_value = "b4c6f298-3f80-11e7-8b88-5254001e7ad3" factory = hvac_factory_from_config(app_config, secrets_store) self.baseplate_observer = TestBaseplateObserver() baseplate = Baseplate() baseplate.register(self.baseplate_observer) baseplate.add_to_context("vault", factory) self.context = mock.Mock() self.server_span = baseplate.make_server_span(self.context, "test")