[svn-commits] kmoore: testsuite/asterisk/trunk r5255 - /asterisk/trunk/lib/python/asterisk/
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Jul 17 22:32:48 CDT 2014
Author: kmoore
Date: Thu Jul 17 22:32:40 2014
New Revision: 5255
URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5255
Log:
Testsuite: Clean up AMI connections
Clean up AMI connections just before shutting down asterisk. This
prevents reference leaks related to manager sessions.
Review: https://reviewboard.asterisk.org/r/3806/
Modified:
asterisk/trunk/lib/python/asterisk/test_case.py
Modified: asterisk/trunk/lib/python/asterisk/test_case.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/lib/python/asterisk/test_case.py?view=diff&rev=5255&r1=5254&r2=5255
==============================================================================
--- asterisk/trunk/lib/python/asterisk/test_case.py (original)
+++ asterisk/trunk/lib/python/asterisk/test_case.py Thu Jul 17 22:32:40 2014
@@ -388,18 +388,35 @@
self._stop_deferred.callback(self)
return result
+ def __stop_ami(result):
+ """Tear down AMI connections"""
+
+ # Call the overridable method now
+ self.stop_asterisk()
+
+ # tear down AMI instances
+ ami_defers = []
+ for ami in self.ami:
+ if ami:
+ ami_defers.append(ami.logoff())
+
+ defer.DeferredList(ami_defers).addCallback(
+ __stop_instances).addErrback(__ami_stop_fail)
+
+ def __ami_stop_fail(result):
+ """Handle AMI stop failure"""
+ LOGGER.error("Failed to tear down AMI connection(s)")
+ __stop_instances(result)
+
def __stop_instances(result):
"""Stop the instances"""
- # Call the overridable method now
- self.stop_asterisk()
# Gather up the stopped defers; check success failure of stopping
# when all instances of Asterisk have stopped
stop_defers = []
for index, item in enumerate(self.ast):
LOGGER.info("Stopping Asterisk instance %d" % (index + 1))
- temp_defer = self.ast[index].stop()
- stop_defers.append(temp_defer)
+ stop_defers.append(item.stop())
defer.DeferredList(stop_defers).addCallback(
__check_success_failure)
@@ -408,9 +425,9 @@
self._stop_deferred = defer.Deferred()
deferred = self.condition_controller.evaluate_post_checks()
if deferred:
- deferred.addCallback(__stop_instances)
+ deferred.addCallback(__stop_ami)
else:
- __stop_instances(None)
+ __stop_ami(None)
return self._stop_deferred
def stop_reactor(self):
More information about the svn-commits
mailing list