blob: 0bf3e486080e068e0a5b4c1808317e8d32b131eb [file] [log] [blame]
Sapan Bhatiafe16ae42016-01-14 11:44:43 -05001import os
2import sys
3import threading
4import time
5from synchronizers.base.event_loop import XOSObserver
6from synchronizers.base.event_manager import EventListener
Scott Bakerf154cc22016-01-14 16:07:32 -08007from xos.logger import Logger, logging
Sapan Bhatia31155852016-01-14 17:05:48 -05008from model_policy import run_policy
Sapan Bhatiafe16ae42016-01-14 11:44:43 -05009from xos.config import Config
10
11logger = Logger(level=logging.INFO)
12
13class Backend:
14
15 def run(self):
16 # start the openstack observer
17 observer = XOSObserver()
18 observer_thread = threading.Thread(target=observer.run)
19 observer_thread.start()
20
21 # start model policies thread
22 observer_name = getattr(Config(), "observer_name", "")
23 if (not observer_name):
24 model_policy_thread = threading.Thread(target=run_policy)
25 model_policy_thread.start()
26 else:
27 model_policy_thread = None
28 print "Skipping model policies thread for service observer."
29
30
31 # start event listene
32 #event_manager = EventListener(wake_up=observer.wake_up)
33 #event_manager_thread = threading.Thread(target=event_manager.run)
34 #event_manager_thread.start()
35
36 while True:
37 try:
38 time.sleep(1000)
39 except KeyboardInterrupt:
40 print "exiting due to keyboard interrupt"
41 # TODO: See about setting the threads as daemons
42 observer_thread._Thread__stop()
43 if model_policy_thread:
44 model_policy_thread._Thread__stop()
45 sys.exit(1)
46