77d4e1e47f
Moved the logger references in health_checker.py and listener_manager.py to the file headers to match convention. Calls to the logger were readjusted to reflect the new variable names. Also, copied the changes which removed the use of the pass-in logger and uses oslo_log's log.getLogger() to handle logging. Story: #2001031 Task: #4232 Change-Id: I66beb635a78e5f6f0caae0b5a63c55dfdb5d15fe
94 lines
2.6 KiB
Python
Executable File
94 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# Copyright 2014-2017 AT&T Intellectual Property
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
import os
|
|
import sys
|
|
import traceback
|
|
|
|
from oslo_log import log
|
|
|
|
from valet.common.conf import get_logger
|
|
from valet.engine.optimizer.ostro.ostro import Ostro
|
|
from valet.engine.optimizer.ostro_server.configuration import Config
|
|
from valet.engine.optimizer.ostro_server.daemon import Daemon
|
|
|
|
LOG = log.getLogger(__name__)
|
|
|
|
|
|
class OstroDaemon(Daemon):
|
|
"""Daemon for Valet Engine."""
|
|
|
|
def run(self):
|
|
"""Run the daemon."""
|
|
LOG.info("Valet Engine is launched")
|
|
try:
|
|
ostro = Ostro(config)
|
|
except Exception:
|
|
LOG.error(traceback.format_exc())
|
|
|
|
if ostro.bootstrap() is False:
|
|
LOG.error("Valet Engine bootstrap failed")
|
|
sys.exit(2)
|
|
|
|
# Write pidfile
|
|
pid = str(os.getpid())
|
|
file(self.pidfile, 'w+').write("%s\n" % pid)
|
|
|
|
ostro.run_ostro()
|
|
|
|
|
|
def verify_dirs(list_of_dirs):
|
|
"""If a directory in the list does not exist, create it."""
|
|
for d in list_of_dirs:
|
|
try:
|
|
if not os.path.exists(d):
|
|
os.makedirs(d)
|
|
except OSError:
|
|
print("Error while verifying: " + d)
|
|
sys.exit(2)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Configuration
|
|
try:
|
|
config = Config()
|
|
logger = get_logger("ostro_daemon")
|
|
config_status = config.configure()
|
|
if config_status != "success":
|
|
print(config_status)
|
|
sys.exit(2)
|
|
|
|
# Verify directories
|
|
dirs_list = [config.logging_loc, config.resource_log_loc,
|
|
config.app_log_loc, os.path.dirname(config.process)]
|
|
verify_dirs(dirs_list)
|
|
|
|
# Start daemon process
|
|
daemon = OstroDaemon(config.priority, config.process, logger)
|
|
|
|
exit_code = {
|
|
'start': daemon.start,
|
|
'stop': daemon.stop,
|
|
'restart': daemon.restart,
|
|
'status': daemon.status,
|
|
}[config.command]()
|
|
exit_code = exit_code or 0
|
|
|
|
except Exception:
|
|
print(traceback.format_exc())
|
|
exit_code = 2
|
|
|
|
sys.exit(int(exit_code))
|