def generate_job()

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)