Skip to content

Commit 10cbe20

Browse files
committed
support all CP4D connection types #11
1 parent d84b12f commit 10cbe20

File tree

3 files changed

+16
-51
lines changed

3 files changed

+16
-51
lines changed

package/docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
# The short X.Y version.
6868
version = '1.5'
6969
# The full version, including alpha/beta/rc tags.
70-
release = '1.5.0'
70+
release = '1.5.5'
7171

7272
# The language for content autogenerated by Sphinx. Refer to documentation
7373
# for a list of supported languages.

package/streamsx/hdfs/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
6666
"""
6767

68-
__version__='1.5.0'
68+
__version__='1.5.5'
6969

7070
__all__ = ['HdfsDirectoryScan', 'HdfsFileSink', 'HdfsFileSource', 'HdfsFileCopy', 'download_toolkit', 'configure_connection', 'scan', 'read', 'write']
7171
from streamsx.hdfs._hdfs import download_toolkit, configure_connection, scan, read, write, copy, HdfsDirectoryScan, HdfsFileSink, HdfsFileSource, HdfsFileCopy

package/streamsx/hdfs/_hdfs.py

Lines changed: 14 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -41,60 +41,25 @@ def _add_toolkit_dependency(topo):
4141
# This is important when toolkit is not set with streamsx.spl.toolkit.add_toolkit (selecting toolkit from remote build service)
4242
streamsx.spl.toolkit.add_toolkit_dependency(topo, _TOOLKIT_NAME, '[5.0.0,6.0.0)')
4343

44-
def _read_service_credentials(credentials):
44+
def _read_service_credentials(connection):
4545
hdfs_uri = ""
4646
user = ""
4747
password = ""
48-
if isinstance(credentials, dict):
49-
# check for Analytics Engine service credentials
50-
if 'cluster' in credentials:
51-
user = credentials.get('cluster').get('user')
52-
password = credentials.get('cluster').get('password')
53-
hdfs_uri = credentials.get('cluster').get('service_endpoints').get('webhdfs')
48+
if isinstance(connection, dict):
49+
type = str(connection.get('type'))
50+
# check the connection type
51+
if ('GenericWebHDFS' in type):
52+
user = connection.get('username')
53+
password = connection.get('password')
54+
host_port = connection.get('host') + ':' + str(connection.get('port'))
55+
hdfs_uri = "webhdfs://" + host_port
5456
else:
55-
if 'webhdfs' in credentials:
56-
user = credentials.get('user')
57-
password = credentials.get('password')
58-
hdfs_uri = credentials.get('webhdfs')
59-
else:
60-
raise ValueError(credentials)
57+
host_port = connection.get('host') + ':' + str(connection.get('port'))
58+
hdfs_uri = "hdfs://" + host_port
6159
else:
62-
raise TypeError(credentials)
63-
# construct expected format for hdfs_uri: webhdfs://host:port
64-
uri_parsed = urlparse(hdfs_uri)
65-
hdfs_uri = 'webhdfs://'+uri_parsed.netloc
66-
return hdfs_uri, user, password
67-
68-
def _check_vresion_credentials1(credentials, _op, topology):
69-
if credentials is not None:
60+
raise TypeError(connection)
7061

71-
# check streamsx.hdfs version
72-
_add_toolkit_dependency(topology)
73-
# if credentials is None:
74-
# raise SystemExit("Error: credentials is empty.")
75-
print( credentials)
76-
topology.stream.name
77-
print( '------------' + topology.stream.name + " " + str(credentials))
78-
if isinstance(credentials, dict):
79-
hdfs_uri, user, password = _read_service_credentials(credentials)
80-
_op.params['hdfsUri'] = hdfs_uri
81-
_op.params['hdfsUser'] = user
82-
_op.params['hdfsPassword'] = password
83-
#check if the credentials is a valid JSON string
84-
elif _is_a_valid_json(credentials):
85-
_op.params['credentials'] = credentials
86-
else:
87-
# expect core-site.xml file in credentials param
88-
try:
89-
print( '--------------------------*******+++---' + str(credentials))
90-
# with open(str(credentials)):
91-
print(credentials)
92-
topology.add_file_dependency(credentials, 'etc')
93-
_op.params['configPath'] = 'etc'
94-
_op.params['credentials'] = None
95-
except IOError:
96-
raise SystemExit("Error: File not accessible.")
97-
62+
return hdfs_uri, user, password
9863

9964

10065
def _setCredentials(LocalCredentials, topology):
@@ -117,7 +82,7 @@ def _setCredentials(LocalCredentials, topology):
11782
except IOError:
11883
raise ValueError(LocalCredentials)
11984
else:
120-
if isinstance(credentials, dict):
85+
if isinstance(LocalCredentials, dict):
12186
hdfsUri, hdfsUser, hdfsPassword = _read_service_credentials(LocalCredentials)
12287
else:
12388
credentials=LocalCredentials

0 commit comments

Comments
 (0)