protected override void HandleCanHaveContainerResponce(CanHaveContainerResponce message) { if (message.Bid.AuctionId != inOrderProping.InstanceId) { throw new NotImplementedException("How come"); } if (message.Bid.Valid) { AddContainerRequest request = new AddContainerRequest(message.SenderId, 0, CurrentContainer); CommunicationModule.SendMessage(request); CurrentContainer = null; inOrderProping = null; } else { if (inOrderProping.OpenSession) { TestHostForAContainer(); } else { FailedScheduling(); } } }
private void HandlaCanHaveContainerRequest(CanHaveContainerRequest message) { //ContainerTable.AddContainer(message.ScheduledContainer.ContainerId, message.ScheduledContainer); var load = LoadManager.GetHostLoadInfoAfterContainer(message.NewContainerLoadInfo); var newState = load.CalculateTotalUtilizationState(MinUtilization, MaxUtilization); Bid bid = null; if (!_hostState.EvacuationMode && LoadManager.CanITakeLoad(message.NewContainerLoadInfo) && newState != UtilizationStates.OverUtilization) { var pulls = CalculatePullsCount(message.NewContainerLoadInfo.ImageId); bid = new AuctionBid(this.MachineId, true, load, message.AuctionId, message.NewContainerLoadInfo.ContainerId, BidReasons.ValidBid, pulls); } else { bid = new AuctionBid(this.MachineId, false, null, message.AuctionId, message.NewContainerLoadInfo.ContainerId, BidReasons.CantBid, 0); } CanHaveContainerResponce responce = new CanHaveContainerResponce(0, MachineId, bid); CommunicationModule.SendMessage(responce); }
protected override void HandleCanHaveContainerResponce(CanHaveContainerResponce message) { if (message.Bid.AuctionId != auction.InstanceId) { throw new NotImplementedException("How come"); } auction.AddBid(message.Bid); if (!auction.OpenSession) { var winner = auction.GetWinnerBid(); if (winner == null) { FailedScheduling(); } else { AddContainerRequest request = new AddContainerRequest(message.SenderId, 0, CurrentContainer); CommunicationModule.SendMessage(request); CurrentContainer = null; auction = null; } } }
protected abstract void HandleCanHaveContainerResponce(CanHaveContainerResponce canHaveContainerResponce);