Index: fedd/federation/experiment_control.py
===================================================================
--- fedd/federation/experiment_control.py	(revision a11eda50a6914f00fce2102f04a31aec977431d0)
+++ fedd/federation/experiment_control.py	(revision 2bb8b35f2ed6f40e844649d404f4d691cae9af18)
@@ -1652,4 +1652,5 @@
         to instantiate them and start it all up.
         """
+	self.log.info("New experiment call started for %s" % fid)
         req = req.get('NewRequestBody', None)
         if not req:
@@ -1664,4 +1665,5 @@
 
         if not access_ok:
+	    self.log.info("New experiment call for %s: Access denied" % fid)
             raise service_error(service_error.access, "New access denied",
 		    proof=[proof])
@@ -1713,4 +1715,5 @@
             }
 
+	self.log.info("New experiment call succeeded for %s" % fid)
         return rv
 
@@ -1976,4 +1979,5 @@
         rv = None
         state = None
+	self.log.info("vtopo call started for %s" %  fid)
 
         req = req.get('VtopoRequestBody', None)
@@ -2009,10 +2013,17 @@
         self.state_lock.release()
 
-        if rv: return rv
+        if rv: 
+	    self.log.info("vtopo call completed for %s %s " % \
+		(key, fid))
+	    return rv
         else: 
             if state:
+		self.log.info("vtopo call completed for %s %s (Not ready)" % \
+		    (key, fid))
                 raise service_error(service_error.partial, 
                         "Not ready: %s" % state)
             else:
+		self.log.info("vtopo call completed for %s %s (No experiment)"\
+			% (key, fid))
                 raise service_error(service_error.req, "No such experiment")
 
@@ -2024,4 +2035,5 @@
         state = None
 
+	self.log.info("vis call started for %s" %  fid)
         req = req.get('VisRequestBody', None)
         if not req:
@@ -2061,10 +2073,17 @@
         self.state_lock.release()
 
-        if rv: return rv
+        if rv: 
+	    self.log.info("vis call completed for %s %s " % \
+		(key, fid))
+	    return rv
         else:
             if state:
+		self.log.info("vis call completed for %s %s (not ready)" % \
+		    (key, fid))
                 raise service_error(service_error.partial, 
                         "Not ready: %s" % state)
             else:
+		self.log.info("vis call completed for %s %s (no experiment)" % \
+		    (key, fid))
                 raise service_error(service_error.req, "No such experiment")
 
@@ -2124,4 +2143,5 @@
         """
 
+	self.log.info("Create experiment call started for %s" % fid)
         req = req.get('CreateRequestBody', None)
         if req:
@@ -2228,4 +2248,7 @@
             # exceptions.  Failing at this point returns a fault to the remote
             # caller. 
+
+	    self.log.info("Create experiment call failed for %s %s: %s" % 
+		    (eid, fid, e))
 	    self.clear_placeholder(eid, expid, tmpdir)
             raise e
@@ -2260,4 +2283,6 @@
 		'proof': [ proof.to_dict() ] + proofs,
             }
+	self.log.info("Create experiment call succeeded for %s %s" % \
+		(eid, fid))
 
         return rv
@@ -2353,4 +2378,5 @@
         rv = None
 
+	self.log.info("Info call started for %s" %  fid)
         req = req.get('InfoRequestBody', None)
         if not req:
@@ -2384,8 +2410,10 @@
 		if top is not None: top = top.clone()
         self.state_lock.release()
+	self.log.info("Gathered Info for %s %s" % (key, fid))
 
 	# If the legacy visualization and topology representations are
 	# requested, calculate them and add them to the return.
 	if legacy and rv is not None:
+	    self.log.info("Generating legacy Info for %s %s" % (key, fid))
 	    if top is not None:
 		vtopo = topdl.topology_to_vtopo(top)
@@ -2401,7 +2429,9 @@
 			rv['vis'] = vis
         if rv:
+	    self.log.info("Info succeded for %s %s" % (key, fid))
 	    rv['proof'] = proof.to_dict()
 	    return rv
-        else:
+        else: 
+	    self.log.info("Info failed for %s %s: no experiment" % (key, fid))
             raise service_error(service_error.req, "No such experiment")
 
@@ -2541,4 +2571,5 @@
 	rv = { 'info': [ ], 'proof': [ ] }
 
+	self.log.info("Multi Info call started for %s" %  fid)
         self.state_lock.acquire()
         for key in [ k for k in self.state.keys() if isinstance(k, fedid)]:
@@ -2549,4 +2580,6 @@
 		    continue
 		else:
+		    self.log.info("Multi Info call failed for %s: %s" %  \
+			    (e,fid))
 		    self.state_lock.release()
 		    raise e
@@ -2558,4 +2591,5 @@
 		rv['proof'].append(proof.to_dict())
         self.state_lock.release()
+	self.log.info("Multi Info call succeeded for %s" %  fid)
         return rv
 
@@ -2678,4 +2712,5 @@
         information
         """
+	self.log.info("Terminate experiment call started for %s" % fid)
         tbparams = { }
         req = req.get('TerminateRequestBody', None)
@@ -2740,4 +2775,6 @@
 		self.remove_dirs("%s/%s" % (self.repodir, repo))
 	
+	    self.log.info("Terminate experiment succeeded for %s %s" % \
+		    (key, fid))
             return { 
                     'experiment': exp , 
@@ -2746,4 +2783,6 @@
                     }
         else:
+	    self.log.info("Terminate experiment failed for %s %s: no state" % \
+		    (key, fid))
             raise service_error(service_error.req, "No saved state")
 
