[Cluster-devel] cluster/cman/daemon cmanccs.c
pcaulfield at sourceware.org
pcaulfield at sourceware.org
Tue Jan 2 15:17:37 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: pcaulfield at sourceware.org 2007-01-02 15:17:36
Modified files:
cman/daemon : cmanccs.c
Log message:
Bring forward the last two changes from HEAD:
- add cluster_id to cluster.conf
- improve error message if cluster name is too long.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/cmanccs.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.21.2.1&r2=1.21.2.2
--- cluster/cman/daemon/cmanccs.c 2006/11/30 10:47:23 1.21.2.1
+++ cluster/cman/daemon/cmanccs.c 2007/01/02 15:17:36 1.21.2.2
@@ -36,6 +36,7 @@
#define CONFIG_VERSION_PATH "/cluster/@config_version"
#define CLUSTER_NAME_PATH "/cluster/@name"
+#define CLUSTER_ID_PATH "/cluster/cman/@cluster_id"
#define EXP_VOTES_PATH "/cluster/cman/@expected_votes"
#define TWO_NODE_PATH "/cluster/cman/@two_node"
#define MCAST_ADDR_PATH "/cluster/cman/multicast/@addr"
@@ -217,6 +218,10 @@
*/
error = cman_join_cluster(cluster_name, cluster_id,
two_node, expected_votes);
+ if (error == -EINVAL) {
+ write_cman_pipe("Cannot start, cluster name is too long or other CCS error");
+ return error;
+ }
if (error) {
write_cman_pipe("Cannot start, ais may already be running");
return error;
@@ -402,7 +407,15 @@
strcpy(cluster_name, str);
}
free(str);
- cluster_id = generate_cluster_id(cluster_name);
+
+ error = ccs_get(cd, CLUSTER_ID_PATH, &str);
+ if (!error) {
+ cluster_id = atoi(str);
+ free(str);
+ }
+ else {
+ cluster_id = generate_cluster_id(cluster_name);
+ }
/* our nodename */
memset(nodename, 0, sizeof(nodename));
More information about the Cluster-devel
mailing list