def connect(uri=None, user="", password=""): """ Method: connect(uri=None, user="", password="") Description: Open a CDMS database connection. Arguments: uri: Universal Resource Identifier. If unspecified, defaults to the environment variable CDMSROOT. user: user id password: password Returns: Database instance. Example: db = cdms.connect("ldap://dbhost.llnl.gov/database=CDMS,ou=PCMDI,o=LLNL,c=US") """ if uri is None: try: uri = os.environ['CDMSROOT'] except KeyError: raise CDMSError, ConnectError + '%s\nSet environment variable CDMSROOT to default database location'%uri (scheme,netloc,path,parameters,query,fragment)=cdurlparse.urlparse(uri) if scheme in ['','ldap']: try: ldapdb = ldap.open(netloc) except: raise CDMSError, ConnectError +"%s\n%s"%(uri,sys.exc_value) try: ldapdb.simple_bind_s(user,password) except: raise CDMSError, AuthenticationError + "%s\n%s"%(uri,sys.exc_value) try: result = ldapdb.search_s(path[1:], ldap.SCOPE_SUBTREE, "objectclass=database") except: raise CDMSError, DatabaseNotFound + "%s\n%s"%(uri,sys.exc_value) try: dn, attrs = result[0] except: raise CDMSError, PermissionError + uri newuri = "ldap://%s/%s"%(netloc,dn) db = LDAPDatabase(newuri, ldapdb) db.setExternalDict(attrs) return db else: raise CDMSError, SchemeNotSupported + scheme
def connect(uri=None, user="", password=""): """ Method: connect(uri=None, user="", password="") Description: Open a CDMS database connection. Arguments: uri: Universal Resource Identifier. If unspecified, defaults to the environment variable CDMSROOT. user: user id password: password Returns: Database instance. Example: db = cdms.connect("ldap://dbhost.llnl.gov/database=CDMS,ou=PCMDI,o=LLNL,c=US") """ if uri is None: try: uri = os.environ['CDMSROOT'] except KeyError: raise CDMSError, ConnectError + '%s\nSet environment variable CDMSROOT to default database location' % uri (scheme, netloc, path, parameters, query, fragment) = cdurlparse.urlparse(uri) if scheme in ['', 'ldap']: try: ldapdb = ldap.open(netloc) except: raise CDMSError, ConnectError + "%s\n%s" % (uri, sys.exc_value) try: ldapdb.simple_bind_s(user, password) except: raise CDMSError, AuthenticationError + "%s\n%s" % (uri, sys.exc_value) try: result = ldapdb.search_s(path[1:], ldap.SCOPE_SUBTREE, "objectclass=database") except: raise CDMSError, DatabaseNotFound + "%s\n%s" % (uri, sys.exc_value) try: dn, attrs = result[0] except: raise CDMSError, PermissionError + uri newuri = "ldap://%s/%s" % (netloc, dn) db = LDAPDatabase(newuri, ldapdb) db.setExternalDict(attrs) return db else: raise CDMSError, SchemeNotSupported + scheme
def __init__(self, uri, db): (scheme,netloc,path,parameters,query,fragment)=cdurlparse.urlparse(uri) AbstractDatabase.__init__(self,uri,path[1:]) self.netloc = netloc self.db = db
def __init__(self, uri, db): (scheme, netloc, path, parameters, query, fragment) = cdurlparse.urlparse(uri) AbstractDatabase.__init__(self, uri, path[1:]) self.netloc = netloc self.db = db