Merge "Add multiple engine workers"
This commit is contained in:
commit
3d9f2b2245
@ -158,6 +158,11 @@ function configure_murano {
|
||||
|
||||
# Configure Murano API URL
|
||||
iniset $MURANO_CONF_FILE murano url "http://127.0.0.1:8082"
|
||||
|
||||
# Configure the number of engine workers
|
||||
if [[ -n "$MURANO_ENGINE_WORKERS" ]]; then
|
||||
iniset $MURANO_CONF_FILE engine workers $MURANO_ENGINE_WORKERS
|
||||
fi
|
||||
}
|
||||
|
||||
# install_murano_apps() - Install Murano apps from repository murano-apps, if required
|
||||
|
@ -28,6 +28,7 @@ else:
|
||||
|
||||
import sys
|
||||
|
||||
from oslo_concurrency import processutils
|
||||
from oslo_log import log as logging
|
||||
from oslo_service import service
|
||||
|
||||
@ -49,9 +50,11 @@ def main():
|
||||
config.parse_args()
|
||||
|
||||
logging.setup(CONF, 'murano')
|
||||
launcher = service.ServiceLauncher(CONF)
|
||||
launcher.launch_service(engine.EngineService())
|
||||
|
||||
workers = CONF.engine.workers
|
||||
if not workers:
|
||||
workers = processutils.get_worker_count()
|
||||
launcher = service.launch(CONF,
|
||||
engine.EngineService(), workers=workers)
|
||||
launcher.wait()
|
||||
except RuntimeError as e:
|
||||
sys.stderr.write("ERROR: %s\n" % e)
|
||||
|
@ -199,6 +199,8 @@ engine_opts = [
|
||||
cfg.IntOpt('agent_timeout', default=3600,
|
||||
help=_('Time for waiting for a response from murano agent '
|
||||
'during the deployment')),
|
||||
cfg.IntOpt('workers',
|
||||
help=_('Number of workers'))
|
||||
]
|
||||
|
||||
# TODO(sjmc7): move into engine opts?
|
||||
|
0
murano/tests/unit/cmd/__init__.py
Normal file
0
murano/tests/unit/cmd/__init__.py
Normal file
56
murano/tests/unit/cmd/test_engine_workers.py
Normal file
56
murano/tests/unit/cmd/test_engine_workers.py
Normal file
@ -0,0 +1,56 @@
|
||||
# Copyright (c) 2016 NEC Corporation. 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.
|
||||
|
||||
import mock
|
||||
|
||||
from oslo_concurrency import processutils
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
|
||||
from murano.cmd import engine
|
||||
from murano.common import config
|
||||
from murano.tests.unit import base
|
||||
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
class TestEngineWorkers(base.MuranoTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestEngineWorkers, self).setUp()
|
||||
|
||||
@mock.patch.object(config, 'parse_args')
|
||||
@mock.patch.object(logging, 'setup')
|
||||
@mock.patch('oslo_service.service.launch')
|
||||
def test_workers_default(self, launch, setup, parse_args):
|
||||
engine.main()
|
||||
launch.assert_called_once_with(mock.ANY, mock.ANY,
|
||||
workers=processutils.get_worker_count())
|
||||
|
||||
@mock.patch.object(config, 'parse_args')
|
||||
@mock.patch.object(logging, 'setup')
|
||||
@mock.patch('oslo_service.service.launch')
|
||||
def test_workers_good_setting(self, launch, setup, parse_args):
|
||||
self.override_config("workers", 8, "engine")
|
||||
engine.main()
|
||||
launch.assert_called_once_with(mock.ANY, mock.ANY, workers=8)
|
||||
|
||||
@mock.patch.object(config, 'parse_args')
|
||||
@mock.patch.object(logging, 'setup')
|
||||
@mock.patch('oslo_service.service.launch')
|
||||
def test_workers_zero_setting(self, launch, setup, parse_args):
|
||||
self.override_config("workers", 0, "engine")
|
||||
engine.main()
|
||||
launch.assert_called_once_with(mock.ANY, mock.ANY,
|
||||
workers=processutils.get_worker_count())
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
features:
|
||||
- Add multiple engine workers
|
||||
issues:
|
||||
- Enabling multiple workers might break workflows under BSD and Windows systems
|
||||
|
Loading…
Reference in New Issue
Block a user