private string UploadAdditionalConfiguration(tangible.Azure.AdditionalConfiguration.AdditionalConfiguration configuration) { var fileName = "config/" + configuration.Timestamp.ToString("yyyy-MM-dd_HH-mm-ss") + ".xml"; CloudStorageAccount storageAccount; if (!RoleEnvironment.IsAvailable) { storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true;"); } else { storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString")); } var blobClient = storageAccount.CreateCloudBlobClient(); var blob = blobClient.GetBlockBlobReference(fileName, true); using (var ms = new MemoryStream()) { // create a serializer var serializer = new System.Xml.Serialization.XmlSerializer(typeof(tangible.Azure.AdditionalConfiguration.AdditionalConfiguration)); serializer.Serialize(ms, configuration); ms.Position = 0; blob.UploadFromStream(ms); } return(fileName); }
protected void cmdSubmit_Click(object sender, EventArgs e) { // check, if user provided a user name if (string.IsNullOrWhiteSpace(txtUserName.Text)) { lblMessage.Text = "Please provide a user name to associate with change submission"; lblMessage.CssClass = "error"; return; } // get currently active additional configuration var oldAddConfig = GetAdditionalConfiguration(); // create a new AdditionalConfiguration based on user input tangible.Azure.AdditionalConfiguration.AdditionalConfiguration newAddConfig = null; try { newAddConfig = GetNewAdditionalConfiguration(); newAddConfig.Timestamp = DateTime.UtcNow; newAddConfig.Author = txtUserName.Text; } catch (Exception ex) { lblMessage.Text = "Error creating new additional configuration: " + ex.ToString(); lblMessage.CssClass = "error"; return; } // update java and hybris packages try { UpdateJavaAndHybrisPackages(oldAddConfig, newAddConfig); } catch (Exception ex) { lblMessage.Text = "Error updating Packages: " + ex.ToString(); lblMessage.CssClass = "error"; return; } // upload new configuration file to the blob store string containerAndFilePath = null; try { containerAndFilePath = UploadAdditionalConfiguration(newAddConfig); } catch (Exception ex) { lblMessage.Text = "Error uploading new additional configuration: " + ex.ToString(); lblMessage.CssClass = "error"; return; } // Adapt Deployment-Configuration for additional-config-file and instance counts try { UpdateCloudServiceConfigurationAndInstanceCount(containerAndFilePath); lblMessage.Text = "New configuration posted successfully."; lblMessage.CssClass = "healthy"; } catch (Exception ex) { lblMessage.Text = "Error setting new service configuration: " + ex.ToString(); lblMessage.CssClass = "error"; } }