Example #1
0
        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");
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
        }