Index: fedd/federation/access.py
===================================================================
--- fedd/federation/access.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/access.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -27,6 +27,4 @@
 import topdl
 import list_log
-import proxy_emulab_segment
-import local_emulab_segment
 
 
Index: fedd/federation/deter_internal_access.py
===================================================================
--- fedd/federation/deter_internal_access.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/deter_internal_access.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -25,6 +25,4 @@
 import topdl
 import list_log
-import proxy_emulab_segment
-import local_emulab_segment
 
 from access import access_base
Index: fedd/federation/dragon_access.py
===================================================================
--- fedd/federation/dragon_access.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/dragon_access.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -27,6 +27,4 @@
 import topdl
 import list_log
-import proxy_emulab_segment
-import local_emulab_segment
 
 
Index: fedd/federation/emulab_access.py
===================================================================
--- fedd/federation/emulab_access.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/emulab_access.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -1175,5 +1175,5 @@
 	    starter = self.start_segment(keyfile=self.ssh_privkey_file, 
 		    debug=self.create_debug, log=alloc_log, boss=self.boss,
-		    cert=self.xmlrpc_cert)
+		    ops=self.ops, cert=self.xmlrpc_cert)
 	    rv = starter(self, ename, proj, user, expfile, tmpdir, gid=gid)
 	except service_error, e:
@@ -1241,5 +1241,6 @@
 		    "Can't find experiment name for %s" % aid)
 	stopper = self.stop_segment(keyfile=self.ssh_privkey_file,
-		debug=self.create_debug, boss=self.boss, cert=self.xmlrpc_cert)
+		debug=self.create_debug, boss=self.boss, ops=self.ops,
+		cert=self.xmlrpc_cert)
 	stopper(self, user, proj, ename, gid, nonce)
 	return { 'allocID': req['allocID'], 'proof': proof.to_dict() }
@@ -1289,5 +1290,6 @@
 		    "Can't find experiment name for %s" % aid)
 	info = self.info_segment(keyfile=self.ssh_privkey_file,
-		debug=self.create_debug, boss=self.boss, cert=self.xmlrpc_cert)
+		debug=self.create_debug, boss=self.boss, ops=self.ops,
+		cert=self.xmlrpc_cert)
 	info(self, user, proj, ename)
 	self.decorate_topology(info, topo)
@@ -1357,5 +1359,5 @@
 
 	ops = self.operation_segment(keyfile=self.ssh_privkey_file,
-		debug=self.create_debug, boss=self.boss, 
+		debug=self.create_debug, boss=self.boss, ops=self.ops,
 		cert=self.xmlrpc_cert)
 	ops(self, op, ptargets, params, topo)
Index: fedd/federation/emulab_segment.py
===================================================================
--- fedd/federation/emulab_segment.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/emulab_segment.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -18,7 +18,7 @@
 class start_segment(ssh_emulab_segment, xmlrpc_emulab_segment):
     def __init__(self, log=None, keyfile=None, debug=False, boss=None,
-	    cert=None):
+	    ops=None, cert=None):
 	ssh_emulab_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
-	xmlrpc_emulab_segment.__init__(self, boss=boss, cert=cert)
+	xmlrpc_emulab_segment.__init__(self, boss=boss, ops=ops, cert=cert)
 
     def set_up_experiment_filespace(self, user, host, pid, eid, tmpdir):
@@ -100,5 +100,6 @@
 	    return False
 
-	if not self.set_up_experiment_filespace(pid, eid, tmpdir):
+	if not self.set_up_experiment_filespace(user, self.ops, 
+		pid, eid, tmpdir):
 	    return False
 
@@ -122,9 +123,9 @@
 	return True
 
-class stop_segment(local_segment, emulab_segment):
+class stop_segment(ssh_emulab_segment, xmlrpc_emulab_segment):
     def __init__(self, log=None, keyfile=None, debug=False, boss=None, 
-	    cert=None):
-	local_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
-	emulab_segment.__init__(self, boss=boss, cert=cert)
+	    ops=None, cert=None):
+	ssh_emulab_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
+	xmlrpc_emulab_segment.__init__(self, boss=boss, ops=ops, cert=cert)
 
     def __call__(self, parent, user, pid, eid, gid=None, terminate=False):
@@ -137,5 +138,6 @@
 	try:
 	    # Clean out tar files: we've gone over quota in the past
-	    self.ssh_cmd("rm -rf /proj/%s/software/%s" % (pid, eid))
+	    self.ssh_cmd(user, self.ops, 
+		    "rm -rf /proj/%s/software/%s" % (pid, eid))
 	    rv = self.swap_exp(pid, eid, 'out')
 	    if terminate:
@@ -145,9 +147,9 @@
 	return rv
 
-class info_segment(local_segment, emulab_segment):
+class info_segment(ssh_emulab_segment, xmlrpc_emulab_segment):
     def __init__(self, log=None, keyfile=None, debug=False, boss=None, 
-	    cert=None):
-	local_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
-	emulab_segment.__init__(self, boss=boss, cert=cert)
+	    ops=None, cert=None):
+	ssh_emulab_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
+	xmlrpc_emulab_segment.__init__(self, boss=boss, ops=ops, cert=cert)
 
     def __call__(self, parent, user, pid, eid):
@@ -156,9 +158,9 @@
 	return True
 
-class operation_segment(local_segment, emulab_segment):
+class operation_segment(ssh_emulab_segment, xmlrpc_emulab_segment):
     def __init__(self, log=None, keyfile=None, debug=False, boss=None, 
-	    cert=None):
-	local_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
-	emulab_segment.__init__(self, boss=boss, cert=cert)
+	    ops=None, cert=None):
+	ssh_emulab_segment.__init__(self, log=log, keyfile=keyfile, debug=debug)
+	xmlrpc_emulab_segment.__init__(self, boss=boss, ops=ops, cert=cert)
 
     def __call__(self, parent, op, targets, param, top):
Index: fedd/federation/legacy_access.py
===================================================================
--- fedd/federation/legacy_access.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/legacy_access.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -27,6 +27,4 @@
 import topdl
 import list_log
-import proxy_emulab_segment
-import local_emulab_segment
 
 
Index: fedd/federation/ssh_emulab_segment.py
===================================================================
--- fedd/federation/ssh_emulab_segment.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/ssh_emulab_segment.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -26,10 +26,10 @@
 	using ssh.
 	"""
-	self.log = log or logging.getLogger('fedd.access.proxy_segment')
+	self.log = log or logging.getLogger('fedd.access.ssh_emulab_segment')
 	self.ssh_privkey_file = keyfile
 	self.debug = debug
 	self.ssh_exec="/usr/bin/ssh"
 	self.scp_exec = "/usr/bin/scp"
-	self.ssh_cmd_timeout = proxy_segment.ssh_cmd_timeout
+	self.ssh_cmd_timeout = ssh_emulab_segment.ssh_cmd_timeout
 
     def scp_file(self, file, user, host, dest=""):
Index: fedd/federation/xmlrpc_emulab_segment.py
===================================================================
--- fedd/federation/xmlrpc_emulab_segment.py	(revision 06c1dba88c7544851f08b5817f4ea0064ed4fefc)
+++ fedd/federation/xmlrpc_emulab_segment.py	(revision c7141dc6739a15071ba1ae8386e6457078c1cc41)
@@ -36,8 +36,9 @@
 	    return rv
 
-    def __init__(self, boss, cert):
+    def __init__(self, boss, ops, cert):
 	self.ctxt = fedd_ssl_context(my_cert=cert)
 	self.ctxt.set_verify(SSL.verify_none, 10)
 	self.boss = boss
+	self.ops = ops
 	self.null = """
 set ns [new Simulator]
@@ -53,5 +54,5 @@
 	self.node = { }
 	self.status = [ ]
-	self.node_info = emulab_segment.node_info
+	self.node_info = xmlrpc_emulab_segment.node_info
 
     def emulab_call(self, method, params):
