Add the polyglot python-task sample
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import sys
|
||||
from collections import defaultdict
|
||||
|
||||
|
||||
def get_cmd_arg(name):
|
||||
"""Extracts argument value by name. (@author: Chris Schaefer)
|
||||
|
||||
Assumes the exec (default) spring-cloud-deployer-k8s argument passing mode.
|
||||
|
||||
Args:
|
||||
name: argument name.
|
||||
Returns:
|
||||
value of the requested argument.
|
||||
"""
|
||||
d = defaultdict(list)
|
||||
for k, v in ((k.lstrip('-'), v) for k, v in (a.split('=') for a in sys.argv[1:])):
|
||||
d[k].append(v)
|
||||
|
||||
return d[name][0]
|
||||
|
||||
|
||||
def get_db_url():
|
||||
"""Computes sqlalchemy connection URL
|
||||
|
||||
Uses the s.d.username, s.d.password and s.d.url properties to compute the sqlalchemy url.
|
||||
This provides access to the SCDF internal DB and tables such as TASK_EXECUTION.
|
||||
|
||||
Returns:
|
||||
sqlalchemy compatible URL compatible with the target DB.
|
||||
"""
|
||||
username = get_cmd_arg('spring.datasource.username')
|
||||
password = get_cmd_arg('spring.datasource.password')
|
||||
jdbc_url = get_cmd_arg('spring.datasource.url')
|
||||
|
||||
return str(jdbc_url) \
|
||||
.replace('jdbc:', '') \
|
||||
.replace('sqlserver:', 'mssql+pyodbc:') \
|
||||
.replace('//', '//{username}:{password}@'.format(username=username, password=password))
|
||||
|
||||
|
||||
def get_task_id():
|
||||
"""Task ID as handled inside SCDF.
|
||||
|
||||
When launching tasks SCDF provides the spring.cloud.task.executionid as command line argument.
|
||||
|
||||
Returns:
|
||||
The task id as handled inside SCDF.
|
||||
"""
|
||||
return get_cmd_arg('spring.cloud.task.executionid')
|
||||
|
||||
|
||||
def get_task_name():
|
||||
return get_cmd_arg('spring.cloud.task.name')
|
||||
Reference in New Issue
Block a user