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 <julius.unverfehrt@iqser.com>
Date:   Thu Feb 16 16:36:19 2023 +0100

    move acknowledgment function to outer scope

commit f9efffd8e6d90d5e371c66574b1afe361a1da146
Author: Julius Unverfehrt <julius.unverfehrt@iqser.com>
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
This commit is contained in:
Julius Unverfehrt 2023-02-16 16:37:57 +01:00
parent c97ae3d2c2
commit 46157031b5
3 changed files with 17 additions and 13 deletions

View File

@ -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

View File

@ -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)

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "pyinfra"
version = "1.2.0"
version = "1.4.1"
description = ""
authors = ["Francisco Schulz <francisco.schulz@iqser.com>"]
license = "All rights reseverd"