Index: fedd/federation/emulab_access.py
===================================================================
--- fedd/federation/emulab_access.py	(revision 807b5caa8a3078f2c04b185e1f7d440f3380e92d)
+++ fedd/federation/emulab_access.py	(revision 5b19c3a1d6a934b73008c5a0b7afc680ebea6ddc)
@@ -73,5 +73,4 @@
 	self.ssh_port = config.get("access","ssh_port") or "22"
 	self.boss = config.get("access", "boss")
-	self.ops = config.get("access", "ops")
 	self.xmlrpc_cert = config.get("access", "xmlrpc_cert")
 	self.xmlrpc_certpw = config.get("access", "xmlrpc_certpw")
Index: fedd/federation/experiment_control.py
===================================================================
--- fedd/federation/experiment_control.py	(revision 807b5caa8a3078f2c04b185e1f7d440f3380e92d)
+++ fedd/federation/experiment_control.py	(revision 5b19c3a1d6a934b73008c5a0b7afc680ebea6ddc)
@@ -1801,5 +1801,5 @@
 	    # Now get access to the dynamic testbeds (those added above)
 	    for tb in [ t for t in topo if t not in allocated]:
-		self.get_access(tb, None, tbparams, access_user, masters, tbmap)
+		self.get_access(tb, None, tbparams, access_user, masters)
 		allocated[tb] = 1
 		store_keys = topo[tb].get_attribute('store_keys')
Index: fedd/federation/experiment_partition.py
===================================================================
--- fedd/federation/experiment_partition.py	(revision 807b5caa8a3078f2c04b185e1f7d440f3380e92d)
+++ fedd/federation/experiment_partition.py	(revision 5b19c3a1d6a934b73008c5a0b7afc680ebea6ddc)
@@ -66,8 +66,8 @@
 	"""
 	seer_master = None
-	for k, m in masters.items():
+	for m in masters.values():
 	    for s in m:
-		if s.name == 'seer':
-		    seer_master = k
+		if s.name == 'SEER':
+		    seer_master = m
 		    break
 	    if seer_master: break
@@ -284,8 +284,8 @@
 
 	seer_master = None
-	for k, m in masters.items():
+	for m in masters.values():
 	    for s in m:
-		if s.name == 'seer':
-		    seer_master = k
+		if s.name == 'SEER':
+		    seer_master = m
 		    break
 	    if seer_master: break
Index: fedd/federation/protogeni_access.py
===================================================================
--- fedd/federation/protogeni_access.py	(revision 807b5caa8a3078f2c04b185e1f7d440f3380e92d)
+++ fedd/federation/protogeni_access.py	(revision 5b19c3a1d6a934b73008c5a0b7afc680ebea6ddc)
@@ -344,6 +344,5 @@
 			self.d[self.current_key] = {
 				'hostname': attrs.get('hostname', None),
-				'interfaces': { },
-				'mac': { }
+				'interfaces': { }
 				}
 		elif name == 'interface' and self.current_key:
@@ -351,11 +350,4 @@
 			    [attrs.get('virtual_id','')] = \
 			    attrs.get('component_id', None)
-		elif name == 'interface_ref':
-		    # Collect mac address information from an interface_ref.
-		    # These appear after the node info has been parsed.
-		    nid = attrs.get('virtual_node_id', None)
-		    ifid = attrs.get('virtual_interface_id', None)
-		    mac = attrs.get('MAC', None)
-		    self.d[nid]['mac'][ifid] = mac
 	    #  When a node is finished, clear current_key
 	    def end_element(self, name):
@@ -660,5 +652,4 @@
 
 	ifconfig = "/sbin/ifconfig"
-	findif = '/usr/local/etc/emulab/findif'
 	stage_file = stage_file_type(user, self.staging_host, stagingdir)
 	pname = node.get('hostname', None)
@@ -675,15 +666,10 @@
 		    if not i.get_attribute('portal')]:
 		pinf = node['interfaces'].get(i.name, None)
-		pmac = node['mac'].get(i.name, None)
 		addr = i.get_attribute('ip4_address') 
 		netmask = i.get_attribute('ip4_netmask') or '255.255.255.0'
-		# The interface names in manifests are not to be trusted, so we
-		# find the interface to configure using the local node's script
-		# to match mac address to interface name.
-		if pinf and addr and pmac:
-		    print >>script, '# %s' % pinf
+		if pinf and addr:
 		    print >>script, \
-			    "%s `%s %s` %s netmask %s"  % \
-			    (ifconfig, findif, pmac, addr, netmask)
+			    "%s %s %s netmask %s"  % \
+			    (ifconfig, pinf, addr, netmask)
 		else:
 		    self.log.error("Missing interface or address for %s" \
@@ -944,5 +930,5 @@
 		    "ProtoGENI: %s %s" % (e.code, e))
 
-	return (slice_urn, slice_cred, manifest, rspec)
+	return (slice_urn, slice_cred, manifest)
 
     def wait_for_slice(self, segment_commands, slice_cred, slice_urn, ctxt, 
@@ -1011,10 +997,10 @@
 		certfile, certpw)
 
-	if not ctxt: return False, {}
+	if not ctxt: return False
 
 	self.set_up_staging_filespace(segment_commands, user, host, stagingdir)
 	slicename = self.get_free_slicename(segment_commands, user, gcred, ctxt)
 	self.log.info("Creating %s" % slicename)
-	slice_urn, slice_cred, manifest, rpsec = self.allocate_slice(
+	slice_urn, slice_cred, manifest = self.allocate_slice(
 		segment_commands, slicename, rspec, gcred, ctxt)
 
@@ -1037,5 +1023,5 @@
 				user, host, "%s/%s" % (stagingdir, f)):
 			    self.log.error("Scp failed")
-			    return False, {}
+			    return False
 
 
@@ -1046,9 +1032,9 @@
 	    self.log.error('Sliver failed to start on ProtoGENI')
 	    self.delete_slice(segment_commands, slice_cred, slice_urn, ctxt)
-	    return False, {}
+	    return False
 	elif status == 'timeout':
 	    self.log.error('Sliver failed to start on ProtoGENI (timeout)')
 	    self.delete_slice(segment_commands, slice_cred, slice_urn, ctxt)
-	    return False, {}
+	    return False
 	else:
 	    # All good: save ProtoGENI info in shared state
@@ -1058,5 +1044,4 @@
 	    self.allocation[aid]['slice_credential'] = slice_cred
 	    self.allocation[aid]['manifest'] = manifest
-	    self.allocation[aid]['rspec'] = rspec
 	    self.allocation[aid]['certfile'] = certfile
 	    self.allocation[aid]['certpw'] = certpw
@@ -1411,5 +1396,17 @@
 	    param = {
 		    'credential': cred,
-		    'urn': slice_urn,
+		    'hrn': name,
+		    'type': 'Slice',
+		    }
+	    slice = segment_commands.slice_authority_call('Resolve', 
+		    param, ctxt)
+	    uuid = slice.get('uuid', None)
+	    if uuid == None:
+		sys.exit('No uuid for %s' % slicename)
+
+	    print 'Calling GetCredential (uuid)'
+	    param = {
+		    'credential': cred,
+		    'uuid': uuid,
 		    'type': 'Slice',
 		    }
@@ -1421,4 +1418,5 @@
 	    return None
 	try:
+	    print 'Calling RenewSlice (CM)'
 	    param = {
 		    'credentials': [new_scred,],
Index: fedd/federation/remote_service.py
===================================================================
--- fedd/federation/remote_service.py	(revision 807b5caa8a3078f2c04b185e1f7d440f3380e92d)
+++ fedd/federation/remote_service.py	(revision 5b19c3a1d6a934b73008c5a0b7afc680ebea6ddc)
@@ -502,6 +502,5 @@
 			    'desc': e.fault.string or "Something Weird" }
 		if ee:
-		    raise service_error(ee.get('code', 'no code'), 
-			    ee.get('desc','no desc'))
+		    raise service_error(ee['code'], ee['desc'])
 		else:
 		    raise service_error(service_error.internal,
