diff --git a/doc/source/users/proxies/cluster.rst b/doc/source/users/proxies/cluster.rst index 4d1d1e79..9951478f 100644 --- a/doc/source/users/proxies/cluster.rst +++ b/doc/source/users/proxies/cluster.rst @@ -134,6 +134,7 @@ Receiver Operations .. autoclass:: openstack.cluster.v1._proxy.Proxy .. automethod:: openstack.cluster.v1._proxy.Proxy.create_receiver + .. automethod:: openstack.cluster.v1._proxy.Proxy.update_receiver .. automethod:: openstack.cluster.v1._proxy.Proxy.delete_receiver .. automethod:: openstack.cluster.v1._proxy.Proxy.get_receiver .. automethod:: openstack.cluster.v1._proxy.Proxy.find_receiver diff --git a/openstack/cluster/v1/_proxy.py b/openstack/cluster/v1/_proxy.py index cd8e600d..44778a62 100644 --- a/openstack/cluster/v1/_proxy.py +++ b/openstack/cluster/v1/_proxy.py @@ -900,6 +900,18 @@ class Proxy(proxy2.BaseProxy): """ return self._create(_receiver.Receiver, **attrs) + def update_receiver(self, receiver, **attrs): + """Update a receiver. + + :param receiver: The value can be either the name or ID of a receiver + or a :class:`~openstack.cluster.v1.receiver.Receiver` instance. + :param attrs: The attributes to update on the receiver parameter. + Valid attribute names include ``name``, ``action`` and ``params``. + :returns: The updated receiver. + :rtype: :class:`~openstack.cluster.v1.receiver.Receiver` + """ + return self._update(_receiver.Receiver, receiver, **attrs) + def delete_receiver(self, receiver, ignore_missing=True): """Delete a receiver. diff --git a/openstack/cluster/v1/receiver.py b/openstack/cluster/v1/receiver.py index af9f1367..d6940048 100644 --- a/openstack/cluster/v1/receiver.py +++ b/openstack/cluster/v1/receiver.py @@ -24,8 +24,11 @@ class Receiver(resource.Resource): allow_list = True allow_get = True allow_create = True + allow_update = True allow_delete = True + patch_update = True + _query_mapping = resource.QueryParameters( 'name', 'type', 'cluster_id', 'action', 'sort', 'global_project', user_id='user') diff --git a/openstack/tests/unit/cluster/v1/test_proxy.py b/openstack/tests/unit/cluster/v1/test_proxy.py index c5acde57..3609b59f 100644 --- a/openstack/tests/unit/cluster/v1/test_proxy.py +++ b/openstack/tests/unit/cluster/v1/test_proxy.py @@ -467,6 +467,9 @@ class TestClusterProxy(test_proxy_base2.TestProxyBase): def test_receiver_create(self): self.verify_create(self.proxy.create_receiver, receiver.Receiver) + def test_receiver_update(self): + self.verify_update(self.proxy.update_receiver, receiver.Receiver) + def test_receiver_delete(self): self.verify_delete(self.proxy.delete_receiver, receiver.Receiver, False) diff --git a/openstack/tests/unit/cluster/v1/test_receiver.py b/openstack/tests/unit/cluster/v1/test_receiver.py index b566c797..bac16f00 100644 --- a/openstack/tests/unit/cluster/v1/test_receiver.py +++ b/openstack/tests/unit/cluster/v1/test_receiver.py @@ -53,7 +53,7 @@ class TestReceiver(testtools.TestCase): self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_get) - self.assertFalse(sot.allow_update) + self.assertTrue(sot.allow_update) self.assertTrue(sot.allow_delete) self.assertTrue(sot.allow_list)