Skip to content

Commit 036faa6

Browse files
committed
Make requests_kerberos dependency optional
To avoid deployment issues on a non kerberized environment, this change makes the `requests_kerberos` dependency optional and requires manual explicit installation as: pip install yarn-api-client[kerberos] or pip install requests_kerberos Fixes #23 Closes #24
1 parent c539543 commit 036faa6

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

README.rst

+12
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,18 @@ From source code
4949
python setup.py install
5050
popd
5151

52+
53+
Enabling support for Kerberos/SPNEGO Security
54+
55+
To avoid deployment issues on a non Kerberized environment, the `requests_kerberos`
56+
dependency is optional and needs to be explicit installed in order to enable access
57+
to YARN console protected by Kerberos/SPNEGO.
58+
59+
::
60+
61+
pip install requests_kerberos
62+
63+
5264
-----
5365
Usage
5466
-----

setup.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@ def find_version(*file_paths):
2828

2929
install_requires = [
3030
'requests>=2.7,<3.0',
31-
'requests-kerberos',
3231
],
32+
33+
extras_require = {
34+
'kerberos': ['requests-kerberos'],
35+
},
36+
3337
entry_points = {
3438
'console_scripts': [
3539
'yarn_client = yarn_api_client.main:main',

yarn_api_client/base.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import logging
66
import requests
77

8-
from requests_kerberos import HTTPKerberosAuth
98
from .errors import APIError, ConfigurationError
109

1110

@@ -34,6 +33,7 @@ def request(self, api_path, **query_args):
3433

3534
response = None
3635
if self.kerberos_enabled:
36+
from requests_kerberos import HTTPKerberosAuth
3737
response = requests.get(api_endpoint, params, auth=HTTPKerberosAuth())
3838
else:
3939
response = requests.get(api_endpoint, params)
@@ -53,6 +53,7 @@ def update(self, api_path, data):
5353

5454
response = None
5555
if self.kerberos_enabled:
56+
from requests_kerberos import HTTPKerberosAuth
5657
response = requests.put(api_endpoint, data=data, auth=HTTPKerberosAuth())
5758
else:
5859
response = requests.put(api_endpoint, data=data)

0 commit comments

Comments
 (0)