private static bool replace_Saltkey_in_previous_configuration_DECAC(Session session, string SaltKey, ref string CustomActionData_value) { // Read SaltKey properties and convert some from 1 to True or to False bool replaced = false; session.Log("...replace_Saltkey_in_previous_configuration_DECAC Key " + SaltKey); CustomActionData_value = MinionConfigurationUtilities.get_property_DECAC(session, SaltKey); if (SaltKey == "zmq_filtering") { CustomActionData_value = (CustomActionData_value == "1") ? "True" : "False"; session.Log("...changed zmq_filtering to " + CustomActionData_value); } if (SaltKey == "minion_id_caching") { CustomActionData_value = (CustomActionData_value == "1") ? "True" : "False"; session.Log("...changed zmq_filtering to " + CustomActionData_value); } session.Message(InstallMessage.Progress, new Record(2, 1)); // pattern description // ^ start of line // anything after the colon is ignored and would be removed string pattern = "^" + SaltKey + ":"; string replacement = String.Format(SaltKey + ": {0}", CustomActionData_value); // Replace in all files replaced = replace_pattern_in_all_config_files_DECAC(session, pattern, replacement); session.Message(InstallMessage.Progress, new Record(2, 1)); session.Log(@"...replace_Saltkey_in_previous_configuration_DECAC found or replaces " + replaced.ToString()); return(replaced); }
private static void apply_minion_config_DECAC(Session session, string minion_config) { // Precondition: parameter minion_config contains the content of the MINION_CONFI property and is not empty // Remove all other config session.Log("...apply_minion_config_DECAC BEGIN"); string conffolder = MinionConfigurationUtilities.get_property_DECAC(session, "conffolder"); string minion_d_conf_folder = MinionConfigurationUtilities.get_property_DECAC(session, "minion_d_conf_folder"); // Write conf/minion string lines = minion_config.Replace("^", Environment.NewLine); MinionConfigurationUtilities.Writeln_file(session, conffolder, "minion", lines); // Remove conf/minion_id string minion_id = Path.Combine(conffolder, "minion_id"); session.Log("...searching " + minion_id); if (File.Exists(minion_id)) { File.Delete(minion_id); session.Log("...deleted " + minion_id); } // Remove conf/minion.d/*.conf session.Log("...searching *.conf in " + minion_d_conf_folder); if (Directory.Exists(minion_d_conf_folder)) { var conf_files = System.IO.Directory.GetFiles(minion_d_conf_folder, "*.conf"); foreach (var conf_file in conf_files) { File.Delete(conf_file); session.Log("...deleted " + conf_file); } } session.Log(@"...apply_minion_config_DECAC END"); }
private static void save_config_DECAC(Session session) { session.Log(@"...save_config_DECAC"); string kwargs_in_commata = MinionConfigurationUtilities.get_property_DECAC(session, "minion_config"); if (kwargs_in_commata.Length > 0) { string lines = kwargs_in_commata.Replace("^", Environment.NewLine); MinionConfigurationUtilities.Writeln_file(session, @"C:\salt\conf", "minion", lines); } }
private static void save_id_function_DECAC(Session session) { session.Log(@"...save_id_function_DECAC"); string minion_id_function = MinionConfigurationUtilities.get_property_DECAC(session, "minion_id_function"); if (minion_id_function.Length > 0) { string filepath = @"c:\salt\var\cache\salt\minion\extmods\modules"; string filename = @"id_function.py"; string filecontent = @"import socket def id_function(): return " + minion_id_function; MinionConfigurationUtilities.Writeln_file(session, filepath, filename, filecontent); } }
public static ActionResult WriteConfig_DECAC(Session session) { /* * This function must leave the config files according to the CONFIG_TYPE's 1-3 * This function is deferred (_DECAC) * This function runs after the msi has created the c:\salt\conf\minion file, which is a comment-only text. * If there was a previous install, there could be many config files. * The previous install c:\salt\conf\minion file could contain non-comments. * One of the non-comments could be master. * It could be that this installer has a different master. * */ // Must have this signature or cannot uninstall not even write to the log session.Log("...BEGIN WriteConfig_DECAC"); session.Log("...VERSION MinionConfigurationExtensionCA 1"); string minion_config = MinionConfigurationUtilities.get_property_DECAC(session, "minion_config"); if (minion_config.Length > 0) { apply_minion_config_DECAC(session, minion_config); } else { string master = ""; string id = ""; if (!replace_Saltkey_in_previous_configuration_DECAC(session, "master", ref master)) { append_to_config_DECAC(session, "master", master); } if (!replace_Saltkey_in_previous_configuration_DECAC(session, "id", ref id)) { append_to_config_DECAC(session, "id", id); } save_custom_config_file_if_config_type_demands_DECAC(session); } session.Log("...END WriteConfig_DECAC"); return(ActionResult.Success); }