Ejemplo n.º 1
0
def node(dest):
	gen = genders.Genders(filename=dest)
	for node_name in gen.getnodes():
		node_name_query = ("SELECT node_name FROM NODE WHERE node_name=%s")
		cursor.execute(node_name_query, (node_name,))
		result = cursor.fetchall()
		if len(result) == 0:
			node_num, cluster = parseName(node_name)
			add_node = ("INSERT IGNORE INTO NODE (node_name, node_num, cluster) VALUES (%s, %s, %s)")
			cursor.execute(add_node, (node_name, node_num, cluster))
			mydb.commit()
Ejemplo n.º 2
0
def gender(dest):
	gen = genders.Genders(filename=dest)
	for attr in gen.getattr_all():
		gender_query = ("SELECT gender_name from GENDER where gender_name=%s")
		cursor.execute(gender_query, (attr,))
		result = cursor.fetchall()
		if len(result) == 0:
			descrip = None 
			add_gender = ("INSERT IGNORE INTO GENDER (gender_name, descrip) VALUES (%s, %s)")
			cursor.execute(add_gender, (attr, descrip))
			mydb.commit()	
Ejemplo n.º 3
0
def parsedefault(inp):
    gen = genders.Genders("/etc/genders")
    if len(inp) == 1:
        node = gen.getnodename()
        attr = inp[0]
    elif len(inp) == 2:
        node = inp[0]
        attr = inp[1]
    else:
        parser.error("Too many arguments.")
    return node, attr
Ejemplo n.º 4
0
def deleteattrs(dest, present, absent):
        gen = genders.Genders(filename=dest)
        node_query = ("SELECT gender_name FROM GENDER")
        cursor.execute(node_query)
        for (gender_name,) in cursor:
                if gen.isattr(gender_name) == 1:
                        if not gender_name in present:
                                present.append(gender_name)
                        if gender_name in absent:
                                absent.remove(gender_name)
                elif (not gender_name in present) and (not gender_name in absent):
                        absent.append(gender_name)
Ejemplo n.º 5
0
def deletenodes(dest, present, absent):
	gen = genders.Genders(filename=dest)
	node_query = ("SELECT node_name FROM NODE")
	cursor.execute(node_query)
	for (node_name,) in cursor: 
		if gen.isnode(node_name) == 1:
			if not node_name in present:
				present.append(node_name)
			if node_name in absent:
				absent.remove(node_name)
		elif (not node_name in present) and (not node_name in absent):
			absent.append(node_name)
Ejemplo n.º 6
0
def deleteattrs(dest, present, absent, mydb):
    cursor = mydb.cursor()
    gen = genders.Genders(filename=dest)
    node_query = "SELECT gender_name FROM GENDER"
    cursor.execute(node_query)
    for (gender_name,) in cursor:
        if gen.isattr(gender_name) == 1:
            if gender_name not in present:
                present.append(gender_name)
            if gender_name in absent:
                absent.remove(gender_name)
        elif (gender_name not in present) and (gender_name not in absent):
            absent.append(gender_name)
    cursor.close()
Ejemplo n.º 7
0
def deleteconfig(dest):
	gen = genders.Genders(filename=dest)
	for node in gen.getnodes():
		query = ("SELECT gender_name, val FROM CONFIGURATION WHERE node_name=%s")
		cursor.execute(query, (node,))
		results = cursor.fetchall() 
		for (gender_name, val) in results: 
			if (val == None) and gen.testattr(gender_name, node) == 0: 
				query = ("DELETE FROM CONFIGURATION WHERE config_id=%s")
				cursor.execute(query, (node + gender_name,))
				mydb.commit()
			elif not (val == None) and gen.testattrval(gender_name, val, node) == 0:
				if gen.testattr(gender_name, node) == 0: 
					query = ("DELETE FROM CONFIGURATION WHERE config_id=%s")
					cursor.execute(query, (node + gender_name,))
					mydb.commit()
Ejemplo n.º 8
0
def lookup(label):
    '''Process a genders query to resolve into host list'''
    if not label.startswith('genders:'):
        return
    g = genders.Genders(filename=genders_file)
    matches = []
    for host in g.query(label[8:]):
        ip = g.getattrval('ip', host)
        fqdn = g.getattrval('fqdn', host)
        port = g.getattrval('port', host)
        if not port:
            port = '22'
        if ip:
            matches.append((host, ip + ':' + port, None))
        elif fqdn:
            matches.append((host, fqdn + ':' + port, None))
        else:
            matches.append((host, host + ':' + port, None))
    return iter(matches)
Ejemplo n.º 9
0
def gender_lookup(cluster, logdir, cmd, *args):
    '''Lookup attributes/values for cluster hosts in genders database'''
    if not args:
        args = cluster
    g = genders.Genders(filename=genders_file)
    for host in args:
        print(host, ': ', end='')
        if not g.isnode(str(host)):
            print('not in genders database', end='')
        else:
            attr = g.getattr(str(host))
            data = []
            for a in attr:
                value = g.getattrval(a, str(host))
                if value:
                    data.append('%s=%s' % (a, value))
                else:
                    data.append(a)
            print(','.join(data), end='')
        print('')
Ejemplo n.º 10
0
def configuration(dest):
	gen = genders.Genders(filename=dest)
	for node in gen.getnodes(): 
		for attribute in gen.getattr(node):
			config_id = node + attribute
			value = gen.getattrval(attribute, node)
			config_query = ("SELECT config_id, val FROM CONFIGURATION WHERE config_id=%s")
			cursor.execute(config_query, (config_id,))
			result = cursor.fetchall()
			if len(result) == 0: 
				add_config = ("INSERT IGNORE INTO CONFIGURATION (config_id, val, node_name, gender_name) VALUES (%s, %s, %s, %s)")
				cursor.execute(add_config, (config_id, value, node, attribute))
				mydb.commit()
			else: 
				for (config_id, val) in result:
					if  val == value: 
						break;
					update_config = ("UPDATE CONFIGURATION SET val=%s WHERE config_id=%s")
					cursor.execute(update_config, (value, config_id))
					mydb.commit()
Ejemplo n.º 11
0
# Test setting environment variables in python
# UPDATE -----------
# ERROR: doesn't work the same as exporting the variables in bash - create a driver script instead + debug
import os

os.environ['PYTHONPATH'] = '/usr/local/lib64/python3.6/site-packages'
os.environ['LD_LIBRARY_PATH'] = '/usr/local/lib'

print(os.environ.get('PYTHONPATH'))
print(os.environ.get('LD_LIBRARY_PATH'))

import genders
genders_object = genders.Genders(filename="/etc/genders")
print(genders_object.getattr())
Ejemplo n.º 12
0
Archivo: query.py Proyecto: LLNL/HPCCEA
#!/usr/bin/python3
import pdb
import sys
import os 
os.environ['PYTHONPATH'] = '/usr/local/lib64/python3.6/site-packages'
import argparse
parser = argparse.ArgumentParser("genders database query")

import genders 
gen = genders.Genders(filename="/etc/genders")

import mysql.connector
import hostlist

config = {
  'user': '******',
  'password': # EDIT WITH YOUR PASSWORD
  'host': 'localhost',
  'database': 'gender'
}
import numpy as np

#def parsequery(results):
#	list = []
#	for element in results:
#		for e in element:
#			if (e != None):
#				list.append(e)
#	return list

def printquery(results):
Ejemplo n.º 13
0
 def setUp(self):
     self.genders = genders.Genders("test-data/genders")
Ejemplo n.º 14
0
 def setUp(self):
     self.genders = genders.Genders(no_auto=True)
     self.genders.handle_create()
Ejemplo n.º 15
0
 def setUp(self):
     self.genders = genders.Genders(no_auto=True)