blob: 5657491418968ff3f3217e970cd5be6b22541330 [file] [log] [blame]
Scott Baker316c9182015-05-05 10:18:17 -07001import os
2import sys
Tony Mack79a49c82013-06-15 23:51:57 -04003import threading
Tony Mackb4cf1002014-04-29 12:26:12 -04004import time
Scott Baker286a78f2015-02-18 16:13:48 -08005from observer.event_loop import XOSObserver
Sapan Bhatia757e0b62013-09-02 16:55:00 -04006from observer.event_manager import EventListener
Tony Mackb4cf1002014-04-29 12:26:12 -04007from util.logger import Logger, logging
Sapan Bhatia254198c2015-01-23 16:17:12 +00008from model_policy import run_policy
Sapan Bhatiae78215a2015-04-07 17:43:44 -04009from xos.config import Config
Tony Mackb4cf1002014-04-29 12:26:12 -040010
11logger = Logger(level=logging.INFO)
Tony Mack79a49c82013-06-15 23:51:57 -040012
13class Backend:
Sapan Bhatiae78215a2015-04-07 17:43:44 -040014
Tony Mack79a49c82013-06-15 23:51:57 -040015 def run(self):
Sapan Bhatiae78215a2015-04-07 17:43:44 -040016 # 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):
Sapan Bhatia254198c2015-01-23 16:17:12 +000024 model_policy_thread = threading.Thread(target=run_policy)
25 model_policy_thread.start()
Sapan Bhatiae78215a2015-04-07 17:43:44 -040026 else:
Scott Baker316c9182015-05-05 10:18:17 -070027 model_policy_thread = None
Sapan Bhatiae78215a2015-04-07 17:43:44 -040028 print "Skipping model policies thread for service observer."
Sapan Bhatia254198c2015-01-23 16:17:12 +000029
Tony Mack79a49c82013-06-15 23:51:57 -040030
Sapan Bhatiae78215a2015-04-07 17:43:44 -040031 # 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()
Scott Baker316c9182015-05-05 10:18:17 -070035
Scott Baker316c9182015-05-05 10:18:17 -070036 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:
Scott Baker75611862015-05-07 15:54:47 -070044 model_policy_thread._Thread__stop()
Scott Baker316c9182015-05-05 10:18:17 -070045 sys.exit(1)
46