in nuvolaris/workflows.py [0:0]
def generate_job(name, spec, action):
job_name = f"{name}-{action}"
data = {
'name': job_name,
'image': spec['image']
}
if "command" in spec:
data['command'] = json.dumps(spec['command'])
environ = [
{ "name": "_WORKFLOW_", "value": ""}, # to be replaced with name - MUST BE FIRST!
{ "name": "_NAMESPACE_", "value": "nuvolaris" },
{ "name": "_INSTANCE_", "value": name },
{ "name": "_JOB_", "value": job_name },
{ "name": "_ACTION_", "value": action },
{ "name": "_APIHOST_", "value": cfg.get("config.apihost", defval="undefined-apihost") },
{ "name": "_AUTH_", "value": cfg.get("openwhisk.namespaces.nuvolaris", defval="undefined-auth") }
]
if "env" in spec:
environ += [ {"name": k, "value": spec['env'][k]} for k in spec['env']]
data['jobs'] = []
for w in spec.get('workflows'):
job = {}
args = []
job['name'] = w['name']
params = w.get("parameters")
for k in params:
arg = f"{k}={params[k]}"
args.append(arg)
job['args'] = json.dumps(args)
environ[0]['value'] = w['name']
job['environ'] = json.dumps(environ)
data['jobs'].append(job)
return tpl.expand_template('workflow-job.yaml', data)