private static List <string> GetConfigData(PsConfiguration configuration) { List <string> configData = new List <string> { "$ConfigData_" + configuration.GetId() + " = @{", "AllNodes = @(", "@{", "NodeName = '*'", "PSDscAllowDomainUser = $true", "PSDscAllowPlainTextPassword = $true", "}" }; foreach (string server in configuration.Servers) { configData.AddRange(new List <string> { ",@{", "NodeName = '" + server + "'", "}" }); } configData.AddRange(new List <string> { ")", "}" }); return(configData); }
private static List <string> GetConfigText(PsConfiguration configuration, DscRepository repository) { List <string> configText = new List <string> { "Configuration Config_" + configuration.GetId(), "{", "Param", "(" }; for (int i = 0; i < configuration.Variables.Keys.Count; i++) { if (i == configuration.Variables.Keys.Count - 1) { configText.Add("$" + configuration.Variables.Keys.ElementAt(i)); } else { configText.Add("$" + configuration.Variables.Keys.ElementAt(i) + ","); } } configText.Add(")"); configText.AddRange(configuration.GetUsedModules(repository).Select(module => "Import-DscResource -Module " + module)); configText.AddRange(new List <string> { "Node $AllNodes.Nodename", "{" }); HashSet <string> resourceStrings = new HashSet <string>(); foreach (string roleString in configuration.Roles) { DscRoleNode roleNode = repository.Roles.GetRoleNode(roleString); resourceStrings.UnionWith(roleNode.Role.Resources); } foreach (string resourceString in resourceStrings) { DscConfigurationItemNode configurationItemNode = repository.GetConfigurationItemNode(resourceString); configText.AddRange(GetConfigurationItemText(configurationItemNode, repository)); } configText.AddRange(new List <string> { "}", "}" }); return(configText); }