cluster: RHEL6 - cman-preconfig: better handle of logging reload operation (part 2)
Fabio M. Di Nitto
fabbione at fedoraproject.org
Tue Jul 27 08:44:20 UTC 2010
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=348d5e9b4b3cd92e8739a5fc3b9e6bd2809dc722
Commit: 348d5e9b4b3cd92e8739a5fc3b9e6bd2809dc722
Parent: b1e6e600f3d8778e4cc70bc765560959b91ea540
Author: Fabio M. Di Nitto <fdinitto at redhat.com>
AuthorDate: Mon Jul 26 16:05:06 2010 +0200
Committer: Fabio M. Di Nitto <fdinitto at redhat.com>
CommitterDate: Tue Jul 27 10:34:52 2010 +0200
cman-preconfig: better handle of logging reload operation (part 2)
Resolves: rhbz#615202
Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
---
cman/daemon/cman-preconfig.c | 168 ++++++++++++++++++++++--------------------
1 files changed, 89 insertions(+), 79 deletions(-)
diff --git a/cman/daemon/cman-preconfig.c b/cman/daemon/cman-preconfig.c
index 0de1f04..110f718 100644
--- a/cman/daemon/cman-preconfig.c
+++ b/cman/daemon/cman-preconfig.c
@@ -675,14 +675,99 @@ out:
return error;
}
-/* These are basically cman overrides to the totem config bits */
-static void add_cman_overrides(struct objdb_iface_ver0 *objdb)
+static void add_logging_overrides(struct objdb_iface_ver0 *objdb)
{
char *logstr;
char *logfacility;
char *loglevel;
hdb_handle_t object_handle;
hdb_handle_t find_handle;
+
+ /* Make sure mainconfig doesn't stomp on our logging options */
+ objdb->object_find_create(OBJECT_PARENT_HANDLE, "logging", strlen("logging"), &find_handle);
+ if (objdb->object_find_next(find_handle, &object_handle)) {
+
+ objdb->object_create(OBJECT_PARENT_HANDLE, &object_handle,
+ "logging", strlen("logging"));
+ }
+ objdb->object_find_destroy(find_handle);
+
+ logfacility = facility_name_get(SYSLOGFACILITY);
+ loglevel = priority_name_get(SYSLOGLEVEL);
+
+ /* enable timestamps on logging */
+ if (objdb_get_string(objdb, object_handle, "timestamp", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "timestamp",
+ "on", strlen("on")+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ /* configure logfile */
+ if (objdb_get_string(objdb, object_handle, "to_logfile", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "to_logfile",
+ "yes", strlen("yes")+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ if (objdb_get_string(objdb, object_handle, "logfile", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "logfile",
+ LOGDIR "/corosync.log", strlen(LOGDIR "/corosync.log")+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ if (objdb_get_string(objdb, object_handle, "logfile_priority", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "logfile_priority",
+ loglevel, strlen(loglevel)+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ /* syslog */
+ if (objdb_get_string(objdb, object_handle, "to_syslog", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "to_syslog",
+ "yes", strlen("yes")+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ if (objdb_get_string(objdb, object_handle, "syslog_facility", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "syslog_facility",
+ logfacility, strlen(logfacility)+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ if (objdb_get_string(objdb, object_handle, "syslog_priority", &logstr)) {
+ objdb->object_key_create_typed(object_handle, "syslog_priority",
+ loglevel, strlen(loglevel)+1, OBJDB_VALUETYPE_STRING);
+ }
+
+ if (!debug) {
+ hdb_handle_t logger_object_handle;
+
+ if (!objdb_get_string(objdb, object_handle, "debug", &logstr)) {
+ if (!strncmp(logstr, "on", 2)) {
+ debug=1;
+ }
+ }
+
+ logger_object_handle = find_cman_logger(objdb, object_handle);
+ if (logger_object_handle > -1) {
+ if (!objdb_get_string(objdb, logger_object_handle, "debug", &logstr)) {
+ if (!strncmp(logstr, "on", 2)) {
+ debug=1;
+ }
+ if (!strncmp(logstr, "off", 3)) {
+ debug=0;
+ }
+ }
+ }
+ }
+
+ if (debug) {
+ objdb->object_key_create_typed(object_handle, "to_stderr",
+ "yes", strlen("yes")+1, OBJDB_VALUETYPE_STRING);
+ }
+
+
+}
+
+/* These are basically cman overrides to the totem config bits */
+static void add_cman_overrides(struct objdb_iface_ver0 *objdb)
+{
+ hdb_handle_t object_handle;
+ hdb_handle_t find_handle;
char tmp[256];
/* "totem" key already exists, because we have added the interfaces by now */
@@ -776,82 +861,7 @@ static void add_cman_overrides(struct objdb_iface_ver0 *objdb)
}
objdb->object_find_destroy(find_handle);
- /* Make sure mainconfig doesn't stomp on our logging options */
- objdb->object_find_create(OBJECT_PARENT_HANDLE, "logging", strlen("logging"), &find_handle);
- if (objdb->object_find_next(find_handle, &object_handle)) {
-
- objdb->object_create(OBJECT_PARENT_HANDLE, &object_handle,
- "logging", strlen("logging"));
- }
- objdb->object_find_destroy(find_handle);
-
- logfacility = facility_name_get(SYSLOGFACILITY);
- loglevel = priority_name_get(SYSLOGLEVEL);
-
- /* enable timestamps on logging */
- if (objdb_get_string(objdb, object_handle, "timestamp", &logstr)) {
- objdb->object_key_create_typed(object_handle, "timestamp",
- "on", strlen("on")+1, OBJDB_VALUETYPE_STRING);
- }
-
- /* configure logfile */
- if (objdb_get_string(objdb, object_handle, "to_logfile", &logstr)) {
- objdb->object_key_create_typed(object_handle, "to_logfile",
- "yes", strlen("yes")+1, OBJDB_VALUETYPE_STRING);
- }
-
- if (objdb_get_string(objdb, object_handle, "logfile", &logstr)) {
- objdb->object_key_create_typed(object_handle, "logfile",
- LOGDIR "/corosync.log", strlen(LOGDIR "/corosync.log")+1, OBJDB_VALUETYPE_STRING);
- }
-
- if (objdb_get_string(objdb, object_handle, "logfile_priority", &logstr)) {
- objdb->object_key_create_typed(object_handle, "logfile_priority",
- loglevel, strlen(loglevel)+1, OBJDB_VALUETYPE_STRING);
- }
-
- /* syslog */
- if (objdb_get_string(objdb, object_handle, "to_syslog", &logstr)) {
- objdb->object_key_create_typed(object_handle, "to_syslog",
- "yes", strlen("yes")+1, OBJDB_VALUETYPE_STRING);
- }
-
- if (objdb_get_string(objdb, object_handle, "syslog_facility", &logstr)) {
- objdb->object_key_create_typed(object_handle, "syslog_facility",
- logfacility, strlen(logfacility)+1, OBJDB_VALUETYPE_STRING);
- }
-
- if (objdb_get_string(objdb, object_handle, "syslog_priority", &logstr)) {
- objdb->object_key_create_typed(object_handle, "syslog_priority",
- loglevel, strlen(loglevel)+1, OBJDB_VALUETYPE_STRING);
- }
-
- if (!debug) {
- hdb_handle_t logger_object_handle;
-
- if (!objdb_get_string(objdb, object_handle, "debug", &logstr)) {
- if (!strncmp(logstr, "on", 2)) {
- debug=1;
- }
- }
-
- logger_object_handle = find_cman_logger(objdb, object_handle);
- if (logger_object_handle > -1) {
- if (!objdb_get_string(objdb, logger_object_handle, "debug", &logstr)) {
- if (!strncmp(logstr, "on", 2)) {
- debug=1;
- }
- if (!strncmp(logstr, "off", 3)) {
- debug=0;
- }
- }
- }
- }
-
- if (debug) {
- objdb->object_key_create_typed(object_handle, "to_stderr",
- "yes", strlen("yes")+1, OBJDB_VALUETYPE_STRING);
- }
+ add_logging_overrides(objdb);
/* Make sure we allow connections from user/group "ais" */
objdb->object_find_create(OBJECT_PARENT_HANDLE, "aisexec", strlen("aisexec"), &find_handle);
@@ -1226,7 +1236,7 @@ static int cmanpre_reloadconfig(struct objdb_iface_ver0 *objdb, int flush, const
/* copy /cluster/totem to /totem */
ret = copy_tree_to_root(objdb, "totem", 0);
- add_cman_overrides(objdb);
+ add_logging_overrides(objdb);
return 0;
More information about the cluster-commits
mailing list