diff --git a/tackerclient/osc/v1/vnfpkgm/vnf_package.py b/tackerclient/osc/v1/vnfpkgm/vnf_package.py index 7c1673a7..43d9306e 100644 --- a/tackerclient/osc/v1/vnfpkgm/vnf_package.py +++ b/tackerclient/osc/v1/vnfpkgm/vnf_package.py @@ -150,12 +150,12 @@ class ListVnfPackage(command.Lister): lambda x, y: x + (' ' if y.isupper() else '') + y, field).title() def get_attributes(self, extra_fields=None, all_fields=False, - exclude_fields=None): + exclude_fields=None, exclude_default=False): fields = ['id', 'vnfProductName', 'onboardingState', - 'usageState', 'operationalState'] + 'usageState', 'operationalState', '_links'] complex_fields = ['checksum', 'softwareImages', 'userDefinedData'] simple_fields = ['vnfdVersion', 'vnfProvider', 'vnfSoftwareVersion', - 'vnfdId', '_links'] + 'vnfdId'] if extra_fields: fields.extend(extra_fields) @@ -167,6 +167,9 @@ class ListVnfPackage(command.Lister): fields.extend(complex_fields) fields.extend(simple_fields) + if exclude_default: + fields.extend(simple_fields) + attrs = [] for field in fields: if field == '_links': @@ -182,6 +185,7 @@ class ListVnfPackage(command.Lister): extra_fields = [] exclude_fields = [] all_fields = False + exclude_default = False if parsed_args.filter: _params['filter'] = parsed_args.filter if parsed_args.fields: @@ -195,6 +199,7 @@ class ListVnfPackage(command.Lister): exclude_fields.extend(fields) if parsed_args.exclude_default: _params['exclude_default'] = None + exclude_default = True if parsed_args.all_fields: _params['all_fields'] = None all_fields = True @@ -202,8 +207,8 @@ class ListVnfPackage(command.Lister): client = self.app.client_manager.tackerclient data = client.list_vnf_packages(**_params) headers, columns = tacker_osc_utils.get_column_definitions( - self.get_attributes(extra_fields, all_fields, exclude_fields), - long_listing=True) + self.get_attributes(extra_fields, all_fields, exclude_fields, + exclude_default), long_listing=True) return (headers, (utils.get_dict_properties( s, columns, formatters=formatters, diff --git a/tackerclient/tests/unit/osc/v1/test_vnf_package.py b/tackerclient/tests/unit/osc/v1/test_vnf_package.py index c48eaaaa..cff4a2fe 100644 --- a/tackerclient/tests/unit/osc/v1/test_vnf_package.py +++ b/tackerclient/tests/unit/osc/v1/test_vnf_package.py @@ -123,12 +123,12 @@ class TestListVnfPackage(TestVnfPackage): count=3, onboarded_vnf_package=onboarded_vnf_package) def get_list_columns(self, all_fields=False, exclude_fields=None, - extra_fields=None): + extra_fields=None, exclude_default=False): columns = ['Id', 'Vnf Product Name', 'Onboarding State', 'Usage State', - 'Operational State'] + 'Operational State', 'Links'] complex_columns = ['Checksum', 'Software Images', 'User Defined Data'] - simple_columns = ['Vnfd Version', 'Vnf Provider', 'Vnfd Id', 'Links', + simple_columns = ['Vnfd Version', 'Vnf Provider', 'Vnfd Id', 'Vnf Software Version'] if extra_fields: @@ -141,6 +141,9 @@ class TestListVnfPackage(TestVnfPackage): columns.extend(complex_columns) columns.extend(simple_columns) + if exclude_default: + columns.extend(simple_columns) + return columns def _get_mock_response_for_list_vnf_packages( @@ -164,7 +167,7 @@ class TestListVnfPackage(TestVnfPackage): expected_data.append(vnf_package_fakes.get_vnf_package_data( vnf_package_obj, columns=columns, list_action=True)) self.assertCountEqual(self.get_list_columns(), actual_columns) - self.assertCountEqual(expected_data, list(data)) + self.assertListItemsEqual(expected_data, list(data)) @ddt.data('all_fields', 'exclude_default') def test_take_action(self, arg): @@ -178,7 +181,7 @@ class TestListVnfPackage(TestVnfPackage): actual_columns, data = self.list_vnf_package.take_action(parsed_args) expected_data = [] - kwargs = {arg: True} if arg == 'all_fields' else {} + kwargs = {arg: True} headers, columns = tacker_osc_utils.get_column_definitions( self.list_vnf_package.get_attributes(**kwargs), long_listing=True) @@ -223,7 +226,7 @@ class TestListVnfPackage(TestVnfPackage): exclude_fields=['Software Images', 'Checksum', 'User Defined Data']) self.assertCountEqual(expected_columns, actual_columns) - self.assertCountEqual(expected_data, list(data)) + self.assertListItemsEqual(expected_data, list(data)) @ddt.data((['--all_fields', '--fields', 'softwareImages'], [('all_fields', True), ('fields', 'softwareImages')]), @@ -255,7 +258,8 @@ class TestListVnfPackage(TestVnfPackage): expected_data = [] headers, columns = tacker_osc_utils.get_column_definitions( self.list_vnf_package.get_attributes( - extra_fields=['softwareImages', 'checksum']), + extra_fields=['softwareImages', 'checksum'], + exclude_default=True), long_listing=True) for vnf_package_obj in updated_vnf_packages['vnf_packages']: @@ -264,7 +268,8 @@ class TestListVnfPackage(TestVnfPackage): exclude_default=True)) self.assertCountEqual(self.get_list_columns( - extra_fields=['Software Images', 'Checksum']), + extra_fields=['Software Images', 'Checksum'], + exclude_default=True), actual_columns) self.assertListItemsEqual(expected_data, list(data))