From 7f93d8cc888b5397614b52ebd26ffc742d6f7072 Mon Sep 17 00:00:00 2001
From: Huanxuan Ao <huanxuan.ao@easystack.cn>
Date: Thu, 4 Aug 2016 11:20:44 +0800
Subject: [PATCH] Show "target_project_id" attribute properly for network rbac
 object

According to the code in SDK:
https://github.com/openstack/python-openstacksdk/blob/master/openstack/network/v2/rbac_policy.py#L34
we can see the conlumn of "target_tenant" should be
"targer_project_id" but not "target_project". It is
the reason why could not show the "target_project"
in OSC, so this patch fix it.

Before this change:
(openstack) network rbac show b74fd644-e057-4d44-8ae1-7ca9967ea1e1
+----------------+--------------------------------------+
| Field          | Value                                |
+----------------+--------------------------------------+
| action         | access_as_shared                     |
| id             | b74fd644-e057-4d44-8ae1-7ca9967ea1e1 |
| object_id      | 8735b57f-606a-4f65-9902-2052a6d2a66d |
| object_type    | network                              |
| project_id     | 01c0ba43101b4080a52a5f79a55c56ff     |
| target_project |                                      |
+----------------+--------------------------------------+
After this change:
(openstack) network rbac show b74fd644-e057-4d44-8ae1-7ca9967ea1e1
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| action            | access_as_shared                     |
| id                | b74fd644-e057-4d44-8ae1-7ca9967ea1e1 |
| object_id         | 8735b57f-606a-4f65-9902-2052a6d2a66d |
| object_type       | network                              |
| project_id        | 01c0ba43101b4080a52a5f79a55c56ff     |
| target_project_id | c7ab4d2ea9e1487095a8ca24ea44ef38     |
+-------------------+--------------------------------------+

Change-Id: I53df127bfc3e43288c6afecdf872e6101b94a658
Closes-Bug: #1608903
---
 functional/tests/network/v2/test_network_rbac.py      | 9 +--------
 openstackclient/network/v2/network_rbac.py            | 2 +-
 openstackclient/tests/network/v2/fakes.py             | 2 +-
 openstackclient/tests/network/v2/test_network_rbac.py | 4 ++--
 4 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/functional/tests/network/v2/test_network_rbac.py b/functional/tests/network/v2/test_network_rbac.py
index e7e358583d..1dbc246bf2 100644
--- a/functional/tests/network/v2/test_network_rbac.py
+++ b/functional/tests/network/v2/test_network_rbac.py
@@ -12,8 +12,6 @@
 
 import uuid
 
-import testtools
-
 from functional.common import test
 
 
@@ -57,18 +55,13 @@ class NetworkRBACTests(test.TestCase):
         raw_output = self.openstack('network rbac show ' + self.ID + opts)
         self.assertEqual(self.ID + "\n", raw_output)
 
-    # TODO(Huanxuan Ao): This test can pass after bug
-    # https://bugs.launchpad.net/python-openstackclient/+bug/1608903 fixed.
-    @testtools.skip(
-        'Skip because of the bug '
-        'https://bugs.launchpad.net/python-openstackclient/+bug/1608903')
     def test_network_rbac_set(self):
         opts = self.get_opts(self.FIELDS)
         project_id = self.openstack(
             'project create ' + self.PROJECT_NAME + opts)
         self.openstack('network rbac set ' + self.ID +
                        ' --target-project ' + self.PROJECT_NAME)
-        opts = self.get_opts(['target_project'])
+        opts = self.get_opts(['target_project_id'])
         raw_output_rbac = self.openstack('network rbac show ' + self.ID + opts)
         raw_output_project = self.openstack(
             'project delete ' + self.PROJECT_NAME)
diff --git a/openstackclient/network/v2/network_rbac.py b/openstackclient/network/v2/network_rbac.py
index f4dfd4e734..bb29579f95 100644
--- a/openstackclient/network/v2/network_rbac.py
+++ b/openstackclient/network/v2/network_rbac.py
@@ -33,7 +33,7 @@ def _get_columns(item):
         columns.append('project_id')
     if 'target_tenant' in columns:
         columns.remove('target_tenant')
-        columns.append('target_project')
+        columns.append('target_project_id')
     return tuple(sorted(columns))
 
 
diff --git a/openstackclient/tests/network/v2/fakes.py b/openstackclient/tests/network/v2/fakes.py
index 9182fe553c..ec329f4d0f 100644
--- a/openstackclient/tests/network/v2/fakes.py
+++ b/openstackclient/tests/network/v2/fakes.py
@@ -520,7 +520,7 @@ class FakeNetworkRBAC(object):
                                   loaded=True)
         # Set attributes with special mapping in OpenStack SDK.
         rbac.project_id = rbac_attrs['tenant_id']
-        rbac.target_project = rbac_attrs['target_tenant']
+        rbac.target_project_id = rbac_attrs['target_tenant']
         return rbac
 
     @staticmethod
diff --git a/openstackclient/tests/network/v2/test_network_rbac.py b/openstackclient/tests/network/v2/test_network_rbac.py
index 6255ada706..9250e91b9e 100644
--- a/openstackclient/tests/network/v2/test_network_rbac.py
+++ b/openstackclient/tests/network/v2/test_network_rbac.py
@@ -49,7 +49,7 @@ class TestCreateNetworkRBAC(TestNetworkRBAC):
         'object_id',
         'object_type',
         'project_id',
-        'target_project',
+        'target_project_id',
     )
 
     data = [
@@ -383,7 +383,7 @@ class TestShowNetworkRBAC(TestNetworkRBAC):
         'object_id',
         'object_type',
         'project_id',
-        'target_project',
+        'target_project_id',
     )
 
     data = [