Ejemplo n.º 1
0
 public virtual void AddContainer(int containerId, Container container)
 {
     lock (_lock)
     {
         ContainersTable.Add(containerId, container);
     }
 }
Ejemplo n.º 2
0
 public List <Container> GetAllContainers()
 {
     lock (_lock)
     {
         return(ContainersTable.Select(x => x.Value).ToList());
     }
 }
Ejemplo n.º 3
0
 public void UnLockContainer()
 {
     lock (_lock)
     {
         ContainersTable.Add(MigratedContainer.ContainerId, MigratedContainer);
         MigratedContainer = null;
         throw new NotImplementedException("Should Never be called");
     }
 }
 public override void AddContainer(int containerId, Container container)
 {
     lock (_lock)
     {
         var dockerCon = container as DockerContainer;
         if (!ImageManager.ContainsImage(dockerCon.ImageId))
         {
             throw new Exception("How Come");
         }
         ContainersTable.Add(containerId, container);
     }
 }
Ejemplo n.º 5
0
 public void LockContainer(int conId)
 {
     lock (_lock)
     {
         var container = ContainersTable[conId];
         ContainersTable.Remove(conId);
         if (container == null)
         {
             throw new ArgumentException("No SUch con");
         }
         MigratedContainer = container;
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Update to different conditions
 /// </summary>
 /// <returns></returns>
 public Container SelectContainerByCondition()
 {
     lock (_lock)
     {
         if (!ContainersTable.Any())
         {
             return(null);
         }
         if (ContainersTable.Count == _hashSet.Count)
         {
             _hashSet.Clear();
         }
         Container container = ContainersTable.Values.OrderByDescending(
             x => x.GetContainerPredictedLoadInfo().VolumeToSizeRatioToMigrationsCount)
                               .SkipWhile(x => _hashSet.Contains(x.ContainerId))
                               .First();
         _hashSet.Add(container.ContainerId);
         return(container);
     }
 }