Ensure steps and schedules can be created in empty jobs. Fixes #1878
parent
e6d018c44f
commit
ef0d26c294
|
@ -219,8 +219,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
res = []
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'nodes.sql']),
|
||||
jscid = jscid,
|
||||
jid = jid
|
||||
jscid=jscid,
|
||||
jid=jid
|
||||
)
|
||||
|
||||
status, result = self.conn.execute_2darray(sql)
|
||||
|
@ -298,13 +298,22 @@ class JobScheduleView(PGChildNodeView):
|
|||
jid: Job ID
|
||||
"""
|
||||
data = {}
|
||||
for k, v in request.args.items():
|
||||
try:
|
||||
data[k] = json.loads(
|
||||
v.decode('utf-8') if hasattr(v, 'decode') else v
|
||||
)
|
||||
except ValueError:
|
||||
data[k] = v
|
||||
if request.args:
|
||||
for k, v in request.args.items():
|
||||
try:
|
||||
data[k] = json.loads(
|
||||
v.decode('utf-8') if hasattr(v, 'decode') else v
|
||||
)
|
||||
except ValueError:
|
||||
data[k] = v
|
||||
else:
|
||||
data = json.loads(request.data.decode())
|
||||
# convert python list literal to postgres array literal.
|
||||
data['jscminutes'] = data['jscminutes'].replace("[", "{").replace("]", "}")
|
||||
data['jschours'] = data['jschours'].replace("[", "{").replace("]", "}")
|
||||
data['jscweekdays'] = data['jscweekdays'].replace("[", "{").replace("]", "}")
|
||||
data['jscmonthdays'] = data['jscmonthdays'].replace("[", "{").replace("]", "}")
|
||||
data['jscmonths'] = data['jscmonths'].replace("[", "{").replace("]", "}")
|
||||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'create.sql']),
|
||||
|
@ -327,8 +336,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
self.conn.execute_void('END')
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'nodes.sql']),
|
||||
jscid = res,
|
||||
jid = jid
|
||||
jscid=res,
|
||||
jid=jid
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
@ -357,17 +366,36 @@ class JobScheduleView(PGChildNodeView):
|
|||
jscid: JobSchedule ID
|
||||
"""
|
||||
data = {}
|
||||
for k, v in request.args.items():
|
||||
try:
|
||||
data[k] = json.loads(
|
||||
v.decode('utf-8') if hasattr(v, 'decode') else v
|
||||
)
|
||||
except ValueError:
|
||||
data[k] = v
|
||||
if request.args:
|
||||
for k, v in request.args.items():
|
||||
try:
|
||||
data[k] = json.loads(
|
||||
v.decode('utf-8') if hasattr(v, 'decode') else v
|
||||
)
|
||||
except ValueError:
|
||||
data[k] = v
|
||||
else:
|
||||
data = json.loads(request.data.decode())
|
||||
# convert python list literal to postgres array literal.
|
||||
if 'jscminutes' in data:
|
||||
data['jscminutes'] = data['jscminutes'].replace("[", "{").replace("]", "}")
|
||||
|
||||
if 'jschours' in data:
|
||||
data['jschours'] = data['jschours'].replace("[", "{").replace("]", "}")
|
||||
|
||||
if 'jscweekdays' in data:
|
||||
data['jscweekdays'] = data['jscweekdays'].replace("[", "{").replace("]", "}")
|
||||
|
||||
if 'jscmonthdays' in data:
|
||||
data['jscmonthdays'] = data['jscmonthdays'].replace("[", "{").replace("]", "}")
|
||||
|
||||
if 'jscmonths' in data:
|
||||
data['jscmonths'] = data['jscmonths'].replace("[", "{").replace("]", "}")
|
||||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'update.sql']),
|
||||
jid=jid,
|
||||
jscid=jscid,
|
||||
data=data
|
||||
)
|
||||
|
||||
|
@ -378,8 +406,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'nodes.sql']),
|
||||
jscid = jscid,
|
||||
jid = jid
|
||||
jscid=jscid,
|
||||
jid=jid
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ function($, _, S, pgAdmin, moment, pgBrowser, Alertify, Backform) {
|
|||
parent_type: 'pga_job',
|
||||
type: 'pga_schedule',
|
||||
dialogHelp: '{{ url_for('help.static', filename='pgagent_jobs.html') }}',
|
||||
hasSQL: false,
|
||||
hasSQL: true,
|
||||
hasDepends: false,
|
||||
hasStatistics: false,
|
||||
canDrop: function(node) {
|
||||
|
|
|
@ -232,8 +232,8 @@ SELECT EXISTS(
|
|||
res = []
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'nodes.sql']),
|
||||
jstid = jstid,
|
||||
jid = jid
|
||||
jstid=jstid,
|
||||
jid=jid
|
||||
)
|
||||
|
||||
status, result = self.conn.execute_2darray(sql)
|
||||
|
@ -315,13 +315,16 @@ SELECT EXISTS(
|
|||
jid: Job ID
|
||||
"""
|
||||
data = {}
|
||||
for k, v in request.args.items():
|
||||
try:
|
||||
data[k] = json.loads(
|
||||
v.decode('utf-8') if hasattr(v, 'decode') else v
|
||||
)
|
||||
except ValueError:
|
||||
data[k] = v
|
||||
if request.args:
|
||||
for k, v in request.args.items():
|
||||
try:
|
||||
data[k] = json.loads(
|
||||
v.decode('utf-8') if hasattr(v, 'decode') else v
|
||||
)
|
||||
except ValueError:
|
||||
data[k] = v
|
||||
else:
|
||||
data = json.loads(request.data.decode())
|
||||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'create.sql']),
|
||||
|
@ -337,8 +340,8 @@ SELECT EXISTS(
|
|||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'nodes.sql']),
|
||||
jstid = res,
|
||||
jid = jid
|
||||
jstid=res,
|
||||
jid=jid
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
@ -417,8 +420,8 @@ SELECT EXISTS(
|
|||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, 'nodes.sql']),
|
||||
jstid = jstid,
|
||||
jid = jid
|
||||
jstid=jstid,
|
||||
jid=jid
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ INSERT INTO pgagent.pga_schedule(
|
|||
{{ data.jscmonthdays|qtLiteral }}::boolean[],
|
||||
-- Months
|
||||
{{ data.jscmonths|qtLiteral }}::boolean[]
|
||||
) RETURNING jscid INTO scid;{% if 'jscexceptions' in data %}
|
||||
) RETURNING jscid {% if not jid %}INTO scid;{% endif %}{% if 'jscexceptions' in data %}
|
||||
{% for exc in data.jscexceptions %}
|
||||
|
||||
{{ EXCEPTIONS.INSERT(None, exc) }}{% endfor %}{% endif %}
|
||||
|
|
|
@ -1,10 +1,2 @@
|
|||
{% import 'macros/pga_schedule.macros' as SCHEDULE %}
|
||||
DO $$
|
||||
DECLARE
|
||||
jscid integer;
|
||||
BEGIN
|
||||
{{ SCHEDULE.INSERT(jid, data) }}
|
||||
END
|
||||
$$ LANGUAGE 'plpgsql';{% if fetch_id %}
|
||||
|
||||
{{ SCHEDULE.FETCH_CURRENT() }}{% endif %}
|
||||
|
|
Loading…
Reference in New Issue