Skip to content

Commit

Permalink
added TSL connection options and some other teradatasql flags (#106)
Browse files Browse the repository at this point in the history
* added TSL connection options and some other teradatasql flags

* added request_timeout and restriction for teradatasql

* changed the teradatasql version in setup.py

* reverted the changes for teradatasql

---------

Co-authored-by: Sharma <[email protected]>
  • Loading branch information
VarunSharma15 and Sharma authored Sep 22, 2023
1 parent 1261b1a commit 4d7bb8f
Showing 1 changed file with 69 additions and 6 deletions.
75 changes: 69 additions & 6 deletions dbt/adapters/teradata/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,22 @@ class TeradataCredentials(Credentials):
teradata_values: Optional[str] = None
retries: int = 0
retry_timeout: int = 1
sslmode: Optional[str] = None
sslca: Optional[str] = None
sslcapath: Optional[str] = None
sslcrc: Optional[str] = None
sslcipher: Optional[str] = None
sslprotocol: Optional[str] = None
browser: Optional[str] = None
browser_tab_timeout: Optional[int] = None
browser_timeout: Optional[int] = None
sp_spl: Optional[bool] = None
sessions: Optional[int] = None
runstartup: Optional[bool] = None
logon_timeout: Optional[int] = None
https_port: Optional[int] = None
connect_timeout: Optional[int] = None
request_timeout: Optional[int] = None

_ALIASES = {
"UID": "username",
Expand Down Expand Up @@ -106,7 +122,23 @@ def _connection_keys(self):
"max_message_body",
"partition",
"sip_support",
"teradata_values"
"teradata_values",
"sslmode",
"sslca",
"sslcapath",
"sslcrc",
"sslcipher",
"sslprotocol",
"browser",
"browser_tab_timeout",
"browser_timeout",
"sp_spl",
"sessions",
"runstartup",
"logon_timeout",
"https_port",
"connect_timeout",
"request_timeout"
)


Expand Down Expand Up @@ -136,9 +168,11 @@ def open(cls, connection):
kwargs = {}

kwargs["host"] = credentials.server
kwargs["user"] = credentials.username
kwargs["password"] = credentials.password
kwargs["tmode"] = credentials.tmode
if credentials.username:
kwargs["user"] = credentials.username
if credentials.password:
kwargs["password"] = credentials.password
if credentials.logmech:
kwargs["logmech"] = credentials.logmech
if credentials.account:
Expand Down Expand Up @@ -173,13 +207,42 @@ def open(cls, connection):
kwargs["teradata_values"] = credentials.teradata_values
if credentials.port:
kwargs["dbs_port"] = credentials.port
if credentials.sslmode:
kwargs["sslmode"] = credentials.sslmode
if credentials.sslca:
kwargs["sslca"] = credentials.sslca
if credentials.sslcapath:
kwargs["sslcapath"] = credentials.sslcapath
if credentials.sslcrc:
kwargs["sslcrc"] = credentials.sslcrc
if credentials.sslcipher:
kwargs["sslcipher"] = credentials.sslcipher
if credentials.sslprotocol:
kwargs["sslprotocol"] = credentials.sslprotocol
if credentials.browser:
kwargs["browser"]=credentials.browser
if credentials.browser_tab_timeout:
kwargs["browser_tab_timeout"]=credentials.browser_tab_timeout
if credentials.browser_timeout:
kwargs["browser_timeout"]=credentials.browser_timeout
if credentials.sp_spl:
kwargs["sp_spl"]=credentials.sp_spl
if credentials.sessions:
kwargs["sessions"]=credentials.sessions
if credentials.runstartup:
kwargs["runstartup"]=credentials.runstartup
if credentials.logon_timeout:
kwargs["logon_timeout"]=credentials.logon_timeout
if credentials.https_port:
kwargs["https_port"]=credentials.https_port
if credentials.connect_timeout:
kwargs["connect_timeout"]=credentials.connect_timeout
if credentials.request_timeout:
kwargs["request_timeout"]=credentials.request_timeout

# Save the transaction mode
cls.TMODE = credentials.tmode

logger.debug("host: {}",credentials.server);
logger.debug("retries: {}",credentials.retries);

if credentials.retries > 0:
def connect():
connection.handle = teradatasql.connect(**kwargs)
Expand Down

0 comments on commit 4d7bb8f

Please sign in to comment.