:mod:`cloudmesh-common.cloudmesh.common.JobScript` ================================================== .. py:module:: cloudmesh-common.cloudmesh.common.JobScript Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: cloudmesh-common.cloudmesh.common.JobScript.JobScript .. class:: JobScript The jobscript is a simple mechanism to run a number of commands formylated in a script. The script is interpreted line by line and does not support multi line commands at this time. (Not difficult to implement when looking at \ at the end of a line.) It can be either used a static call or as variable invocation. Often the static call will be sufficient. Static method:: from cloudmesh.common.JobSet import JobScript from cloudmesh.common.Tabulate import Printer result = JobScript.execute(""" # This is a comment pwd # tag: pwd uname -a """) print(Printer.write(result, order=["name", "command", "status", "stdout", "returncode"])) Variable invocation:: from cloudmesh.common.Tabulate import Printer job = JobScript() job.run(name="variable script", script=""" # This is a comment pwd # tag: pwd uname -a """) print(Printer.write( job.array(), order=["name", "command", "status", "stdout", "returncode"])) Each line is augmented with a name, so you can easily retrive the result content by that name. By default the name is the line number, however it can be overwritten with `# tag:` at the end of the line. The line number starts at 1. Partial example output: # +------+-----------+--------+------------------------+--------------+ # | name | command | status | | returncode | # |------+-----------+--------+------------------------+--------------| # | pwd | pwd | done | /Users/.../cloudmesh | 0 | # | 4 | uname -a | done | Darwin gray 19.4.0 ... | 0 | # +------+-----------+--------+------------------------+--------------+ .. method:: run(self, script=None, name='script', host=None, executor=JobSet.ssh, **kwargs) .. method:: execute(script, name='script', host=None, executor=JobSet.ssh, **kwargs) :staticmethod: .. method:: _array() :staticmethod: .. method:: array(self) .. data:: result