From 1a55bc4df3f2222da06b861ac1b67acbafe37e54 Mon Sep 17 00:00:00 2001 From: Prathamesh Musale Date: Thu, 3 Oct 2024 10:00:31 +0530 Subject: [PATCH] Update handling for deployment requests with auction --- .../webapp/deploy_webapp_from_registry.py | 67 +++++++++++-------- stack_orchestrator/deploy/webapp/util.py | 2 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py b/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py index 6fe27240..810590c9 100644 --- a/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py +++ b/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py @@ -584,40 +584,49 @@ def command( # noqa: C901 requests_to_check_for_payment.append(r) requests_to_execute = [] - if min_required_payment: - for r in requests_to_check_for_payment: - if (not r.attributes.payment) and r.attributes.auction: - if not auction_requests: - main_logger.log(f"Skipping request {r.id}: not handling requests with auction.") + for r in requests_to_check_for_payment: + # Check if auction id is set + if r.attributes.auction: + if auction_requests: + # Check if the deployer payment address is an auction winner + auction_id = r.attributes.auction + auction = laconic.get_auction(auction_id) + if not auction: + main_logger.log( + f"Skipping request {r.id}: unable to locate auction: {auction_id}" + ) dump_known_requests(state_file, [r], status="SKIP") - else: - # Check if we are in auction winners - auction_id = r.attributes.auction - auction = laconic.get_auction(auction_id) - if not auction: - raise Exception(f"Unable to locate auction: {auction_id}") - - if payment_address in auction.winnerAddresses: - main_logger.log(f"{r.id}: Auction winnner address confirmed.") - requests_to_execute.append(r) - else: - main_logger.log(f"{r.id}: Confirming payment...") - if confirm_payment( - laconic, - r, - payment_address, - min_required_payment, - main_logger, - ): - main_logger.log(f"{r.id}: Payment confirmed.") + elif payment_address in auction.winnerAddresses: + main_logger.log(f"{r.id}: auction winnner address confirmed.") requests_to_execute.append(r) else: main_logger.log( - f"Skipping request {r.id}: unable to verify payment." + f"Skipping request {r.id}: deployer payment address not found in auction winners." ) - dump_known_requests(state_file, [r], status="UNPAID") - else: - requests_to_execute = requests_to_check_for_payment + dump_known_requests(state_file, [r], status="SKIP") + else: + main_logger.log( + f"Skipping request {r.id}: not handling requests with auction." + ) + dump_known_requests(state_file, [r], status="SKIP") + elif min_required_payment: + main_logger.log(f"{r.id}: Confirming payment...") + if confirm_payment( + laconic, + r, + payment_address, + min_required_payment, + main_logger, + ): + main_logger.log(f"{r.id}: Payment confirmed.") + requests_to_execute.append(r) + else: + main_logger.log( + f"Skipping request {r.id}: unable to verify payment." + ) + dump_known_requests(state_file, [r], status="UNPAID") + else: + requests_to_execute.append(r) main_logger.log( "Found %d unsatisfied request(s) to process." % len(requests_to_execute) diff --git a/stack_orchestrator/deploy/webapp/util.py b/stack_orchestrator/deploy/webapp/util.py index e94ceeba..32013048 100644 --- a/stack_orchestrator/deploy/webapp/util.py +++ b/stack_orchestrator/deploy/webapp/util.py @@ -341,7 +341,7 @@ class LaconicRegistryClient: except: # noqa: E722 pass - if len(results): + if results and len(results): return results[0] if require: