Upgrades, show appropriate error if nailgun isn't running
Show a message to user for what to do if nailgun isn't running when user starts the upgrade. Change-Id: Iaabd281c43369884192fc34c85a293b70a9052ac Closes-bug: #1366848
This commit is contained in:
parent
7683df5722
commit
d97c8f5e4c
@ -17,6 +17,7 @@
|
||||
import abc
|
||||
import logging
|
||||
|
||||
import requests
|
||||
import six
|
||||
|
||||
from fuel_upgrade import errors
|
||||
@ -55,7 +56,13 @@ class CheckNoRunningTasks(BaseBeforeUpgradeChecker):
|
||||
running tasks
|
||||
"""
|
||||
logger.info('Check nailgun tasks')
|
||||
tasks = self.nailgun_client.get_tasks()
|
||||
|
||||
try:
|
||||
tasks = self.nailgun_client.get_tasks()
|
||||
except requests.ConnectionError:
|
||||
raise errors.NailgunIsNotRunningError(
|
||||
'Cannot connect to rest api service')
|
||||
|
||||
logger.debug('Nailgun tasks {0}'.format(tasks))
|
||||
|
||||
running_tasks = filter(
|
||||
|
@ -64,6 +64,8 @@ def handle_exception(exc):
|
||||
print(messages.docker_is_dead)
|
||||
elif isinstance(exc, errors.UpgradeVerificationError):
|
||||
print(messages.health_checker_failed)
|
||||
elif isinstance(exc, errors.NailgunIsNotRunningError):
|
||||
print(messages.nailgun_is_not_running)
|
||||
|
||||
sys.exit(-1)
|
||||
|
||||
|
@ -75,3 +75,7 @@ class WrongVersionError(FuelUpgradeException):
|
||||
|
||||
class UnsupportedActionTypeError(FuelUpgradeException):
|
||||
pass
|
||||
|
||||
|
||||
class NailgunIsNotRunningError(FuelUpgradeException):
|
||||
pass
|
||||
|
@ -37,6 +37,15 @@ https://bugs.launchpad.net/fuel/+bug/1359725
|
||||
"""
|
||||
|
||||
|
||||
nailgun_is_not_running = """
|
||||
REST API service (nailgun) is not running. Unable to verify that
|
||||
there are no running tasks.
|
||||
|
||||
Use `--no-check` as a parameter for upgrade script to skip all
|
||||
pre-upgrade checks.
|
||||
"""
|
||||
|
||||
|
||||
health_checker_failed = """
|
||||
Couldn't start some of the services, try to run upgrade again.
|
||||
"""
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
import mock
|
||||
|
||||
import requests
|
||||
|
||||
from fuel_upgrade.before_upgrade_checker import CheckFreeSpace
|
||||
from fuel_upgrade.before_upgrade_checker import CheckNoRunningTasks
|
||||
from fuel_upgrade.before_upgrade_checker import CheckUpgradeVersions
|
||||
@ -56,6 +58,17 @@ class TestCheckNoRunningTasks(BaseTestCase):
|
||||
checker.check()
|
||||
self.called_once(get_tasks_mock)
|
||||
|
||||
@mock.patch('fuel_upgrade.before_upgrade_checker.NailgunClient.get_tasks',
|
||||
side_effect=requests.ConnectionError(''))
|
||||
def test_check_raises_error_if_nailgun_is_not_running(
|
||||
self, get_tasks_mock):
|
||||
checker = CheckNoRunningTasks(self.config)
|
||||
self.assertRaisesRegexp(
|
||||
errors.NailgunIsNotRunningError,
|
||||
'Cannot connect to rest api service',
|
||||
checker.check)
|
||||
self.called_once(get_tasks_mock)
|
||||
|
||||
|
||||
@mock.patch('fuel_upgrade.before_upgrade_checker.utils.find_mount_point',
|
||||
side_effect=['/var', '/var', '/etc'])
|
||||
|
Loading…
Reference in New Issue
Block a user