neutron/neutron/tests/functional/cmd/test_status.py

64 lines
2.8 KiB
Python

# Copyright (c) 2019 Red Hat, Inc.
# 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.
from neutron_lib import exceptions
from oslo_upgradecheck import upgradecheck
from neutron.agent.linux import utils
from neutron.tests.functional import base
class StatusTest(base.BaseLoggingTestCase):
def test_neutron_status_cli(self):
"""This test runs "neutron-status upgrade check" command and check if
stdout contains header "Upgrade Check Results". It also checks if
stderr is empty.
Example output from this CLI tool looks like:
+----------------------------------------------------------------+
| Upgrade Check Results |
+----------------------------------------------------------------+
| Check: Worker counts configured |
| Result: Warning |
| Details: The default number of workers has changed. Please see |
| release notes for the new values, but it is strongly |
| encouraged for deployers to manually set the values for |
| api_workers and rpc_workers. |
+----------------------------------------------------------------+
Error codes which migh be returned by this command:
- Code.SUCCESS,
- Code.WARNING,
- Code.FAILURE
are all accepted as we don't want to test here if there are any
potential problems with upgrade or all is fine. This depends on
deployment's configuration.
"""
expected_result_title = "Upgrade Check Results"
try:
stdout, stderr = utils.execute(
cmd=["neutron-status", "upgrade", "check"],
extra_ok_codes=[upgradecheck.Code.SUCCESS,
upgradecheck.Code.WARNING,
upgradecheck.Code.FAILURE],
return_stderr=True)
self.assertEqual('', stderr)
self.assertTrue(expected_result_title in stdout)
except exceptions.ProcessExecutionError as error:
self.fail("neutron-status upgrade check command failed to run. "
"Error: %s" % error)