# IN THE WORK.
#----------------------------------------------------------------------
+
+
from sfa.util.sfalogging import logger
from sfa.trust.credential import Credential
from sfa.trust.abac_credential import ABACCredential
# Specifically, this factory can create standard SFA credentials
# and ABAC credentials from XML strings based on their identifying content
+
class CredentialFactory:
UNKNOWN_CREDENTIAL_TYPE = 'geni_unknown'
@staticmethod
def createCred(credString=None, credFile=None):
if not credString and not credFile:
- raise Exception("CredentialFactory.createCred called with no argument")
+ raise Exception(
+ "CredentialFactory.createCred called with no argument")
if credFile:
try:
credString = open(credFile).read()
- except Exception, e:
- logger.info("Error opening credential file %s: %s" % credFile, e)
+ except Exception as e:
+ logger.info("Error opening credential file %s: %s" %
+ credFile, e)
return None
# Try to treat the file as JSON, getting the cred_type from the struct
try:
credO = json.loads(credString, encoding='ascii')
- if credO.has_key('geni_value') and credO.has_key('geni_type'):
+ if 'geni_value' in credO and 'geni_type' in credO:
cred_type = credO['geni_type']
credString = credO['geni_value']
- except Exception, e:
- # It wasn't a struct. So the credString is XML. Pull the type directly from the string
+ except Exception as e:
+ # It wasn't a struct. So the credString is XML. Pull the type
+ # directly from the string
logger.debug("Credential string not JSON: %s" % e)
cred_type = CredentialFactory.getType(credString)
try:
cred = Credential(string=credString)
return cred
- except Exception, e:
+ except Exception as e:
if credFile:
msg = "credString started: %s" % credString[:50]
- raise Exception("%s not a parsable SFA credential: %s. " % (credFile, e) + msg)
+ raise Exception(
+ "%s not a parsable SFA credential: %s. " % (credFile, e) + msg)
else:
- raise Exception("SFA Credential not parsable: %s. Cred start: %s..." % (e, credString[:50]))
+ raise Exception(
+ "SFA Credential not parsable: %s. Cred start: %s..." % (e, credString[:50]))
elif cred_type == ABACCredential.ABAC_CREDENTIAL_TYPE:
try:
cred = ABACCredential(string=credString)
return cred
- except Exception, e:
+ except Exception as e:
if credFile:
- raise Exception("%s not a parsable ABAC credential: %s" % (credFile, e))
+ raise Exception(
+ "%s not a parsable ABAC credential: %s" % (credFile, e))
else:
- raise Exception("ABAC Credential not parsable: %s. Cred start: %s..." % (e, credString[:50]))
+ raise Exception(
+ "ABAC Credential not parsable: %s. Cred start: %s..." % (e, credString[:50]))
else:
raise Exception("Unknown credential type '%s'" % cred_type)
cred1 = CredentialFactory.createCred(credFile='/tmp/cred.xml')
cred2 = CredentialFactory.createCred(credString=c2)
- print "C1 = %s" % cred1
- print "C2 = %s" % cred2
+ print("C1 = %s" % cred1)
+ print("C2 = %s" % cred2)
c1s = cred1.dump_string()
- print "C1 = %s" % c1s
+ print("C1 = %s" % c1s)
# print "C2 = %s" % cred2.dump_string()