Sapan Bhatia | 037c947 | 2016-01-14 11:44:43 -0500 | [diff] [blame] | 1 | import os |
| 2 | import sys |
| 3 | import threading |
| 4 | import time |
| 5 | from synchronizers.base.event_loop import XOSObserver |
| 6 | from synchronizers.base.event_manager import EventListener |
Scott Baker | 3f417a8 | 2016-01-14 16:07:32 -0800 | [diff] [blame] | 7 | from xos.logger import Logger, logging |
Sapan Bhatia | c5a6ff8 | 2016-01-15 11:16:35 -0500 | [diff] [blame] | 8 | from synchronizers.model_policy import run_policy |
Sapan Bhatia | 037c947 | 2016-01-14 11:44:43 -0500 | [diff] [blame] | 9 | from xos.config import Config |
| 10 | |
| 11 | logger = Logger(level=logging.INFO) |
| 12 | |
| 13 | class Backend: |
| 14 | |
| 15 | def run(self): |
| 16 | # start the openstack observer |
| 17 | observer = XOSObserver() |
Sapan Bhatia | 1b5540c | 2016-04-27 19:19:07 +0200 | [diff] [blame] | 18 | observer_thread = threading.Thread(target=observer.run,name='synchronizer') |
Sapan Bhatia | 037c947 | 2016-01-14 11:44:43 -0500 | [diff] [blame] | 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 | |