From ad7f1fcfc10541cf19044a1bf88d16deb1398772 Mon Sep 17 00:00:00 2001 From: wanting4 <61065461+wanting4@users.noreply.github.com> Date: Fri, 10 Dec 2021 12:20:13 -0800 Subject: [PATCH] feat: Issue339 ldap logmech (#347) * fix Issue 339 add logmech option for connect * feat:add logmech flag to tereadata connection * update change for issue 339 * update connections.md * update connection doc * update flag and doc * update for flags and docs Co-authored-by: Elaina Yao --- data_validation/cli_tools.py | 1 + docs/connections.md | 3 ++- third_party/ibis/ibis_teradata/api.py | 6 ++++-- third_party/ibis/ibis_teradata/client.py | 5 ++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/data_validation/cli_tools.py b/data_validation/cli_tools.py index 909dab045..bea20de2a 100644 --- a/data_validation/cli_tools.py +++ b/data_validation/cli_tools.py @@ -64,6 +64,7 @@ ["port", "Teradata port to connect on"], ["user_name", "User used to connect"], ["password", "Password for supplied user"], + ["logmech", "Log on mechanism"], ], "Oracle": [ ["host", "Desired Oracle host"], diff --git a/docs/connections.md b/docs/connections.md index aba784263..0b7a316d5 100644 --- a/docs/connections.md +++ b/docs/connections.md @@ -27,7 +27,7 @@ data-validation connections add --connection-name MY_BQ_CONN BigQuery --project- ## Create a sample Teradata connection: ``` -data-validation connections add --connection-name MY_TD_CONN Teradata --host HOST_IP --port PORT --user_name USER_NAME --password PASSWORD +data-validation connections add --connection-name MY_TD_CONN Teradata --host HOST_IP --port PORT --user-name USER-NAME --password PASSWORD ``` ## List existing connections @@ -129,6 +129,7 @@ via `pip install teradatasql` if you have a license. # Connection Details "host": "127.0.0.1", "port":1025, + "logmech":"TD2", "user_name":"my-user", "password":"my-password" } diff --git a/third_party/ibis/ibis_teradata/api.py b/third_party/ibis/ibis_teradata/api.py index d1aef90cf..537ba5d71 100644 --- a/third_party/ibis/ibis_teradata/api.py +++ b/third_party/ibis/ibis_teradata/api.py @@ -38,7 +38,7 @@ def verify(expr, params=None): def connect( - host: str, user_name: str, password: str, port: Optional[int] = 1025 + host: str, user_name: str, password: str, port: Optional[int] = 1025, logmech: Optional[str]='TD2' ) -> TeradataClient: """ Create a TeradataClient for use with Ibis. Parameters @@ -51,9 +51,11 @@ def connect( Password for supplied username port : Optional[int] The database port to connect to (default. 1025) + logmech : Optional[str] + Logmech flag to select with (default. TD2) Returns ------- TeradataClient """ - return TeradataClient(host, user_name, password, port) + return TeradataClient(host, user_name, password, port, logmech) diff --git a/third_party/ibis/ibis_teradata/client.py b/third_party/ibis/ibis_teradata/client.py index c62459bbb..f3e4bee6e 100644 --- a/third_party/ibis/ibis_teradata/client.py +++ b/third_party/ibis/ibis_teradata/client.py @@ -66,7 +66,7 @@ class TeradataClient(SQLClient): table_class = TeradataTable dialect = compiler.TeradataDialect - def __init__(self, host, user_name, password, port=1025, use_no_lock_tables=False): + def __init__(self, host, user_name, password, port=1025, logmech='TD2', use_no_lock_tables=False): """Construct a TeradataClient. Parameters @@ -79,12 +79,15 @@ def __init__(self, host, user_name, password, port=1025, use_no_lock_tables=Fals Password for supplied username port : Optional[int] The database port to connect to (default. 1025) + logmech : Optional[int] + The logmech type to connect to (default. TD2) """ self.teradata_config = { "host": host, "user": user_name, "password": password, "dbs_port": port, + "logmech": logmech, } self.client = teradatasql.connect(**self.teradata_config)