a09064a5d1
Service layer has been simplified by removing abstraction and making the implementation more in line with other OpenStack projects. Moved Heartbeat code out of Service class and into the console scripts. We only need one instance of the Heartbeat Emitter. Cleaned up the WSGI code by making use of the reusable oslo_service.wsgi code. * Added Heartbeat to designate-sink. * Cleaned up and refactored Service layers. * Fixed various bugs e.g. errors on shutdown. * Removed deprecated options host, port etc. * Simplified Heartbeat implementation. Closes-Bug: #1442141 Change-Id: I536b92407bf6ca5bddf4c048909cd13d4e094d26
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
# Copyright 2012 Managed I.T.
|
|
#
|
|
# Author: Kiall Mac Innes <kiall@managedit.ie>
|
|
#
|
|
# 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.
|
|
from oslo_config import cfg
|
|
from oslo_log import log as logging
|
|
from paste import deploy
|
|
|
|
from designate import exceptions
|
|
from designate import service
|
|
from designate import utils
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
|
|
class Service(service.WSGIService):
|
|
def __init__(self):
|
|
super(Service, self).__init__(
|
|
self.wsgi_application,
|
|
self.service_name,
|
|
cfg.CONF['service:api'].listen,
|
|
)
|
|
|
|
def start(self):
|
|
super(Service, self).start()
|
|
|
|
def stop(self, graceful=True):
|
|
super(Service, self).stop(graceful)
|
|
|
|
@property
|
|
def service_name(self):
|
|
return 'api'
|
|
|
|
@property
|
|
def wsgi_application(self):
|
|
api_paste_config = cfg.CONF['service:api'].api_paste_config
|
|
config_paths = utils.find_config(api_paste_config)
|
|
|
|
if len(config_paths) == 0:
|
|
msg = 'Unable to determine appropriate api-paste-config file'
|
|
raise exceptions.ConfigurationError(msg)
|
|
|
|
LOG.info('Using api-paste-config found at: %s', config_paths[0])
|
|
|
|
return deploy.loadapp("config:%s" % config_paths[0], name='osapi_dns')
|