public void Clear() { _contexts.Clear(); EnvironmentTable.Clear(); SubscriptionTable.Clear(); AccountTable.Clear(); }
private void Initialize(AzureRmProfile profile) { EnvironmentTable.Clear(); // Adding predefined environments foreach (var env in AzureEnvironment.PublicEnvironments) { EnvironmentTable[env.Key] = env.Value; } Contexts.Clear(); DefaultContextKey = "Default"; if (profile != null) { foreach (var environment in profile.EnvironmentTable) { EnvironmentTable[environment.Key] = environment.Value; } foreach (var context in profile.Contexts) { this.Contexts.Add(context.Key, context.Value); } DefaultContextKey = profile.DefaultContextKey ?? (profile.Contexts.Any() ? null : "Default"); } }
public bool TrySetEnvironment(IAzureEnvironment environment, out IAzureEnvironment mergedEnvironment) { bool result = false; mergedEnvironment = environment; if (environment != null && !AzureEnvironment.PublicEnvironments.ContainsKey(environment.Name)) { if (EnvironmentTable.ContainsKey(environment.Name)) { mergedEnvironment = mergedEnvironment.Merge(EnvironmentTable[environment.Name]); } EnvironmentTable[environment.Name] = mergedEnvironment; result = true; foreach (var context in Contexts) { if (context.Value.Environment != null && context.Value.Environment.Name == environment.Name) { context.Value.Environment = mergedEnvironment; } } } return(result); }
/// <summary> /// Writes the profile using the specified file provider /// </summary> /// <param name="provider">The file provider used to save the profile</param> public void Save(IFileProvider provider, bool serializeCache = true) { foreach (string env in AzureEnvironment.PublicEnvironments.Keys) { EnvironmentTable.Remove(env); } try { TryRemoveContext(Constants.DefaultValue); string contents = ToString(serializeCache); string diskContents = string.Empty; diskContents = provider.CreateReader().ReadToEnd(); if (diskContents != contents) { var writer = provider.CreateWriter(); writer.Write(contents); writer.Flush(); // When writing to a stream, ensure that the file is truncated // so that previous data is overwritten provider.Stream.SetLength(provider.Stream.Position); } } finally { // Adding back predefined environments foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) { EnvironmentTable[env.Name] = env; } } }
private void Initialize(AzureRmProfile profile) { EnvironmentTable.Clear(); // Adding predefined environments foreach (var env in AzureEnvironment.PublicEnvironments) { EnvironmentTable[env.Key] = env.Value; } Contexts.Clear(); DefaultContextKey = "Default"; if (profile != null) { foreach (var environment in profile.EnvironmentTable) { EnvironmentTable[environment.Key] = environment.Value; } foreach (var context in profile.Contexts) { context.Value.TokenCache = AzureSession.Instance.TokenCache; this.Contexts.Add(context.Key, context.Value); } DefaultContextKey = profile.DefaultContextKey ?? "Default"; } }
private void Load(string path) { this.ProfilePath = path; if (!AzureSession.Instance.DataStore.DirectoryExists(AzureSession.Instance.ProfileDirectory)) { AzureSession.Instance.DataStore.CreateDirectory(AzureSession.Instance.ProfileDirectory); } if (AzureSession.Instance.DataStore.FileExists(ProfilePath)) { string contents = AzureSession.Instance.DataStore.ReadFileAsText(ProfilePath); var oldProfile = JsonConvert.DeserializeObject <LegacyAzureRmProfile>(contents); AzureRmProfile profile; if (!oldProfile.TryConvert(out profile)) { profile = JsonConvert.DeserializeObject <IAzureContextContainer>(contents, new AzureRmProfileConverter()) as AzureRmProfile; } Debug.Assert(profile != null); EnvironmentTable.Clear(); foreach (var environment in profile.EnvironmentTable) { EnvironmentTable[environment.Key] = environment.Value; } Contexts.Clear(); foreach (var context in profile.Contexts) { this.Contexts.Add(context.Key, context.Value); } } }
/// <summary> /// Set the contaienr to its defautl state /// </summary> public void Clear() { Contexts.Clear(); DefaultContext = new AzureContext(); EnvironmentTable.Clear(); foreach (var environment in AzureEnvironment.PublicEnvironments) { EnvironmentTable.Add(environment.Key, environment.Value); } }
public bool TryRemoveEnvironment(string name, out IAzureEnvironment environment) { bool result = false; if (TryGetEnvironment(name, out environment)) { result = EnvironmentTable.Remove(name); } return(result); }
/// <summary> /// Set the contaienr to its default state /// </summary> public void Clear() { this.GetTokenCache()?.Clear(); Contexts.Clear(); DefaultContextKey = "Default"; DefaultContext = new AzureContext(); EnvironmentTable.Clear(); foreach (var environment in AzureEnvironment.PublicEnvironments) { EnvironmentTable.Add(environment.Key, environment.Value); } AzureRmProfileProvider.Instance.SetTokenCacheForProfile(this); }
public bool TrySetEnvironment(IAzureEnvironment environment, out IAzureEnvironment mergedEnvironment) { bool result = false; mergedEnvironment = environment; if (environment != null && !AzureEnvironment.PublicEnvironments.ContainsKey(environment.Name)) { if (EnvironmentTable.ContainsKey(environment.Name)) { mergedEnvironment = mergedEnvironment.Merge(EnvironmentTable[environment.Name]); } EnvironmentTable[environment.Name] = mergedEnvironment; result = true; } return(result); }
/// <summary> /// Writes profile to a specified path. /// </summary> /// <param name="path">File path on disk to save profile to</param> public void Save(string path) { if (string.IsNullOrEmpty(path)) { return; } // Removing predefined environments foreach (string env in AzureEnvironment.PublicEnvironments.Keys) { EnvironmentTable.Remove(env); } try { string contents = ToString(); string diskContents = string.Empty; if (AzureSession.Instance.DataStore.FileExists(path)) { diskContents = AzureSession.Instance.DataStore.ReadFileAsText(path); } if (diskContents != contents) { AzureSession.Instance.DataStore.WriteFile(path, contents); } } finally { // Adding back predefined environments foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) { EnvironmentTable[env.Name] = env; } } }
public bool HasEnvironment(string name) { return(EnvironmentTable.ContainsKey(name)); }