示例#1
0
    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
示例#2
0
	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
示例#3
0
#--- 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']
示例#4
0

#--- 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']