Source code for cloudmesh_client.cloud.hpc.BatchProviderBase

from cloudmesh_client.cloud.counter import Counter
from cloudmesh_client.common.Shell import Shell
from cloudmesh_client.common.ConfigDict import ConfigDict


# noinspection PyUnusedLocal,PyBroadException
[docs]class BatchProviderBase(object): prefix = "job" jobid = 0
[docs] @classmethod def queue(cls, **kwargs): ValueError("Not yet implemented")
[docs] @classmethod def delete(cls, **kwargs): ValueError("Not yet implemented")
[docs] @classmethod def run(cls, **kwargs): ValueError("Not yet implemented")
[docs] @classmethod def counter(cls): cls.jobid = Counter.get() return cls.jobid
[docs] @classmethod def incr(cls): Counter.incr() cls.jobid = Counter.get() return cls.jobid
[docs] @classmethod def jobname(cls, counter=None): if counter is None: counter = cls.counter() data = { "counter": counter, "prefix": cls.prefix } return "{prefix}-{counter}".format(**data)
[docs] @classmethod def create_remote_dir(cls, cluster, directory): Shell.ssh(cluster, "mkdir -p {dir}".format(dir=directory))
[docs] @classmethod def read_config(cls, cluster): """ reads in the cluster config from the yaml file and returns the specific cluster information newhpc: experiment: name: gregor-00000 active: - comet - juliet clusters: india: cm_heading: India HPC CLuster cm_host: india cm_label: indiahpc cm_type: slurm cm_type_version: 14.11.9 credentials: username: gregor project: None default: queue: delta experiment_dir: ./experiment :param cls: :param cluster: :return: """ try: config = cls.config except: cls.config = None if cls.config is None: cls.config = ConfigDict("cloudmesh.yaml")["cloudmesh.hpc"] cls.experiment_name_format = cls.config["experiment"]["name"] return cls.config["clusters"][cluster]