blob: d7307faab5db37c8866f73a9101ab93c01683591 [file] [log] [blame]
Sapan Bhatia037c9472016-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 Baker3f417a82016-01-14 16:07:32 -08007from xos.logger import Logger, logging
Sapan Bhatiac5a6ff82016-01-15 11:16:35 -05008from synchronizers.model_policy import run_policy
Sapan Bhatia037c9472016-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()
Sapan Bhatia1b5540c2016-04-27 19:19:07 +020018 observer_thread = threading.Thread(target=observer.run,name='synchronizer')
Sapan Bhatia037c9472016-01-14 11:44:43 -050019 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