private AdditionalConfiguration GetNewAdditionalConfiguration()
        {
            var newConfiguration = new AdditionalConfiguration();

            // Arr Configuration
            int desiredArrInstanceCount;
            if (!int.TryParse(txtArrInstanceCount.Text, out desiredArrInstanceCount))
                throw new Exception("Cannot parse ARR instance count");
            var arrRole = new tangible.Azure.AdditionalConfiguration.Role() { Name = "MicrosoftDXGermany.hybrisOnAzure.ArrRole", DesiredInstanceCount = desiredArrInstanceCount };
            newConfiguration.Roles.Add(arrRole);

            // default configuration
            var arrDefaultConfig = new tangible.Azure.AdditionalConfiguration.Instance() { Id = "default" };
            arrRole.Instances.Add(arrDefaultConfig);
            arrDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "IsInMaintenance", Value = "False" });

            // instance configuration
            if (RoleEnvironment.IsAvailable)
                foreach (var arrInstance in RoleEnvironment.Roles["MicrosoftDXGermany.hybrisOnAzure.ArrRole"].Instances)
                {
                    var arrInstanceConfig = new tangible.Azure.AdditionalConfiguration.Instance() { Id = arrInstance.Id };
                    arrRole.Instances.Add(arrInstanceConfig);
                    var setMaintenance = Page.FindControl("chkMaintenance_" + arrInstance.Id) as CheckBox;
                    if (setMaintenance != null)
                        arrInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "IsInMaintenance", Value = setMaintenance.Checked.ToString() });
                }

            // Frontend Worker Instances
            int desiredFrontendInstanceCount;
            if (!int.TryParse(txtArrInstanceCount.Text, out desiredFrontendInstanceCount))
                throw new Exception("Cannot parse FrontendWorker instance count");
            var frontendRole = new tangible.Azure.AdditionalConfiguration.Role() { Name = "MicrosoftDXGermany.hybrisOnAzure.FrontendWorkerRole", DesiredInstanceCount = desiredFrontendInstanceCount };
            newConfiguration.Roles.Add(frontendRole);

            // defaultConfiguration
            var frontendDefaultConfig = new tangible.Azure.AdditionalConfiguration.Instance() { Id = "default" };
            frontendRole.Instances.Add(frontendDefaultConfig);
            frontendDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "StopHybris", Value = "False" });
            frontendDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "Reboot", Value = String.Empty });

            // instance configuration
            if (RoleEnvironment.IsAvailable && RoleEnvironment.Roles.ContainsKey("MicrosoftDXGermany.hybrisOnAzure.FrontendWorkerRole"))
                foreach (var frontendInstance in RoleEnvironment.Roles["MicrosoftDXGermany.hybrisOnAzure.FrontendWorkerRole"].Instances)
                {
                    var frontendInstanceConfig = new tangible.Azure.AdditionalConfiguration.Instance() { Id = frontendInstance.Id };
                    frontendRole.Instances.Add(frontendInstanceConfig);
                    var stopHybris = Page.FindControl("chkStopHybris_" + frontendInstance.Id) as CheckBox;
                    if (stopHybris != null)
                        frontendInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "StopHybris", Value = stopHybris.Checked.ToString() });
                    var reboot = Page.FindControl("chkReboot_" + frontendInstance.Id) as CheckBox;
                    if (reboot != null)
                        frontendInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "Reboot", Value = (reboot.Checked) ? newConfiguration.Timestamp.ToString() : string.Empty });
                }

            // BackOffice Worker Instances
            var backOfficeRole = new tangible.Azure.AdditionalConfiguration.Role() { Name = "MicrosoftDXGermany.hybrisOnAzure.BackOfficeWorkerRole" };
            newConfiguration.Roles.Add(backOfficeRole);

            // defaultConfiguration
            var backOfficeDefaultConfig = new tangible.Azure.AdditionalConfiguration.Instance() { Id = "default" };
            backOfficeRole.Instances.Add(frontendDefaultConfig);
            backOfficeDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "StopHybris", Value = "False" });
            backOfficeDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "Reboot", Value = String.Empty });

            // instance configuration
            if (RoleEnvironment.IsAvailable && RoleEnvironment.Roles.ContainsKey("MicrosoftDXGermany.hybrisOnAzure.BackOfficeWorkerRole"))
                foreach (var backOfficeInstance in RoleEnvironment.Roles["MicrosoftDXGermany.hybrisOnAzure.BackOfficeWorkerRole"].Instances)
                {
                    var backOfficeInstanceConfig = new tangible.Azure.AdditionalConfiguration.Instance() { Id = backOfficeInstance.Id };
                    backOfficeRole.Instances.Add(backOfficeInstanceConfig);
                    var stopHybris = Page.FindControl("chkStopHybris_" + backOfficeInstance.Id) as CheckBox;
                    if (stopHybris != null)
                        backOfficeInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "StopHybris", Value = stopHybris.Checked.ToString() });
                    var reboot = Page.FindControl("chkReboot_" + backOfficeInstance.Id) as CheckBox;
                    if (reboot != null)
                        backOfficeInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem() { Name = "Reboot", Value = (reboot.Checked) ? newConfiguration.Timestamp.ToString() : string.Empty });
                }

            return newConfiguration;
        }
Exemple #2
0
        private AdditionalConfiguration GetNewAdditionalConfiguration()
        {
            var newConfiguration = new AdditionalConfiguration();

            // Arr Configuration
            int desiredArrInstanceCount;

            if (!int.TryParse(txtArrInstanceCount.Text, out desiredArrInstanceCount))
            {
                throw new Exception("Cannot parse ARR instance count");
            }
            var arrRole = new tangible.Azure.AdditionalConfiguration.Role()
            {
                Name = "MicrosoftDXGermany.hybrisOnAzure.ArrRole", DesiredInstanceCount = desiredArrInstanceCount
            };

            newConfiguration.Roles.Add(arrRole);

            // default configuration
            var arrDefaultConfig = new tangible.Azure.AdditionalConfiguration.Instance()
            {
                Id = "default"
            };

            arrRole.Instances.Add(arrDefaultConfig);
            arrDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
            {
                Name = "IsInMaintenance", Value = "False"
            });

            // instance configuration
            if (RoleEnvironment.IsAvailable)
            {
                foreach (var arrInstance in RoleEnvironment.Roles["MicrosoftDXGermany.hybrisOnAzure.ArrRole"].Instances)
                {
                    var arrInstanceConfig = new tangible.Azure.AdditionalConfiguration.Instance()
                    {
                        Id = arrInstance.Id
                    };
                    arrRole.Instances.Add(arrInstanceConfig);
                    var setMaintenance = Page.FindControl("chkMaintenance_" + arrInstance.Id) as CheckBox;
                    if (setMaintenance != null)
                    {
                        arrInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
                        {
                            Name = "IsInMaintenance", Value = setMaintenance.Checked.ToString()
                        });
                    }
                }
            }

            // Frontend Worker Instances
            int desiredFrontendInstanceCount;

            if (!int.TryParse(txtArrInstanceCount.Text, out desiredFrontendInstanceCount))
            {
                throw new Exception("Cannot parse FrontendWorker instance count");
            }
            var frontendRole = new tangible.Azure.AdditionalConfiguration.Role()
            {
                Name = "MicrosoftDXGermany.hybrisOnAzure.FrontendWorkerRole", DesiredInstanceCount = desiredFrontendInstanceCount
            };

            newConfiguration.Roles.Add(frontendRole);

            // defaultConfiguration
            var frontendDefaultConfig = new tangible.Azure.AdditionalConfiguration.Instance()
            {
                Id = "default"
            };

            frontendRole.Instances.Add(frontendDefaultConfig);
            frontendDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
            {
                Name = "StopHybris", Value = "False"
            });
            frontendDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
            {
                Name = "Reboot", Value = String.Empty
            });

            // instance configuration
            if (RoleEnvironment.IsAvailable && RoleEnvironment.Roles.ContainsKey("MicrosoftDXGermany.hybrisOnAzure.FrontendWorkerRole"))
            {
                foreach (var frontendInstance in RoleEnvironment.Roles["MicrosoftDXGermany.hybrisOnAzure.FrontendWorkerRole"].Instances)
                {
                    var frontendInstanceConfig = new tangible.Azure.AdditionalConfiguration.Instance()
                    {
                        Id = frontendInstance.Id
                    };
                    frontendRole.Instances.Add(frontendInstanceConfig);
                    var stopHybris = Page.FindControl("chkStopHybris_" + frontendInstance.Id) as CheckBox;
                    if (stopHybris != null)
                    {
                        frontendInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
                        {
                            Name = "StopHybris", Value = stopHybris.Checked.ToString()
                        });
                    }
                    var reboot = Page.FindControl("chkReboot_" + frontendInstance.Id) as CheckBox;
                    if (reboot != null)
                    {
                        frontendInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
                        {
                            Name = "Reboot", Value = (reboot.Checked) ? newConfiguration.Timestamp.ToString() : string.Empty
                        });
                    }
                }
            }

            // BackOffice Worker Instances
            var backOfficeRole = new tangible.Azure.AdditionalConfiguration.Role()
            {
                Name = "MicrosoftDXGermany.hybrisOnAzure.BackOfficeWorkerRole"
            };

            newConfiguration.Roles.Add(backOfficeRole);

            // defaultConfiguration
            var backOfficeDefaultConfig = new tangible.Azure.AdditionalConfiguration.Instance()
            {
                Id = "default"
            };

            backOfficeRole.Instances.Add(frontendDefaultConfig);
            backOfficeDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
            {
                Name = "StopHybris", Value = "False"
            });
            backOfficeDefaultConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
            {
                Name = "Reboot", Value = String.Empty
            });

            // instance configuration
            if (RoleEnvironment.IsAvailable && RoleEnvironment.Roles.ContainsKey("MicrosoftDXGermany.hybrisOnAzure.BackOfficeWorkerRole"))
            {
                foreach (var backOfficeInstance in RoleEnvironment.Roles["MicrosoftDXGermany.hybrisOnAzure.BackOfficeWorkerRole"].Instances)
                {
                    var backOfficeInstanceConfig = new tangible.Azure.AdditionalConfiguration.Instance()
                    {
                        Id = backOfficeInstance.Id
                    };
                    backOfficeRole.Instances.Add(backOfficeInstanceConfig);
                    var stopHybris = Page.FindControl("chkStopHybris_" + backOfficeInstance.Id) as CheckBox;
                    if (stopHybris != null)
                    {
                        backOfficeInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
                        {
                            Name = "StopHybris", Value = stopHybris.Checked.ToString()
                        });
                    }
                    var reboot = Page.FindControl("chkReboot_" + backOfficeInstance.Id) as CheckBox;
                    if (reboot != null)
                    {
                        backOfficeInstanceConfig.Configurations.Add(new tangible.Azure.AdditionalConfiguration.ConfigurationItem()
                        {
                            Name = "Reboot", Value = (reboot.Checked) ? newConfiguration.Timestamp.ToString() : string.Empty
                        });
                    }
                }
            }

            return(newConfiguration);
        }