Skip to content

Commit 9776e7a

Browse files
backport 7862 to 1.5.latest (#7878)
* cherry pick f767943 * Regenerate event proto types --------- Co-authored-by: Jeremy Cohen <[email protected]>
1 parent e1a9d9f commit 9776e7a

File tree

6 files changed

+660
-621
lines changed

6 files changed

+660
-621
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
kind: Features
2+
body: Add AdapterRegistered event log message
3+
time: 2023-06-13T15:15:07.367371-07:00
4+
custom:
5+
Author: colin-rogers-dbt
6+
Issue: "7038"

core/dbt/adapters/factory.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
from dbt.adapters.protocol import AdapterConfig, AdapterProtocol, RelationProtocol
1010
from dbt.contracts.connection import AdapterRequiredConfig, Credentials
1111
from dbt.events.functions import fire_event
12-
from dbt.events.types import AdapterImportError, PluginLoadError
12+
from dbt.events.types import AdapterImportError, PluginLoadError, AdapterRegistered
1313
from dbt.exceptions import DbtInternalError, DbtRuntimeError
1414
from dbt.include.global_project import PACKAGE_PATH as GLOBAL_PROJECT_PATH
1515
from dbt.include.global_project import PROJECT_NAME as GLOBAL_PROJECT_NAME
16+
from dbt.semver import VersionSpecifier
1617

1718
Adapter = AdapterProtocol
1819

@@ -89,7 +90,13 @@ def load_plugin(self, name: str) -> Type[Credentials]:
8990
def register_adapter(self, config: AdapterRequiredConfig) -> None:
9091
adapter_name = config.credentials.type
9192
adapter_type = self.get_adapter_class_by_name(adapter_name)
92-
93+
adapter_version = import_module(f".{adapter_name}.__version__", "dbt.adapters").version
94+
adapter_version_specifier = VersionSpecifier.from_version_string(
95+
adapter_version
96+
).to_version_string()
97+
fire_event(
98+
AdapterRegistered(adapter_name=adapter_name, adapter_version=adapter_version_specifier)
99+
)
93100
with self.lock:
94101
if adapter_name in self.adapters:
95102
# this shouldn't really happen...

core/dbt/events/types.proto

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,19 @@ message CacheDumpGraphMsg {
671671

672672
// Skipping E032, E033, E034
673673

674+
675+
676+
// E034
677+
message AdapterRegistered {
678+
string adapter_name = 1;
679+
string adapter_version = 2;
680+
}
681+
682+
message AdapterRegisteredMsg {
683+
EventInfo info = 1;
684+
AdapterRegistered data = 2;
685+
}
686+
674687
// E035
675688
message AdapterImportError {
676689
string exc = 1;

core/dbt/events/types.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,14 @@ def message(self) -> str:
654654
# Skipping E032, E033, E034
655655

656656

657+
class AdapterRegistered(InfoLevel):
658+
def code(self):
659+
return "E034"
660+
661+
def message(self) -> str:
662+
return f"Registered adapter: {self.adapter_name}{self.adapter_version}"
663+
664+
657665
class AdapterImportError(InfoLevel):
658666
def code(self):
659667
return "E035"

core/dbt/events/types_pb2.py

Lines changed: 623 additions & 619 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/unit/test_events.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ def test_event_codes(self):
139139
types.AdapterEventInfo(),
140140
types.AdapterEventWarning(),
141141
types.AdapterEventError(),
142+
types.AdapterRegistered(adapter_name="dbt-awesome", adapter_version="1.2.3"),
142143
types.NewConnection(conn_type="", conn_name=""),
143144
types.ConnectionReused(conn_name=""),
144145
types.ConnectionLeftOpenInCleanup(conn_name=""),

0 commit comments

Comments
 (0)