Source code for galaxy.job_metrics.instrumenters.uname

"""The module describes the ``uname`` job metrics plugin."""

from . import InstrumentPlugin
from .. import formatting


class UnameFormatter(formatting.JobMetricFormatter):
    def format(self, key, value):
        return "Operating System", value


[docs]class UnamePlugin(InstrumentPlugin): """Use uname to gather operating system information about remote system job is running on. Linux only. """ plugin_type = "uname" formatter = UnameFormatter()
[docs] def __init__(self, **kwargs): self.uname_args = kwargs.get("args", "-a")
[docs] def pre_execute_instrument(self, job_directory): return f"uname {self.uname_args} > '{self.__instrument_uname_path(job_directory)}'"
[docs] def job_properties(self, job_id, job_directory): properties = {} with open(self.__instrument_uname_path(job_directory)) as f: properties["uname"] = f.read() return properties
def __instrument_uname_path(self, job_directory): return self._instrument_file_path(job_directory, "uname")
__all__ = ("UnamePlugin",)