# HG changeset patch # User Frank DiMeo <frank.di...@bigbandnet.com> # Date 1260478129 18000 # Branch stable-1.0 # Node ID e7067734add7f3b148cb534b85b5af256db9fad7 # Parent 381160def02a34ae554637e0a26efda850ccc015 initial load of static configuration file
diff -r 381160def02a -r e7067734add7 cib/io.c --- a/cib/io.c Thu Dec 10 09:07:45 2009 -0500 +++ b/cib/io.c Thu Dec 10 15:48:49 2009 -0500 @@ -261,7 +261,7 @@ crm_err("%s exists but does NOT contain valid XML. ", filename); crm_warn("Continuing but %s will NOT used.", filename); - } else if(validate_cib_digest(root, sigfile) == FALSE) { + } else if(sigfile && ( validate_cib_digest(root, sigfile) == FALSE )) { crm_err("Checksum of %s failed! Configuration contents ignored!", filename); crm_err("Usually this is caused by manual changes, " "please refer to http://clusterlabs.org/wiki/FAQ#cib_changes_detected"); @@ -282,11 +282,12 @@ readCibXmlFile(const char *dir, const char *file, gboolean discard_status) { int seq = 0; - char *filename = NULL, *sigfile = NULL; + char *filename = NULL, *sigfile = NULL, *static_config_file = NULL; const char *name = NULL; const char *value = NULL; const char *validation = NULL; const char *use_valgrind = getenv("HA_VALGRIND_ENABLED"); + struct stat buf; xmlNode *root = NULL; xmlNode *status = NULL; @@ -300,7 +301,23 @@ sigfile = crm_concat(filename, "sig", '.'); cib_status = cib_ok; - root = retrieveCib(filename, sigfile, TRUE); + + /* + ** we might drop a static config file in there as a known startup point + ** if we do, use it. Its called <file>.xml.static_init + */ + static_config_file = crm_concat(filename, "static_init", '.'); + + crm_info("Looking for static initialization file : %s", static_config_file); + + if(stat(static_config_file, &buf) == 0) { + crm_info("Using initial configuration file : %s", static_config_file); + root = retrieveCib(static_config_file, NULL, TRUE); + } + else { + crm_info("Using found configuration file : %s", filename); + root = retrieveCib(filename, sigfile, TRUE); + } if(root == NULL) { crm_warn("Primary configuration corrupt or unusable, trying backup..."); @@ -308,7 +325,6 @@ } while(root == NULL) { - struct stat buf; char *backup_file = NULL; crm_free(sigfile); @@ -409,6 +425,7 @@ } } + crm_free(static_config_file); crm_free(filename); crm_free(sigfile); return root; _______________________________________________ Pacemaker mailing list Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker