private static void UpgradeProfile() { string oldProfileFilePath = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.OldProfileFile); string newProfileFilePath = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.ProfileFile); if (DataStore.FileExists(oldProfileFilePath)) { string oldProfilePath = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.OldProfileFile); AzureProfile oldProfile = new AzureProfile(DataStore, oldProfilePath); if (DataStore.FileExists(newProfileFilePath)) { // Merge profile files AzureProfile newProfile = new AzureProfile(DataStore, newProfileFilePath); foreach (var environment in newProfile.Environments.Values) { oldProfile.Environments[environment.Name] = environment; } foreach (var subscription in newProfile.Subscriptions.Values) { oldProfile.Subscriptions[subscription.Id] = subscription; } DataStore.DeleteFile(newProfileFilePath); } // Save the profile to the disk oldProfile.Save(); // Rename WindowsAzureProfile.xml to WindowsAzureProfile.json DataStore.RenameFile(oldProfilePath, newProfileFilePath); } }
private static void UpgradeProfile() { string oldProfileFilePath = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.OldProfileFile); string oldProfileFilePathBackup = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.OldProfileFileBackup); string newProfileFilePath = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.ProfileFile); if (DataStore.FileExists(oldProfileFilePath)) { string oldProfilePath = System.IO.Path.Combine(AzurePowerShell.ProfileDirectory, AzurePowerShell.OldProfileFile); try { // Try to backup old profile try { DataStore.CopyFile(oldProfilePath, oldProfileFilePathBackup); } catch { // Ignore any errors here } AzureProfile oldProfile = new AzureProfile(DataStore, oldProfilePath); if (DataStore.FileExists(newProfileFilePath)) { // Merge profile files AzureProfile newProfile = new AzureProfile(DataStore, newProfileFilePath); foreach (var environment in newProfile.Environments.Values) { oldProfile.Environments[environment.Name] = environment; } foreach (var subscription in newProfile.Subscriptions.Values) { oldProfile.Subscriptions[subscription.Id] = subscription; } DataStore.DeleteFile(newProfileFilePath); } // If there were no load errors - delete backup file if (oldProfile.ProfileLoadErrors.Count == 0) { try { DataStore.DeleteFile(oldProfileFilePathBackup); } catch { // Give up } } // Save the profile to the disk oldProfile.Save(); // Rename WindowsAzureProfile.xml to WindowsAzureProfile.json DataStore.RenameFile(oldProfilePath, newProfileFilePath); } catch { // Something really bad happened - try to delete the old profile try { DataStore.DeleteFile(oldProfilePath); } catch { // Ignore any errors } } } }