From daf07451f8e8f3e76a791c696b0ea175e8ed3ac1 Mon Sep 17 00:00:00 2001 From: Naveen Sinha Date: Sat, 17 Apr 2021 12:32:58 +0530 Subject: [PATCH] Add support for kerberos token based auth (#5809) * Add support for kerberos token based auth * Added kerb_ticket as attribute to HDFSFileSystem * Lint fix for config schema * Updated black style changes * Removed staticmethod decorator from hdfs --- dvc/config_schema.py | 2 +- dvc/fs/hdfs.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dvc/config_schema.py b/dvc/config_schema.py index 41e9d4efb..eea026448 100644 --- a/dvc/config_schema.py +++ b/dvc/config_schema.py @@ -172,7 +172,7 @@ SCHEMA = { "allow_agent": Bool, **REMOTE_COMMON, }, - "hdfs": {"user": str, **REMOTE_COMMON}, + "hdfs": {"user": str, "kerb_ticket": str, **REMOTE_COMMON}, "webhdfs": { "hdfscli_config": str, "webhdfs_token": str, diff --git a/dvc/fs/hdfs.py b/dvc/fs/hdfs.py index 1693697a0..28fec1509 100644 --- a/dvc/fs/hdfs.py +++ b/dvc/fs/hdfs.py @@ -84,8 +84,9 @@ class HDFSFileSystem(BaseFileSystem): path=parsed.path, ) - @staticmethod - def hdfs(path_info): + self.kerb_ticket = config.get("kerb_ticket") + + def hdfs(self, path_info): import pyarrow.fs # NOTE: HadoopFileSystem is not meant to be closed by us and doesn't @@ -100,6 +101,7 @@ class HDFSFileSystem(BaseFileSystem): path_info.host, path_info.port, user=path_info.user, + kerb_ticket=self.kerb_ticket, ) @contextmanager