From 46157031b588b4bda03f8ddbb9c2e2fadbb47af5 Mon Sep 17 00:00:00 2001 From: Julius Unverfehrt Date: Thu, 16 Feb 2023 16:37:57 +0100 Subject: [PATCH] Pull request #59: adjust response headers Merge in RR/pyinfra from RED-6118-multi-tenancy-patch to master Squashed commit of the following: commit 02e471622e59baf5d2bb5c61980cea43ca1c6d61 Author: Julius Unverfehrt Date: Thu Feb 16 16:36:19 2023 +0100 move acknowledgment function to outer scope commit f9efffd8e6d90d5e371c66574b1afe361a1da146 Author: Julius Unverfehrt Date: Thu Feb 16 16:04:07 2023 +0100 adjust response headers - change response formatting: only forward the request message headers instead of all properties - adjust build script to only increase patch version on master push --- .../src/main/resources/scripts/git-tag.sh | 6 ++--- pyinfra/queue/queue_manager.py | 22 +++++++++++-------- pyproject.toml | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/bamboo-specs/src/main/resources/scripts/git-tag.sh b/bamboo-specs/src/main/resources/scripts/git-tag.sh index 33631ac..15722c7 100755 --- a/bamboo-specs/src/main/resources/scripts/git-tag.sh +++ b/bamboo-specs/src/main/resources/scripts/git-tag.sh @@ -53,8 +53,8 @@ if [[ $bamboo_planRepository_branchName == "master" ]] then if check_poetry_version then - echo "updating version number by one minor increment" - poetry version minor + echo "updating version number by one patch increment" + poetry version patch fi elif [[ $bamboo_planRepository_branchName =~ ^(release/) ]] then @@ -67,7 +67,7 @@ else if check_poetry_version then echo "updating version number by one prerelease increment" - poetry version $(poetry version -s)-dev +# poetry version $(poetry version -s)-dev fi fi diff --git a/pyinfra/queue/queue_manager.py b/pyinfra/queue/queue_manager.py index 4210728..f091acc 100644 --- a/pyinfra/queue/queue_manager.py +++ b/pyinfra/queue/queue_manager.py @@ -161,7 +161,18 @@ class QueueManager: self.logger.debug("fetching result from callback") return future.result() + def acknowledge_message_and_publish_response(frame, properties, response_body): + response_properties = pika.BasicProperties(headers=properties.headers) if properties.headers else None + self._channel.basic_publish( + "", self._output_queue, json.dumps(response_body).encode(), response_properties + ) + self.logger.info( + "Result published, acknowledging incoming message with delivery_tag %s", frame.delivery_tag + ) + self._channel.basic_ack(frame.delivery_tag) + def callback(_channel, frame, properties, body): + self.logger.info("Received message from queue with delivery_tag %s", frame.delivery_tag) self.logger.debug("Message headers: %s.", properties.headers) @@ -181,18 +192,11 @@ class QueueManager: try: callback_result = process_message_body_and_await_result(json.loads(body)) - if callback_result is not None: + if callback_result: self.logger.info( "Processed message with delivery_tag %s, publishing result to result-queue", frame.delivery_tag ) - self._channel.basic_publish( - "", self._output_queue, json.dumps(callback_result).encode(), properties - ) - - self.logger.info( - "Result published, acknowledging incoming message with delivery_tag %s", frame.delivery_tag - ) - self._channel.basic_ack(frame.delivery_tag) + acknowledge_message_and_publish_response(frame, properties, callback_result) else: self.logger.info("Processed message with delivery_tag %s, declining message", frame.delivery_tag) self._channel.basic_nack(frame.delivery_tag, requeue=False) diff --git a/pyproject.toml b/pyproject.toml index 1671c47..54dd25e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyinfra" -version = "1.2.0" +version = "1.4.1" description = "" authors = ["Francisco Schulz "] license = "All rights reseverd"