Ejemplo n.º 1
0
        private void UpdateCSCFG()
        {
            string normalizedRoleName = this.RoleName.ToUpperInvariant();

            ServiceConfigurationSchema.ServiceConfiguration sourceCSCFG = SerializationUtils.DeserializeXmlFile <ServiceConfigurationSchema.ServiceConfiguration>(CscfgFile);
            ServiceConfigurationSchema.RoleSettings         roleToAdd   = sourceCSCFG.Role.Where(eachRole => eachRole.name.ToUpperInvariant() == normalizedRoleName).FirstOrDefault();

            if (roleToAdd == null)
            {
                throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.RoleNotFoundInCSCFG, this.RoleName));
            }

            ConfigureInstCount(roleToAdd);
            OverrideSettings(roleToAdd);

            AddRole(roleToAdd, CloudCSCFGFile);
            AddRole(roleToAdd, LocalCSCFGFile);
        }
Ejemplo n.º 2
0
 private void ConfigureInstCount(RoleSettings roleToAdd)
 {
     if (roleToAdd.Instances == null)
     {
         roleToAdd.Instances = new TargetSetting();
     }
     roleToAdd.Instances.count = this.InstanceCount == 0 ? 1 : this.InstanceCount;
 }
Ejemplo n.º 3
0
        private void AddRole(RoleSettings roleToAdd, string cscfgFileLoc)
        {
            ServiceConfigurationSchema.ServiceConfiguration config = SerializationUtils.DeserializeXmlFile<ServiceConfigurationSchema.ServiceConfiguration>(cscfgFileLoc);

            string roleNameToAdd = roleToAdd.name.ToUpperInvariant();
            if (config.Role != null)
            {
                //Check if role to be added is already present inside the cscfg. If so just update instance count.
                RoleSettings matchingRoleInConfig = config.Role.Where(eachRole => eachRole.name.ToUpperInvariant() == roleNameToAdd).FirstOrDefault();
                if (matchingRoleInConfig != null)
                {
                    ConfigureInstCount(matchingRoleInConfig);
                    SerializationUtils.SerializeXmlFile<ServiceConfigurationSchema.ServiceConfiguration>(config, cscfgFileLoc);
                    WriteObject(string.Format(CultureInfo.InvariantCulture, Resources.RoleAlreadyPresentInCSCFG, roleNameToAdd, matchingRoleInConfig.Instances.count.ToString(CultureInfo.InvariantCulture)));
                    return;
                }
            }

            List<ServiceConfigurationSchema.RoleSettings> roles = new List<ServiceConfigurationSchema.RoleSettings>();
            //Retain existing roles inside the cscfg.
            if (config.Role != null)
            {
                roles.AddRange(config.Role);
            }
            roles.Add(roleToAdd);
            config.Role = roles.ToArray();
            SerializationUtils.SerializeXmlFile<ServiceConfigurationSchema.ServiceConfiguration>(config, cscfgFileLoc);
        }
Ejemplo n.º 4
0
        private void OverrideSettings(RoleSettings roleToAdd)
        {
            if (string.IsNullOrEmpty(this.Settings) == true)
            {
                return;
            }
            if (roleToAdd.ConfigurationSettings == null)
            {
                WriteWarning(Resources.SettingsAbsentInCSCFG);
                return;
            }
            string[] separatedSetting = Settings.Split(SettingSplitter, StringSplitOptions.RemoveEmptyEntries);
            foreach (string eachSetting in separatedSetting)
            {
                string[] settingsPart = eachSetting.Split(SettingPartSplitter, StringSplitOptions.RemoveEmptyEntries);

                //Find setting in the role to add.
                ServiceConfigurationSchema.ConfigurationSetting settingToOverride =
                    roleToAdd.ConfigurationSettings.Where(e => e.name.ToLowerInvariant() == settingsPart[0].ToLowerInvariant()).FirstOrDefault();
                //OOPS not found.
                if (settingToOverride == null)
                {
                    WriteWarning(string.Format(CultureInfo.InvariantCulture, Resources.SettingsAbsentInCSCFG, settingsPart[0]));
                    continue;
                }
                //Update.
                settingToOverride.value = settingsPart[1];
            }
        }
Ejemplo n.º 5
0
 private static void UpdateSetting(ref RoleSettings rs, ServiceConfigurationSchema.ConfigurationSetting cs)
 {
     if (rs.ConfigurationSettings == null)
     {
         return;
     }
     for (int i = 0; i < rs.ConfigurationSettings.Length; i++)
     {
         ServiceConfigurationSchema.ConfigurationSetting setting = rs.ConfigurationSettings[i];
         if (setting.name == cs.name)
         {
             setting.value = cs.value;
             break;
         }
     }
 }