Convert amounts to int for comparison
All checks were successful
Lint Checks / Run linter (pull_request) Successful in 33s
Deploy Test / Run deploy test suite (pull_request) Successful in 4m40s
K8s Deploy Test / Run deploy test suite on kind/k8s (pull_request) Successful in 7m40s
K8s Deployment Control Test / Run deployment control suite on kind/k8s (pull_request) Successful in 5m47s
Webapp Test / Run webapp test suite (pull_request) Successful in 4m58s
Smoke Test / Run basic test suite (pull_request) Successful in 4m4s
All checks were successful
Lint Checks / Run linter (pull_request) Successful in 33s
Deploy Test / Run deploy test suite (pull_request) Successful in 4m40s
K8s Deploy Test / Run deploy test suite on kind/k8s (pull_request) Successful in 7m40s
K8s Deployment Control Test / Run deployment control suite on kind/k8s (pull_request) Successful in 5m47s
Webapp Test / Run webapp test suite (pull_request) Successful in 4m58s
Smoke Test / Run basic test suite (pull_request) Successful in 4m4s
This commit is contained in:
parent
19e1ce211b
commit
74edf16d14
@ -37,7 +37,7 @@ def process_app_deployment_auction(
|
|||||||
logger,
|
logger,
|
||||||
):
|
):
|
||||||
# Fetch auction details
|
# Fetch auction details
|
||||||
auction_id = request.auction
|
auction_id = request.attributes.auction
|
||||||
auction = laconic.get_auction(auction_id)
|
auction = laconic.get_auction(auction_id)
|
||||||
if not auction:
|
if not auction:
|
||||||
raise Exception(f"Unable to locate auction: {auction_id}")
|
raise Exception(f"Unable to locate auction: {auction_id}")
|
||||||
@ -49,30 +49,32 @@ def process_app_deployment_auction(
|
|||||||
if current_status == "PENDING":
|
if current_status == "PENDING":
|
||||||
# Skip if pending auction not in commit state
|
# Skip if pending auction not in commit state
|
||||||
if auction.status != AuctionStatus.COMMIT:
|
if auction.status != AuctionStatus.COMMIT:
|
||||||
logger(f"Skipping pending request, auction {auction_id} status: {auction.status}")
|
logger.log(f"Skipping pending request, auction {auction_id} status: {auction.status}")
|
||||||
return "SKIP", ""
|
return "SKIP", ""
|
||||||
|
|
||||||
# Check max_price
|
# Check max_price
|
||||||
if auction.max_price < bid_amount:
|
bid_amount_int = int(bid_amount)
|
||||||
logger(f"Skipping auction {auction_id} with max_price ({auction.max_price}) less than bid_amount {bid_amount}")
|
max_price_int = int(auction.maxPrice.quantity)
|
||||||
|
if max_price_int < bid_amount_int:
|
||||||
|
logger.log(f"Skipping auction {auction_id} with max_price ({max_price_int}) less than bid_amount ({bid_amount_int})")
|
||||||
return "SKIP", ""
|
return "SKIP", ""
|
||||||
|
|
||||||
# Bid on the auction
|
# Bid on the auction
|
||||||
reveal_file_path = laconic.commit_bid(auction_id, bid_amount)
|
reveal_file_path = laconic.commit_bid(auction_id, bid_amount_int)
|
||||||
logger(f"Commited bid on auction {auction_id} with amount {bid_amount}")
|
logger.log(f"Commited bid on auction {auction_id} with amount {bid_amount_int}")
|
||||||
|
|
||||||
return "COMMIT", reveal_file_path
|
return "COMMIT", reveal_file_path
|
||||||
|
|
||||||
if current_status == "COMMIT":
|
if current_status == "COMMIT":
|
||||||
# Return if auction still in commit state
|
# Return if auction still in commit state
|
||||||
if auction.status == AuctionStatus.COMMIT:
|
if auction.status == AuctionStatus.COMMIT:
|
||||||
logger(f"Auction {auction_id} status: {auction.status}")
|
logger.log(f"Auction {auction_id} status: {auction.status}")
|
||||||
return current_status, reveal_file_path
|
return current_status, reveal_file_path
|
||||||
|
|
||||||
# Reveal bid
|
# Reveal bid
|
||||||
if auction.status == AuctionStatus.REVEAL:
|
if auction.status == AuctionStatus.REVEAL:
|
||||||
laconic.reveal_bid(auction_id, reveal_file_path)
|
laconic.reveal_bid(auction_id, reveal_file_path)
|
||||||
logger(f"Revealed bid on auction {auction_id}")
|
logger.log(f"Revealed bid on auction {auction_id}")
|
||||||
|
|
||||||
return "REVEAL", reveal_file_path
|
return "REVEAL", reveal_file_path
|
||||||
|
|
||||||
@ -81,11 +83,12 @@ def process_app_deployment_auction(
|
|||||||
if current_status == "REVEAL":
|
if current_status == "REVEAL":
|
||||||
# Return if auction still in reveal state
|
# Return if auction still in reveal state
|
||||||
if auction.status == AuctionStatus.REVEAL:
|
if auction.status == AuctionStatus.REVEAL:
|
||||||
logger(f"Auction {auction_id} status: {auction.status}")
|
logger.log(f"Auction {auction_id} status: {auction.status}")
|
||||||
return current_status, reveal_file_path
|
return current_status, reveal_file_path
|
||||||
|
|
||||||
# Return if auction still in completed state
|
# Return if auction is completed
|
||||||
if auction.status == AuctionStatus.COMPLETED:
|
if auction.status == AuctionStatus.COMPLETED:
|
||||||
|
logger.log(f"Auction {auction_id} completed")
|
||||||
return "COMPLETED", ""
|
return "COMPLETED", ""
|
||||||
|
|
||||||
raise Exception(f"Unexpected auction {auction_id} status: {auction.status}")
|
raise Exception(f"Unexpected auction {auction_id} status: {auction.status}")
|
||||||
@ -108,7 +111,9 @@ def dump_known_auction_requests(filename, requests, status="SEEN"):
|
|||||||
"--laconic-config", help="Provide a config file for laconicd", required=True
|
"--laconic-config", help="Provide a config file for laconicd", required=True
|
||||||
)
|
)
|
||||||
@click.option(
|
@click.option(
|
||||||
"--state-file", help="File to store state about previously seen auction requests."
|
"--state-file",
|
||||||
|
help="File to store state about previously seen auction requests.",
|
||||||
|
required=True,
|
||||||
)
|
)
|
||||||
@click.option(
|
@click.option(
|
||||||
"--bid-amount",
|
"--bid-amount",
|
||||||
@ -125,8 +130,8 @@ def command(
|
|||||||
state_file,
|
state_file,
|
||||||
bid_amount,
|
bid_amount,
|
||||||
dry_run,
|
dry_run,
|
||||||
): # noqa: C901
|
):
|
||||||
if bid_amount < 0:
|
if int(bid_amount) < 0:
|
||||||
print("--bid-amount cannot be less than 0", file=sys.stderr)
|
print("--bid-amount cannot be less than 0", file=sys.stderr)
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
@ -137,9 +142,8 @@ def command(
|
|||||||
auctions_requests = laconic.app_deployment_auctions()
|
auctions_requests = laconic.app_deployment_auctions()
|
||||||
|
|
||||||
previous_requests = {}
|
previous_requests = {}
|
||||||
if state_file:
|
logger.log(f"Loading known auctions from {state_file}...")
|
||||||
logger.log(f"Loading known auctions from {state_file}...")
|
previous_requests = load_known_requests(state_file)
|
||||||
previous_requests = load_known_requests(state_file)
|
|
||||||
|
|
||||||
# Process new requests first
|
# Process new requests first
|
||||||
auctions_requests.sort(key=lambda r: r.createTime)
|
auctions_requests.sort(key=lambda r: r.createTime)
|
||||||
@ -180,15 +184,11 @@ def command(
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
result_status = "ERROR"
|
result_status = "ERROR"
|
||||||
logger.log(f"ERROR examining request {r.id}: " + str(e))
|
logger.log(f"ERROR: examining request {r.id}: " + str(e))
|
||||||
finally:
|
finally:
|
||||||
logger.log(f"DONE Examining request {r.id} with result {result_status}.")
|
logger.log(f"DONE: Examining request {r.id} with result {result_status}.")
|
||||||
if result_status in ["ERROR"]:
|
if result_status in ["ERROR"]:
|
||||||
dump_known_auction_requests(
|
dump_known_auction_requests(state_file, [AttrDict({"id": r.id, "revealFile": reveal_file_path})], result_status)
|
||||||
state_file,
|
|
||||||
[AttrDict({"id": r.id, "revealFile": reveal_file_path})],
|
|
||||||
status=result_status
|
|
||||||
)
|
|
||||||
|
|
||||||
logger.log(f"Found {len(requests_to_execute)} request(s) to process.")
|
logger.log(f"Found {len(requests_to_execute)} request(s) to process.")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user