diff --git a/openstack/identity/v3/_proxy.py b/openstack/identity/v3/_proxy.py index 8a3a272e..d62495ab 100644 --- a/openstack/identity/v3/_proxy.py +++ b/openstack/identity/v3/_proxy.py @@ -17,6 +17,7 @@ from openstack.identity.v3 import group from openstack.identity.v3 import policy from openstack.identity.v3 import project from openstack.identity.v3 import service +from openstack.identity.v3 import trust from openstack.identity.v3 import user from openstack import proxy @@ -262,3 +263,21 @@ class Proxy(proxy.BaseProxy): def update_user(self, **data): return user.User(data).update(self.session) + + def create_trust(self, **data): + return trust.Trust(data).create(self.session) + + def delete_trust(self, value, ignore_missing=True): + self._delete(trust.Trust, value, ignore_missing) + + def find_trust(self, name_or_id): + return trust.Trust.find(self.session, name_or_id) + + def get_trust(self, **data): + return trust.Trust(data).get(self.session) + + def list_trusts(self): + return trust.Trust.list(self.session) + + def update_trust(self, **data): + return trust.Trust(data).update(self.session) diff --git a/openstack/identity/v3/trust.py b/openstack/identity/v3/trust.py index b89705df..a41a0360 100644 --- a/openstack/identity/v3/trust.py +++ b/openstack/identity/v3/trust.py @@ -55,3 +55,5 @@ class Trust(resource.Resource): #: trustor must already be granted these roles in the project referenced #: by the ``project_id`` attribute. *Type: list* roles = resource.prop('roles') + #: Redelegation count + redelegation_count = resource.prop('redelegation_count') diff --git a/openstack/tests/unit/identity/v3/test_proxy.py b/openstack/tests/unit/identity/v3/test_proxy.py index b556f56f..42a1816b 100644 --- a/openstack/tests/unit/identity/v3/test_proxy.py +++ b/openstack/tests/unit/identity/v3/test_proxy.py @@ -18,6 +18,7 @@ from openstack.identity.v3 import group from openstack.identity.v3 import policy from openstack.identity.v3 import project from openstack.identity.v3 import service +from openstack.identity.v3 import trust from openstack.identity.v3 import user from openstack.tests.unit import test_proxy_base @@ -240,3 +241,29 @@ class TestIdentityProxy(test_proxy_base.TestProxyBase): def test_user_update(self): self.verify_update('openstack.identity.v3.user.User.update', self.proxy.update_user) + + def test_trust_create(self): + self.verify_create('openstack.identity.v3.trust.Trust.create', + self.proxy.create_trust) + + def test_trust_delete(self): + self.verify_delete2(trust.Trust, self.proxy.delete_trust, False) + + def test_trust_delete_ignore(self): + self.verify_delete2(trust.Trust, self.proxy.delete_trust, True) + + def test_trust_find(self): + self.verify_find('openstack.identity.v3.trust.Trust.find', + self.proxy.find_trust) + + def test_trust_get(self): + self.verify_get('openstack.identity.v3.trust.Trust.get', + self.proxy.get_trust) + + def test_trust_list(self): + self.verify_list('openstack.identity.v3.trust.Trust.list', + self.proxy.list_trusts) + + def test_trust_update(self): + self.verify_update('openstack.identity.v3.trust.Trust.update', + self.proxy.update_trust) diff --git a/openstack/tests/unit/identity/v3/test_trust.py b/openstack/tests/unit/identity/v3/test_trust.py index 41ee6966..62b17ccc 100644 --- a/openstack/tests/unit/identity/v3/test_trust.py +++ b/openstack/tests/unit/identity/v3/test_trust.py @@ -23,6 +23,7 @@ EXAMPLE = { 'trustee_user_id': '2', 'trustor_user_id': '3', 'roles': [{'name': 'test-role'}], + 'redelegation_count': '0', } @@ -49,3 +50,4 @@ class TestTrust(testtools.TestCase): self.assertEqual(EXAMPLE['trustee_user_id'], sot.trustee_user_id) self.assertEqual(EXAMPLE['trustor_user_id'], sot.trustor_user_id) self.assertEqual(EXAMPLE['roles'], sot.roles) + self.assertEqual(EXAMPLE['redelegation_count'], sot.redelegation_count)