Index: fedd/federation/access.py
===================================================================
--- fedd/federation/access.py	(revision c3dcf48b26af4722dc60d4339d59d1343b37d750)
+++ fedd/federation/access.py	(revision 416292fc0aa77e9eac6a9b0badf8b74d3c7b29bd)
@@ -36,11 +36,4 @@
     class parse_error(RuntimeError): pass
 
-    bool_attrs = ("project_priority", "allow_proxy")
-    emulab_attrs = ("boss", "ops", "domain", "fileserver", "eventserver")
-    id_attrs = ("proxy",
-	    "proxy_cert_file", "proxy_cert_pwd", "proxy_trusted_certs",
-	    "project_allocation_uri", "project_allocation_cert_file", 
-	    "project_allocation_cert_pwd", "project_allocation_trusted_certs")
-    id_list_attrs = ("restricted",)
 
     proxy_RequestAccess= service_caller('RequestAccess')
@@ -53,29 +46,19 @@
 
 	# Make sure that the configuration is in place
-	if config: 
-	    if not config.has_section("access"):
-		config.add_section("access")
-	    if not config.has_section("globals"):
-		config.add_section("globals")
-	else:
+	if not config: 
 	    raise RunTimeError("No config to fedd.access")
 
-	# Create instance attributes from the static lists
-	for a in access.bool_attrs:
-	    if config.has_option("access", a):
-		setattr(self, a, config.get("access", a))
-	    else:
-		setattr(self, a, False)
-
-	for a in access.emulab_attrs + access.id_attrs:
-	    if config.has_option("access", a):
-		setattr(self, a, config.get("access",a))
-	    else:
-		setattr(self, a, None)
+	self.project_priority = config.getboolean("access", "project_priority")
+	self.allow_proxy = config.getboolean("access", "allow_proxy")
+
+	self.boss = config.get("access", "boss")
+	self.ops = config.get("access", "ops")
+	self.domain = config.get("access", "domain")
+	self.fileserver = config.get("access", "fileserver")
+	self.eventserver = config.get("access", "eventserver")
 
 	self.attrs = { }
 	self.access = { }
 	self.restricted = [ ]
-	self.fedid_category = { }
 	self.projects = { }
 	self.keys = { }
@@ -107,46 +90,15 @@
 	self.state_filename = config.get("access", "access_state")
 	self.read_state()
-	# Certs are promoted from the generic to the specific, so without a
-	# specific proxy certificate, the main certificates are used for
-	# proxy interactions. If no dynamic project certificates, then
-	# proxy certs are used, and if none of those the main certs.
-
-	if config.has_option("globals", "proxy_cert_file"):
-	    if not self.project_allocation_cert_file:
-		self.project_allocation_cert_file = \
-			config.get("globals", "proxy_cert_file")
-		if config.has_option("globals", "proxy_cert_pwd"):
-		    self.project_allocation_cert_pwd = \
-			    config.get("globals", "proxy_cert_pwd")
-
-	if config.has_option("globals", "proxy_trusted_certs"):
-	    if not self.project_allocation_trusted_certs:
-		self.project_allocation_trusted_certs =\
-			config.get("globals", proxy_trusted_certs)
-
-	if config.has_option("globals", "cert_file"):
-	    has_pwd = config.has_option("globals", "cert_pwd")
-	    if not self.project_allocation_cert_file:
-		self.project_allocation_cert_file = \
-			config.get("globals", "cert_file")
-		if has_pwd: 
-		    self.project_allocation_cert_pwd = \
-			    config.get("globals", "cert_pwd")
-	    if not self.proxy_cert_file:
-		self.proxy_cert_file = config.get("globals", "cert_file")
-		if has_pwd:
-		    self.proxy_cert_pwd = config.get("globals", "cert_pwd")
-
-	if config.get("globals", "trusted_certs"):
-	    if not self.proxy_trusted_certs:
-		self.proxy_trusted_certs = \
-			config.get("globals", "trusted_certs")
-	    if not self.project_allocation_trusted_certs:
-		self.project_allocation_trusted_certs = \
-			config.get("globals", "trusted_certs")
-
-	proj_certs = (self.project_allocation_cert_file, 
-		self.project_allocation_trusted_certs,
-		self.project_allocation_cert_pwd)
+
+	# Keep cert_file and cert_pwd coming from the same place
+	self.cert_file = config.get("access", "cert_file")
+	if self.cert_file:
+	    self.sert_pwd = config.get("access", "cert_pw")
+	else:
+	    self.cert_file = config.get("globals", "cert_file")
+	    self.sert_pwd = config.get("globals", "cert_pw")
+
+	self.trusted_certs = config.get("access", "trusted_certs") or \
+		config.get("globals", "trusted_certs")
 
 	self.soap_services = {\
@@ -275,23 +227,4 @@
 		    (lineno, config))
 	f.close()
-
-
-    def dump_state(self):
-	"""
-	Dump the state read from a configuration file.  Mostly for debugging.
-	"""
-	for a in access.bool_attrs:
-	    print "%s: %s" % (a, getattr(self, a ))
-	for a in access.emulab_attrs + access.id_attrs:
-	    print "%s: %s" % (a, getattr(self, a))
-	for k, v in self.attrs.iteritems():
-	    print "%s %s" % (k, v)
-	print "Access DB:"
-	for k, v in self.access.iteritems():
-	    print "%s %s" % (k, v)
-	print "Trust DB:"
-	for k, v in self.fedid_category.iteritems():
-	    print "%s %s" % (k, v)
-	print "Restricted: %s" % str(',').join(sorted(self.restricted))
 
     def get_users(self, obj):
@@ -713,6 +646,6 @@
 	    if self.allow_proxy:
 		resp = self.proxy_RequestAccess.call_service(dt, req,
-			    self.proxy_cert_file, self.proxy_cert_pwd,
-			    self.proxy_trusted_certs)
+			    self.cert_file, self.cert_pwd,
+			    self.trusted_certs)
 		if resp.has_key('RequestAccessResponseBody'):
 		    return resp['RequestAccessResponseBody']
@@ -823,6 +756,6 @@
 	    if self.allow_proxy:
 		resp = self.proxy_ReleaseAccess.call_service(dt, req,
-			    self.proxy_cert_file, self.proxy_cert_pwd,
-			    self.proxy_trusted_certs)
+			    self.cert_file, self.cert_pwd,
+			    self.trusted_certs)
 		if resp.has_key('ReleaseAccessResponseBody'):
 		    return resp['ReleaseAccessResponseBody']
