protected IList <SettingsSectionDescription> DictionaryToFabricSettings(Dictionary <string, Dictionary <string, string> > settings)
        {
            var fabricSettings = new List <SettingsSectionDescription>();

            if (settings != null)
            {
                foreach (var kvp1 in settings)
                {
                    var setting = new SettingsSectionDescription()
                    {
                        Name       = kvp1.Key,
                        Parameters = new List <SettingsParameterDescription>()
                    };

                    foreach (var kvp2 in kvp1.Value)
                    {
                        setting.Parameters.Add(new SettingsParameterDescription()
                        {
                            Name  = kvp2.Key,
                            Value = kvp2.Value
                        });
                    }

                    fabricSettings.Add(setting);
                }
            }

            return(fabricSettings);
        }
Example #2
0
        internal FaultInjectionConfig InternalTryGetFaultInjectionConfigTest(string faultStep, string faultFlow)
        {
            List <SettingsSectionDescription> fabricSettings = new List <SettingsSectionDescription>();

            if (faultStep != null || faultFlow != null)
            {
                SettingsSectionDescription uosSection = new SettingsSectionDescription()
                {
                    Name = StringConstants.SectionName.UpgradeOrchestrationService
                };

                fabricSettings.Add(uosSection);

                if (faultStep != null)
                {
                    uosSection.Parameters.Add(new SettingsParameterDescription()
                    {
                        Name  = StringConstants.ParameterName.FaultStep,
                        Value = faultStep
                    });
                }

                if (faultFlow != null)
                {
                    uosSection.Parameters.Add(new SettingsParameterDescription()
                    {
                        Name  = StringConstants.ParameterName.FaultFlow,
                        Value = faultFlow
                    });
                }
            }

            return(FaultInjectionHelper.TryGetFaultInjectionConfig(fabricSettings));
        }
Example #3
0
        internal void OnDeserializedMethod(StreamingContext context)
        {
            SettingsSectionDescription setupSetting = this.Properties.FabricSettings.FirstOrDefault(x => x.Name == StringConstants.SectionName.Setup);

            if (setupSetting == null)
            {
                return;
            }

            SettingsParameterDescription dataRootParam = setupSetting.Parameters.FirstOrDefault(x => x.Name == StringConstants.ParameterName.FabricDataRoot);

            if (dataRootParam != null)
            {
                dataRootParam.Value = Environment.ExpandEnvironmentVariables(dataRootParam.Value);
            }

            SettingsParameterDescription logRootParam = setupSetting.Parameters.FirstOrDefault(x => x.Name == StringConstants.ParameterName.FabricLogRoot);

            if (logRootParam != null)
            {
                logRootParam.Value = Environment.ExpandEnvironmentVariables(logRootParam.Value);
            }

            SettingsParameterDescription devClusterParam = setupSetting.Parameters.FirstOrDefault(x => x.Name == StringConstants.ParameterName.IsDevCluster);

            setupSetting.Parameters.Remove(devClusterParam);

            this.Properties.DiagnosticsStore.Connectionstring = Environment.ExpandEnvironmentVariables(this.Properties.DiagnosticsStore.Connectionstring);
        }
Example #4
0
        public static FaultInjectionConfig TryGetFaultInjectionConfig(List <SettingsSectionDescription> fabricSettings)
        {
            if (fabricSettings == null)
            {
                return(null);
            }

            SettingsSectionDescription section = fabricSettings.FirstOrDefault(sec => sec.Name == StringConstants.SectionName.UpgradeOrchestrationService);

            if (section == null)
            {
                return(null);
            }

            SettingsParameterDescription faultStepParameter = section.Parameters.FirstOrDefault(p => p.Name == StringConstants.ParameterName.FaultStep);

            if (faultStepParameter == null)
            {
                return(null);
            }

            int         faultStep;
            UpgradeFlow faultFlow;

            if (!int.TryParse(faultStepParameter.Value, out faultStep) || faultStep < 0)
            {
                return(null);
            }

            SettingsParameterDescription faultFlowParameter = section.Parameters.FirstOrDefault(p => p.Name == StringConstants.ParameterName.FaultFlow);

            if (faultFlowParameter == null)
            {
                return(null);
            }

            if (!Enum.TryParse <UpgradeFlow>(faultFlowParameter.Value, out faultFlow))
            {
                return(null);
            }

            return(new FaultInjectionConfig(faultFlow, faultStep));
        }