masakari/masakari/__init__.py
Dinesh Bhor 2c4574bfdc Make eventlet hub use a monotonic clock
If system time is adjusted first forward and then backward while a
masakari-engine service is running, then the periodic tasks stops
for the duration of time the system clock was adjusted backward.

This was supposed to be fixed by the following patch to oslo.service
https://review.openstack.org/#/c/286838/ , but the order of imports
in unit tests and production code is different, so masakari services
end up starting with the default eventlet hub, that does not use a
monotonic clock and, thus, is affected by changes of system time.

Testing the change done in the patch is problematic, as it's a
subject of imports order and is not reproduced in functional or
unit tests (oslo_service is always imported earlier than eventlet
hub is initialized, so it just does "the right thing").
The alternative is to make an assertion when services start.

Co-Authored-By: Roman Podoliaka <rpodolyaka@mirantis.com>
Closes-Bug: #1510234
Change-Id: I9d917b3151d9cdf7340a173b5baf98def63c76cd
2017-11-14 07:15:45 +00:00

35 lines
1.1 KiB
Python

# Copyright (c) 2016 NTT Data
# All Rights Reserved.
#
# 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.
"""
:mod:`masakari` -- Cloud IaaS Platform
===================================
.. automodule:: masakari
:platform: Unix
:synopsis: Infrastructure-as-a-Service Cloud platform.
"""
import os
os.environ['EVENTLET_NO_GREENDNS'] = 'yes'
# NOTE(rpodolyaka): import oslo_service first, so that it makes eventlet hub
# use a monotonic clock to avoid issues with drifts of system time (see
# LP 1510234 for details)
import oslo_service # noqa
import eventlet # noqa