|
21 | 21 |
|
22 | 22 | from openstackclient.i18n import _ |
23 | 23 | from openstackclient.identity import common as identity_common |
| 24 | +from openstackclient.network import sdk_utils |
24 | 25 |
|
25 | 26 |
|
26 | 27 | LOG = logging.getLogger(__name__) |
27 | 28 |
|
28 | 29 |
|
29 | 30 | def _get_columns(item): |
30 | | - columns = list(item.keys()) |
31 | | - if 'tenant_id' in columns: |
32 | | - columns.remove('tenant_id') |
33 | | - columns.append('project_id') |
34 | | - if 'target_tenant' in columns: |
35 | | - columns.remove('target_tenant') |
36 | | - columns.append('target_project_id') |
37 | | - return tuple(sorted(columns)) |
| 31 | + column_map = { |
| 32 | + 'target_tenant': 'target_project_id', |
| 33 | + 'tenant_id': 'project_id', |
| 34 | + } |
| 35 | + return sdk_utils.get_osc_show_columns_for_sdk_resource(item, column_map) |
38 | 36 |
|
39 | 37 |
|
40 | 38 | def _get_attrs(client_manager, parsed_args): |
@@ -70,6 +68,8 @@ def _get_attrs(client_manager, parsed_args): |
70 | 68 | return attrs |
71 | 69 |
|
72 | 70 |
|
| 71 | +# TODO(abhiraut): Use the SDK resource mapped attribute names once the |
| 72 | +# OSC minimum requirements include SDK 1.0. |
73 | 73 | class CreateNetworkRBAC(command.ShowOne): |
74 | 74 | _description = _("Create network RBAC policy") |
75 | 75 |
|
@@ -122,9 +122,9 @@ def take_action(self, parsed_args): |
122 | 122 | client = self.app.client_manager.network |
123 | 123 | attrs = _get_attrs(self.app.client_manager, parsed_args) |
124 | 124 | obj = client.create_rbac_policy(**attrs) |
125 | | - columns = _get_columns(obj) |
| 125 | + display_columns, columns = _get_columns(obj) |
126 | 126 | data = utils.get_item_properties(obj, columns) |
127 | | - return columns, data |
| 127 | + return display_columns, data |
128 | 128 |
|
129 | 129 |
|
130 | 130 | class DeleteNetworkRBAC(command.Command): |
@@ -185,6 +185,8 @@ def take_action(self, parsed_args): |
185 | 185 | ) for s in data)) |
186 | 186 |
|
187 | 187 |
|
| 188 | +# TODO(abhiraut): Use the SDK resource mapped attribute names once the |
| 189 | +# OSC minimum requirements include SDK 1.0. |
188 | 190 | class SetNetworkRBAC(command.Command): |
189 | 191 | _description = _("Set network RBAC policy properties") |
190 | 192 |
|
@@ -242,6 +244,6 @@ def take_action(self, parsed_args): |
242 | 244 | client = self.app.client_manager.network |
243 | 245 | obj = client.find_rbac_policy(parsed_args.rbac_policy, |
244 | 246 | ignore_missing=False) |
245 | | - columns = _get_columns(obj) |
| 247 | + display_columns, columns = _get_columns(obj) |
246 | 248 | data = utils.get_item_properties(obj, columns) |
247 | | - return columns, data |
| 249 | + return display_columns, data |
0 commit comments