Esempio n. 1
0
        internal static StatelessServiceLoadMetricDescription ParseStatelessMetric(string metricStr)
        {
            StatelessServiceLoadMetricDescription desc;

            string[] metricFields = metricStr.Split(',', ' ');

            if (metricFields.Length != 3 && metricFields.Length != 4)
            {
                throw new ArgumentException(StringResources.Error_InvalidMetricSpecification);
            }

            int defaultLoad;

            if (!int.TryParse(metricFields[2], out defaultLoad))
            {
                throw new ArgumentException(StringResources.Error_InvalidMetricSpecification);
            }

            desc = new StatelessServiceLoadMetricDescription()
            {
                Name        = metricFields[0],
                Weight      = ParseWeight(metricFields[1]),
                DefaultLoad = defaultLoad
            };

            return(desc);
        }
Esempio n. 2
0
        internal StatelessServiceDescription GetStatelessDescription(Job j)
        {
            var ser = JsonSerializer.Create();

            var sw = new StringWriter();

            ser.Serialize(sw, j);

            var desc = new StatelessServiceDescription()
            {
                ApplicationName            = new Uri("fabric:/Compute2"),
                DefaultMoveCost            = MoveCost.High,
                ServiceName                = new Uri(string.Format("fabric:/Compute2/ComputeInstance{0}", System.DateTime.Now.Ticks)),
                ServiceTypeName            = "StatelessComputeServiceType",
                PartitionSchemeDescription = new SingletonPartitionSchemeDescription(),
                InstanceCount              = 1,
                InitializationData         = Encoding.UTF8.GetBytes(sw.ToString())
            };

            var metric = new StatelessServiceLoadMetricDescription()
            {
                DefaultLoad = 1,
                Name        = "TCU",
                Weight      = ServiceLoadMetricWeight.Medium
            };

            desc.Metrics.Add(metric);

            return(desc);
        }
Esempio n. 3
0
 public static StatelessServiceLoadMetricDescription GetClone(this StatelessServiceLoadMetricDescription other)
 {
     if (other == null)
     {
         return(null);
     }
     return(new StatelessServiceLoadMetricDescription()
     {
         Name = other.Name,
         DefaultLoad = other.DefaultLoad,
         Weight = other.Weight
     });
 }
Esempio n. 4
0
        public static ServiceLoadMetricDescription GetClone(this ServiceLoadMetricDescription other)
        {
            if (other == null)
            {
                return(null);
            }

            ServiceLoadMetricDescription casted;

            if (other is StatefulServiceLoadMetricDescription)
            {
                casted = new StatefulServiceLoadMetricDescription(other as StatefulServiceLoadMetricDescription);
            }
            else if (other is StatelessServiceLoadMetricDescription)
            {
                casted = new StatelessServiceLoadMetricDescription(other as StatelessServiceLoadMetricDescription);
            }
            else
            {
                casted = new ServiceLoadMetricDescription(other);
            }

            return(casted);
        }