mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-10 15:36:06 -06:00
85 lines
2.6 KiB
Python
85 lines
2.6 KiB
Python
##########################################################################
|
|
#
|
|
# pgAdmin 4 - PostgreSQL Tools
|
|
#
|
|
# Copyright (C) 2013 - 2021, The pgAdmin Development Team
|
|
# This software is released under the PostgreSQL Licence
|
|
#
|
|
##########################################################################
|
|
|
|
"""pgagent helper utilities"""
|
|
from flask import render_template
|
|
|
|
|
|
def format_boolean_array(value):
|
|
"""
|
|
Converts to proper array data for sql
|
|
Args:
|
|
value: data to be converted
|
|
|
|
Returns:
|
|
Converted data
|
|
"""
|
|
if not isinstance(value, list):
|
|
return value.replace("[", "{").replace("]", "}")
|
|
return value
|
|
|
|
|
|
def format_schedule_data(data):
|
|
"""
|
|
This function is used to format the schedule data. If data is not an
|
|
instance of list then format
|
|
:param data:
|
|
:return:
|
|
"""
|
|
|
|
if 'jscminutes' in data and data['jscminutes'] is not None:
|
|
data['jscminutes'] = format_boolean_array(data['jscminutes'])
|
|
if 'jschours' in data and data['jschours'] is not None:
|
|
data['jschours'] = format_boolean_array(data['jschours'])
|
|
if 'jscweekdays' in data and data['jscweekdays'] is not None:
|
|
data['jscweekdays'] = format_boolean_array(data['jscweekdays'])
|
|
if 'jscmonthdays' in data and data['jscmonthdays'] is not None:
|
|
data['jscmonthdays'] = format_boolean_array(data['jscmonthdays'])
|
|
if 'jscmonths' in data and data['jscmonths'] is not None:
|
|
data['jscmonths'] = format_boolean_array(data['jscmonths'])
|
|
|
|
return data
|
|
|
|
|
|
def format_step_data(job_id, data, has_connection_str, conn, template_path):
|
|
"""
|
|
This function is used to format the step data. If data is not an
|
|
instance of list then format
|
|
:param job_id: Job ID
|
|
:param data: a step data
|
|
:param has_connection_str: has pgagent connection str
|
|
:param conn: Connection obj
|
|
:param conn: SQL template path
|
|
"""
|
|
if 'jstconntype' not in data and \
|
|
('jstdbname' in data or
|
|
'jstconnstr' in data) and has_connection_str:
|
|
status, rset = conn.execute_dict(
|
|
render_template(
|
|
"/".join([template_path, 'steps.sql']),
|
|
jid=job_id,
|
|
jstid=data['jstid'],
|
|
conn=conn,
|
|
has_connstr=has_connection_str
|
|
)
|
|
)
|
|
if not status:
|
|
return False, rset
|
|
|
|
row = rset['rows'][0]
|
|
data['jstconntype'] = row['jstconntype']
|
|
if row['jstconntype']:
|
|
data['jstdbname'] = data.get(
|
|
'jstdbname', row['jstdbname'])
|
|
else:
|
|
data['jstconnstr'] = data.get(
|
|
'jstconnstr', row['jstconnstr'])
|
|
|
|
return True, None
|