let waiting for the event consume some of the 5 minute delay
authorScott Baker <smbaker@gmail.com>
Wed, 14 Aug 2013 01:05:32 +0000 (18:05 -0700)
committerScott Baker <smbaker@gmail.com>
Wed, 14 Aug 2013 01:05:32 +0000 (18:05 -0700)
planetstack/openstack/observer.py

index 037c1c5..0e8b47d 100644 (file)
@@ -90,8 +90,15 @@ class OpenStackObserver:
                      traceback.print_exc()
 
                 logger.info('Waiting for event')
+                tBeforeWait = time.time()
                 self.wait_for_event(timeout=300)
-                time.sleep(300)
+
+                # Enforce 5 minutes between wakeups
+                tSleep = 300 - (time.time() - tBeforeWait)
+                if tSleep > 0:
+                    logger.info('Sleeping for %d seconds' % tSleep)
+                    time.sleep(300)
+
                 logger.info('Observer woken up')
             except:
                 logger.log_exc("Exception in observer run loop")