diff --git a/iotronic/conductor/manager.py b/iotronic/conductor/manager.py index ba8db9c..da1ce98 100644 --- a/iotronic/conductor/manager.py +++ b/iotronic/conductor/manager.py @@ -80,6 +80,11 @@ class ConductorManager(object): ragent = self.dbapi.get_registration_wampagent() + while not ragent: + LOG.warn("Cannot find a registration agent. Waiting for it...") + time.sleep(5) + ragent = self.dbapi.get_registration_wampagent() + LOG.info("Found registration agent: %s on %s", ragent.hostname, ragent.wsurl) diff --git a/iotronic/db/sqlalchemy/api.py b/iotronic/db/sqlalchemy/api.py index f208dc1..4eec374 100644 --- a/iotronic/db/sqlalchemy/api.py +++ b/iotronic/db/sqlalchemy/api.py @@ -585,7 +585,7 @@ class Connection(api.Connection): .filter_by(ragent=True, online=True) .one()) except NoResultFound: - raise exception.WampRegistrationAgentNotFound() + return None def unregister_wampagent(self, hostname): session = get_session()