Index: fedd/federation/experiment_control.py
===================================================================
--- fedd/federation/experiment_control.py	(revision b8a9fb79bfa2645dc5a367070e3df2ff13bf3fd0)
+++ fedd/federation/experiment_control.py	(revision b535e190b71d388ff10389c7d4d48c7710776d82)
@@ -919,22 +919,4 @@
 	Get access to testbed through fedd and set the parameters for that tb
 	"""
-
-	# XXX This is needless complexity.  It must vanish.
-	translate_attr = {
-	    'slavenodestartcmd': 'expstart',
-	    'slaveconnectorstartcmd': 'gwstart',
-	    'masternodestartcmd': 'mexpstart',
-	    'masterconnectorstartcmd': 'mgwstart',
-	    'connectorimage': 'gwimage',
-	    'connectortype': 'gwtype',
-	    'tunnelcfg': 'tun',
-	    'tunnelinterface': 'tunnelinterface',
-	    'smbshare': 'smbshare',
-	    'slaveconnectorcmd': 'gwcmd',
-	    'slaveconnectorcmdparams': 'gwcmdparams',
-	    'masterconnectorcmd': 'mgwcmd',
-	    'masterconnectorcmdparams': 'mgwcmdparams',
-	}
-
 	uri = self.tbmap.get(tb, None)
 	if not uri:
@@ -1054,9 +1036,13 @@
 		    "No createExperimentUser from %s" %tb)
 
+	# Add attributes to barameter space.  We don't allow attributes to
+	# overlay any parameters already installed.
 	for a in e['fedAttr']:
-	    if a['attribute']:
-		key = translate_attr.get(a['attribute'].lower(), None)
-		if key:
-		    tbparam[tb][key]= a['value']
+	    try:
+		if a['attribute'] and isinstance(a['attribute'], basestring)\
+			and not tbparam[tb].has_key(a['attribute'].lower()):
+		    tbparam[tb][a['attribute'].lower()] = a['value']
+	    except KeyError:
+		self.log.error("Bad attribute in response: %s" % a)
 	
     def release_access(self, tb, aid):
@@ -1184,25 +1170,25 @@
 		    # Substitute variables and put the line into the local
 		    # testbed file.
-		    gwtype = tbparams[self.current_testbed].get('gwtype', 
-			    self.def_gwtype)
-		    gwimage = tbparams[self.current_testbed].get('gwimage', 
-			    self.def_gwimage)
-		    mgwstart = tbparams[self.current_testbed].get('mgwstart', 
-			    self.def_mgwstart)
-		    mexpstart = tbparams[self.current_testbed].get('mexpstart', 
-			    self.def_mexpstart)
-		    gwstart = tbparams[self.current_testbed].get('gwstart', 
-			    self.def_gwstart)
-		    expstart = tbparams[self.current_testbed].get('expstart', 
-			    self.def_expstart)
+		    gwtype = tbparams[self.current_testbed].get(\
+			    'connectortype', self.def_gwtype)
+		    gwimage = tbparams[self.current_testbed].get(\
+			    'connectorimage', self.def_gwimage)
+		    mgwstart = tbparams[self.current_testbed].get(\
+			    'masterconnectorstartcmd', self.def_mgwstart)
+		    mexpstart = tbparams[self.current_testbed].get(\
+			    'masternodestartcmd', self.def_mexpstart)
+		    gwstart = tbparams[self.current_testbed].get(\
+			    'slaveconnectorstartcmd', self.def_gwstart)
+		    expstart = tbparams[self.current_testbed].get(\
+			    'slavenodestartcmd', self.def_expstart)
 		    project = tbparams[self.current_testbed].get('project')
-		    gwcmd = tbparams[self.current_testbed].get('gwcmd', 
-			    self.def_gwcmd)
+		    gwcmd = tbparams[self.current_testbed].get(\
+			    'slaveconnectorcmd', self.def_gwcmd)
 		    gwcmdparams = tbparams[self.current_testbed].get(\
-			    'gwcmdparams', self.def_gwcmdparams)
-		    mgwcmd = tbparams[self.current_testbed].get('mgwcmd', 
-			    self.def_gwcmd)
+			    'slaveconnectorcmdparams', self.def_gwcmdparams)
+		    mgwcmd = tbparams[self.current_testbed].get(\
+			    'masterconnectorcmd', self.def_gwcmd)
 		    mgwcmdparams = tbparams[self.current_testbed].get(\
-			    'mgwcmdparams', self.def_gwcmdparams)
+			    'masterconnectorcmdparams', self.def_gwcmdparams)
 		    line = re.sub("GWTYPE", gwtype, line)
 		    line = re.sub("GWIMAGE", gwimage, line)
@@ -1316,5 +1302,5 @@
 	    local_key_dir = "/proj/%s/exp/%s/tmp" % ( sproject, eid)
 	    remote_conf_dir = "/proj/%s/exp/%s/tmp" % ( dproject, eid)
-	    tunnel_cfg = tbparams[gw].get("tun", "false")
+	    tunnel_cfg = tbparams[gw].get("tunnelcfg", "false")
 
 	    conf_file = "%s%s.gw.conf" % (myname, sdomain)
