def myemsldb_connect(dbconf = None, myemsl_schema_versions=None): if dbconf == None: dbconf = getconfig_secret() if myemsl_schema_versions == None: raise Exception("You did not specify any supported versions") versions = {} for x in myemsl_schema_versions: (major, minor) = x.split('.') versions[major] = minor cnx = pgdb.connect(database=dbconf.get('metadata', 'database'), user=dbconf.get('metadata', 'user'), host=dbconf.get('metadata', 'host'), password=dbconf.get('metadata', 'password')) sql = """ select value from myemsl.system where key='schema_version' """ cursor = cnx.cursor() cursor.execute(sql) rows = cursor.fetchall() schema_version = None for row in rows: schema_version = row[0] (major, minor) = schema_version.split('.') if major in versions: if int(minor) < int(versions[major]): err = "Schema version too old. Got %s.%s, support %s" %(major, minor, str(versions)) logger.error(err) raise Exception(err) else: err = "Schema version mismatch. Got %s.%s, support %s" %(major, minor, str(versions)) logger.error(err) raise Exception(err) return cnx
#!/usr/bin/env python import sys from myemsl.dbconnect import myemsldb_connect from myemsl.getconfig import getconfig_secret config = getconfig_secret() from myemsl.logging import getLogger from myemsl.metadata import get_proposals_from_user, get_custodian_instruments, get_proposals_from_instrument, get_proposal_info logger = getLogger(__name__) def get_network_id_to_person_id_hash(): user_hash = {} try: sql = "select person_id, network_id from eus.users where network_id is not null" cnx = myemsldb_connect(myemsl_schema_versions=['1.0']) cursor = cnx.cursor() cursor.execute(sql) rows = cursor.fetchall() for row in rows: if row[1] != None and row[1] != '': user_hash[row[1].upper()] = row[0] except Exception, e: logger.error("%s", e) raise return user_hash def get_permission_group_members(type, name): group_members = []
#!/usr/bin/python from socket import gethostname from myemsl.callcurl import call_curl from myemsl.getconfig import getconfig_secret from myemsl.metadata import * from myemsl.id2filename import id2dirandfilename import os import stat import myemsl.util import myemsl.getpermission import xml.dom.minidom config = getconfig_secret() from myemsl.dbconnect import do_sql_insert as do_sql from myemsl.dbconnect import do_sql_select as do_sql_select """ new_state insert a new state line into the ingest_state table """ def new_state(jobid): sql = """ INSERT INTO myemsl.ingest_state(host,jobid) VALUES (%(host)s,%(jobid)i); """ params = {'jobid': int(jobid), 'host': str(gethostname())}
#!/usr/bin/python import os,sys import array import myemsl.id2filename from myemsl.dbconnect import myemsldb_connect from myemsl.getconfig import getconfig_secret CONFIG = getconfig_secret() """ Logic for transitioning the data from old to new item server format. 1. get all items from a user 2. check the old file name and new file name and log it 3. log the move """ if __name__ == '__main__': sql = """ select name, subdir, f.transaction, submitter, item_id from myemsl.files as f, myemsl.transactions as t where f.transaction = t.transaction and t.submitter = %(submitter)s
#!/usr/bin/python import os, sys import array import myemsl.id2filename from myemsl.dbconnect import myemsldb_connect from myemsl.getconfig import getconfig_secret CONFIG = getconfig_secret() """ Logic for transitioning the data from old to new item server format. 1. get all items from a user 2. check the old file name and new file name and log it 3. log the move """ if __name__ == '__main__': sql = """ select name, subdir, f.transaction, submitter, item_id from myemsl.files as f, myemsl.transactions as t where f.transaction = t.transaction and t.submitter = %(submitter)s """