private void HandleImageLoadRequest(ImageLoadRequest message)
        {
            Task t = new Task(async() =>
            {
                var table = ContainerTable as DockerContainerTable;
                await table.LoadImage(message.ImageId);
                var responce = new ImageLoadResponce(message.SenderId, this.MachineId, message.ContainerId, true);
                CommunicationModule.SendMessage(responce);
            });

            t.Start();
        }
 private void HandleImageLoadResponce(ImageLoadResponce message)
 {
     if (message.State)
     {
         Task t = new Task(() =>
         {
             var container = ContainerTable.GetContainerById(message.ContainerId);
             ContainerTable.LockContainer(message.ContainerId);
             container.Checkpoint(this.MachineId);
             var size = (int)container.GetContainerNeededLoadInfo().CurrentLoad.MemorySize;
             MigrateContainerRequest request =
                 new MigrateContainerRequest(message.SenderId, this.MachineId, container, size);
             CommunicationModule.SendMessage(request);
             ResetBackOff();
         });
         t.Start();
     }
     else
     {
         throw new Exception("How Come its not loaded");
     }
     //GlobalEnviromentVariables.ResetCheckRate();
 }