def metadata(self, new_meta=None, force_reload=False): """Get metadata and return it :param new_meta: A dictionary containing an updated metadata object. If present the queue metadata will be updated in remote server. If the new_meta is empty, the metadata object will be cleared. :type new_meta: `dict` :param force_reload: Whether to ignored the cached metadata and reload it from the server. :type force_reload: `bool` :returns: The queue metadata. """ req, trans = self.client._request_and_transport() # NOTE(jeffrey4l): Ensure that metadata is cleared when the new_meta # is a empty dict. if new_meta is not None: if req.api.is_supported('queue_set_metadata'): core.queue_set_metadata(trans, req, self._name, new_meta) else: core.queue_create(trans, req, self._name, metadata=new_meta) self._metadata = new_meta # TODO(flaper87): Cache with timeout if self._metadata and not force_reload: return self._metadata self._metadata = core.queue_get_metadata(trans, req, self._name) return self._metadata
def test_queue_create(self): with mock.patch.object(self.transport, 'send', autospec=True) as send_method: send_method.return_value = response.Response(None, None) req = request.Request() core.queue_create(self.transport, req, 'test') self.assertIn('queue_name', req.params)
def ensure_exists(self): """Ensures a queue exists This method is not race safe, the queue could've been deleted right after it was called. """ req, trans = self.client._request_and_transport() if req.api.is_supported('queue_set_metadata'): core.queue_create(trans, req, self._name)
def ensure_exists(self, force_create=False): """Ensures a queue exists This method is not race safe, the queue could've been deleted right after it was called. """ req, trans = self.client._request_and_transport() if force_create or self.client.api_version < 1.1: core.queue_create(trans, req, self._name)