792ce5249e
Murano Dashboard uses Murano Client to fetch data from Murano. In order to improve log browsing for deployments in Murano Dashboard, which requires showing all deployments for all environments, the deployments API had to be changed to support this. Includes client support for OSC as well as old murano client. Change-Id: I80c02a8cfd82260f097474bb512f693aa6734655 Partially-implements: blueprint improve-deployment-log-browsing Depends-On: I1b6a313af1a0c4aa57bd4e6f51da92b396b35165
83 lines
3.3 KiB
Python
83 lines
3.3 KiB
Python
# 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 muranoclient.osc.v1 import deployment as osc_deployment
|
|
from muranoclient.tests.unit.osc.v1 import fakes
|
|
from muranoclient.v1 import deployments as api_deployment
|
|
|
|
DEPLOYMENT_COLUMNS = ('id', 'state', 'created', 'updated', 'finished')
|
|
DEPLOYMENT_DATA = ('xyz123', 'success', '2016-06-25T12:21:37',
|
|
'2016-06-25T12:21:47', '2016-06-25T12:21:47')
|
|
ALL_DEPLOYMENT_DATA = (('abc123', 'success', '2016-06-25T12:21:37',
|
|
'2016-06-25T12:21:47', '2016-06-25T12:21:47'),
|
|
('xyz456', 'success', '2017-01-31T11:22:35',
|
|
'2017-01-31T11:22:47', '2017-01-31T11:22:47'))
|
|
|
|
|
|
class TestDeployment(fakes.TestApplicationCatalog):
|
|
def setUp(self):
|
|
super(TestDeployment, self).setUp()
|
|
self.deployment_mock = self.app.client_manager.application_catalog.\
|
|
deployments
|
|
self.deployment_mock.reset_mock()
|
|
self.environment_mock = self.app.client_manager.application_catalog.\
|
|
environments
|
|
|
|
|
|
class TestListDeployment(TestDeployment):
|
|
def setUp(self):
|
|
super(TestListDeployment, self).setUp()
|
|
deployment_info = dict(zip(DEPLOYMENT_COLUMNS, DEPLOYMENT_DATA))
|
|
self.deployment_mock.list.return_value = \
|
|
[api_deployment.Deployment(None, deployment_info)]
|
|
|
|
# Command to test
|
|
self.cmd = osc_deployment.ListDeployment(self.app, None)
|
|
|
|
@mock.patch('osc_lib.utils.get_item_properties')
|
|
def test_deployment_list(self, mock_util):
|
|
arglist = ['xyz123']
|
|
verifylist = [('id', 'xyz123')]
|
|
mock_util.return_value = DEPLOYMENT_DATA
|
|
|
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
|
|
columns, data = self.cmd.take_action(parsed_args)
|
|
|
|
# Check that columns are correct
|
|
expected_columns = [c.title() for c in DEPLOYMENT_COLUMNS]
|
|
self.assertEqual(expected_columns, columns)
|
|
|
|
# Check that data is correct
|
|
expected_data = [DEPLOYMENT_DATA]
|
|
self.assertEqual(expected_data, data)
|
|
|
|
@mock.patch('osc_lib.utils.get_item_properties', autospec=True)
|
|
def test_deployment_list_all_environments(self, mock_util):
|
|
arglist = ['--all-environments']
|
|
verifylist = [('id', None), ('all_environments', True)]
|
|
mock_util.return_value = ALL_DEPLOYMENT_DATA
|
|
|
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
|
|
columns, data = self.cmd.take_action(parsed_args)
|
|
|
|
# Check that columns are correct
|
|
expected_columns = [c.title() for c in DEPLOYMENT_COLUMNS]
|
|
self.assertEqual(expected_columns, columns)
|
|
|
|
# Check that data is correct
|
|
expected_data = [ALL_DEPLOYMENT_DATA]
|
|
self.assertEqual(expected_data, data)
|