def load_data(self, keys=[]): for key in keys: if not self.has_key(key): #--- scontrol data self.load_data_from_scontrol_text( _yield_raw_scontrol_node_texts(util.get_hostname()).next()) #--- os data if self['NodeName'] == util.get_hostname(): self['OS_Cores_Total'], self[ 'OS_Cores_Used'] = util.get_cpu() self['OS_Memory_Total'], self[ 'OS_Memory_Used'] = util.get_mem() else: self['OS_Cores_Total'], self['OS_Cores_Used'] = None, None self['OS_Memory_Total'], self[ 'OS_Memory_Used'] = None, None #--- derived if key == 'Cores_Wasted': try: self['Cores_Wasted'] = float( self['CPUAlloc']) - self['CPULoad'] except KeyError: self['Cores_Wasted'] = None
def load_data(self, keys=[]): for key in keys: if not self.has_key(key): #--- scontrol data self.load_data_from_scontrol_text(_yield_raw_scontrol_node_texts(util.get_hostname()).next()) #--- os data if self['NodeName'] == util.get_hostname(): self['OS_Cores_Total'] , self['OS_Cores_Used'] = util.get_cpu() self['OS_Memory_Total'], self['OS_Memory_Used'] = util.get_mem() else: self['OS_Cores_Total'] , self['OS_Cores_Used'] = None, None self['OS_Memory_Total'], self['OS_Memory_Used'] = None, None #--- derived if key=='Cores_Wasted': try: self['Cores_Wasted'] = float(self['CPUAlloc']) - self['CPULoad'] except KeyError: self['Cores_Wasted'] = None
#--- node retrieval def _yield_raw_scontrol_node_texts(NodeName=None): shv = ['scontrol', 'show', 'node', '--oneliner'] if NodeName is not None: shv.append(NodeName) for line in util.runsh_i(shv): line = line.strip() if line != '': yield line def get_nodes(filter=lambda j: True): for scontroltext in _yield_raw_scontrol_node_texts(): n = Node() n.load_data_from_scontrol_text(scontroltext) if filter(n): yield n if __name__ == '__main__': n = Node(NodeName=util.get_hostname()) print n['OS_Cores_Total'] print n['OS_Cores_Used'] print n['CPUAlloc'] print n['OS_Memory_Total'] print n['OS_Memory_Used'] print n['AllocMem_kB']
#--- node retrieval def _yield_raw_scontrol_node_texts(NodeName=None): shv = ['scontrol', 'show', 'node', '--oneliner'] if NodeName is not None: shv.append(NodeName) for line in util.runsh_i(shv): line = line.strip() if line!='': yield line def get_nodes(filter=lambda j: True): for scontroltext in _yield_raw_scontrol_node_texts(): n = Node() n.load_data_from_scontrol_text(scontroltext) if filter(n): yield n if __name__=='__main__': n = Node(NodeName=util.get_hostname()) print n['OS_Cores_Total'] print n['OS_Cores_Used'] print n['CPUAlloc'] print n['OS_Memory_Total'] print n['OS_Memory_Used'] print n['AllocMem_kB']