def parseAllQueuesInfo(queues, pbsHost=None): handlers = dict() #Reading server-level attributes if pbsHost: cmd = shlex.split('qstat -B -f @%s' % pbsHost) else: cmd = shlex.split('qstat -B -f') slh = QueueInfoHandler() CommonUtils.parseStream(cmd, slh) for queue in queues: if pbsHost: cmd = shlex.split('qstat -Q -f %s\@%s' % (queue, pbsHost)) else: cmd = shlex.split('qstat -Q -f %s' % queue) logger.debug("Calling executable: " + repr(cmd)) handlers[queue] = QueueInfoHandler(slh) CommonUtils.parseStream(cmd, handlers[queue]) return handlers
def parse(resultContainer, pbsHost=None, filename=None): if filename: cmd = shlex.split('cat ' + filename) else: if pbsHost: cmd = shlex.split('qstat -f @%s' % pbsHost) else: cmd = shlex.split('qstat -f') container = PBSJobHandler(resultContainer) CommonUtils.parseStream(cmd, container)
def parseGPUInfo(cudaHost, filename=None): if filename: cmd = shlex.split('cat ' + filename) else: smi_cmd = '"nvidia-smi --query-compute-apps=gpu_uuid,pid --format=csv,noheader"' ssh_opts = '-o PasswordAuthentication=no' cmd = shlex.split('ssh %s %s %s' % (ssh_opts, cudaHost, smi_cmd)) logger.debug("Calling executable: " + repr(cmd)) container = GPUInfoHandler() CommonUtils.parseStream(cmd, container) return container
def parseQueueInfo(queue, pbsHost=None, filename=None): if filename: cmd = shlex.split('cat ' + filename) else: if pbsHost: cmd = shlex.split('qstat -Q -f %s\@%s' % (queue, pbsHost)) else: cmd = shlex.split('qstat -Q -f %s' % queue) logger.debug("Calling executable: " + repr(cmd)) container = QueueInfoHandler() CommonUtils.parseStream(cmd, container) return container
def parseLRMSVersion(pbsHost=None, filename=None): if filename: cmd = shlex.split('cat ' + filename) else: if pbsHost: cmd = shlex.split('qstat -B -f %s' % pbsHost) else: cmd = shlex.split('qstat -B -f') logger.debug("Calling executable: " + repr(cmd)) container = LRMSVersionHandler() CommonUtils.parseStream(cmd, container) return container.version
def parseJobLimit(pbsHost=None, keyfile=None, filename=None): if filename: cmd = shlex.split('cat ' + filename) else: tmps = 'diagnose -g' if pbsHost: tmps += ' --host=%s' % pbsHost if keyfile: tmps += ' --keyfile=%s' % keyfile cmd = shlex.split(tmps) container = DiagnoseHandler() CommonUtils.parseStream(cmd, container) return container
def parseCPUInfo(pbsHost=None, filename=None): if filename: cmd = shlex.split('cat ' + filename) else: if pbsHost: cmd = shlex.split('pbsnodes -a -s %s' % pbsHost) else: cmd = shlex.split('pbsnodes -a') logger.debug("Calling executable: " + repr(cmd)) container = CPUInfoHandler() CommonUtils.parseStream(cmd, container) return container