Пример #1
0
        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);
        }
Пример #2
0
        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";
            }
        }