def update_future_bidding_orders(self, bids): current_round = self.get_round_number( self.auction_document["current_stage"]) for round_number in range(current_round + 1, ROUNDS + 1): for index, stage in enumerate( range(*self.get_round_stages(round_number))): self.auction_document["stages"][stage] = prepare_bids_stage( self.auction_document["stages"][stage], bids[index]) self.auction_document["results"] = [] for item in bids: self.auction_document["results"].append( prepare_results_stage(**item))
def end_auction(self): LOGGER.info( '---------------- End auction ----------------', extra={"JOURNAL_REQUEST_ID": self.request_id, "MESSAGE_ID": AUCTION_WORKER_SERVICE_END_AUCTION} ) LOGGER.debug("Stop server", extra={"JOURNAL_REQUEST_ID": self.request_id}) if self.server: self.server.stop() LOGGER.debug( "Clear mapping", extra={"JOURNAL_REQUEST_ID": self.request_id} ) delete_mapping(self.worker_defaults, self.auction_doc_id) start_stage, end_stage = self.get_round_stages(ROUNDS) minimal_bids = deepcopy( self.auction_document["stages"][start_stage:end_stage] ) minimal_bids = self.filter_bids_keys(sorting_by_amount(minimal_bids)) self.auction_document["results"] = [] for item in minimal_bids: self.auction_document["results"].append(prepare_results_stage(**item)) self.auction_document["current_stage"] = (len(self.auction_document["stages"]) - 1) LOGGER.debug(' '.join(( 'Document in end_stage: \n', yaml_dump(dict(self.auction_document)) )), extra={"JOURNAL_REQUEST_ID": self.request_id}) self.approve_audit_info_on_announcement() LOGGER.info('Audit data: \n {}'.format(yaml_dump(self.audit)), extra={"JOURNAL_REQUEST_ID": self.request_id}) if self.debug: LOGGER.debug( 'Debug: put_auction_data disabled !!!', extra={"JOURNAL_REQUEST_ID": self.request_id} ) sleep(10) self.save_auction_document() else: if self.put_auction_data(): self.save_auction_document() LOGGER.debug( "Fire 'stop auction worker' event", extra={"JOURNAL_REQUEST_ID": self.request_id} )