internal ConfigurationAction(string containerName, string serverName, float?utility, string SLAId = null, ConfigurationActionSource source = ConfigurationActionSource.NonConstraint, int numberOfReads = 0, int numberOfWrites = 0)
        {
            this.Configuration      = ClientRegistry.GetConfiguration(containerName, false);
            this.ModifyingContainer = ClientRegistry.GetCloudBlobContainer(serverName, containerName);
            this.GainedUtility      = utility ?? 0;
            OriginatingSLAs         = new HashSet <string>();
            Clients = new HashSet <string>();
            if (SLAId != null)
            {
                OriginatingSLAs.Add(SLAId);
            }

            this.Source         = source;
            this.numberOfReads  = numberOfReads;
            this.numberOfWrites = numberOfWrites;
            this.ServerName     = serverName;

            if (numberOfBlobs == 0)
            {
                CloudBlobContainer primaryContainer = ClientRegistry.GetCloudBlobContainer(Configuration.PrimaryServers.First(), containerName);
                numberOfBlobs = primaryContainer.ListBlobs().Count();
            }

            Cost = ComputeCost();
        }
示例#2
0
 public AddSecondaryServer(string containerName, string serverName, float?utility, string slaId = null, ConfigurationActionSource source = ConfigurationActionSource.Constraint, int numberOfReads = 0, int numberOfWrites = 0)
     : base(containerName, serverName, utility, slaId, source, numberOfReads, numberOfWrites)
 {
 }