dlm: master - dlm_controld: add stonith calls
David Teigland
teigland at fedoraproject.org
Thu Jan 26 18:23:09 UTC 2012
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=fe16e2fea6085b4bc94c1cca0b5a2c021e9aff5c
Commit: fe16e2fea6085b4bc94c1cca0b5a2c021e9aff5c
Parent: c939ac3799a7e5088e2225eabf1d93210fed875c
Author: David Teigland <teigland at redhat.com>
AuthorDate: Thu Jan 26 12:21:54 2012 -0600
Committer: David Teigland <teigland at redhat.com>
CommitterDate: Thu Jan 26 12:21:54 2012 -0600
dlm_controld: add stonith calls
not used yet
Signed-off-by: David Teigland <teigland at redhat.com>
---
dlm_controld/cpg.c | 12 ++++++------
dlm_controld/dlm_daemon.h | 1 +
dlm_controld/fence.c | 38 +++++++++++++++-----------------------
3 files changed, 22 insertions(+), 29 deletions(-)
diff --git a/dlm_controld/cpg.c b/dlm_controld/cpg.c
index f490cf5..9a3134a 100644
--- a/dlm_controld/cpg.c
+++ b/dlm_controld/cpg.c
@@ -686,6 +686,11 @@ static int need_fencing(struct lockspace *ls)
return 0;
}
+/* we don't need to ask fenced to initiate fencing; it does
+ so itself when it sees a fence domain member fail. Without
+ fenced we'll probably need to ask another daemon to initiate
+ fencing, then check with it above, like we check libfenced. */
+
static void request_fencing(struct lockspace *ls)
{
struct node *node;
@@ -693,12 +698,7 @@ static void request_fencing(struct lockspace *ls)
list_for_each_entry(node, &ls->node_history, list) {
if (!node->request_fencing)
continue;
-
- /* we don't need to ask fenced to initiate fencing; it does
- so itself when it sees a fence domain member fail. Without
- fenced we'll probably need to ask another daemon to initiate
- fencing, then check with it above, like we check libfenced. */
-
+ fence_request(node->nodeid);
node->request_fencing = 0;
}
}
diff --git a/dlm_controld/dlm_daemon.h b/dlm_controld/dlm_daemon.h
index 497e6e8..3899550 100644
--- a/dlm_controld/dlm_daemon.h
+++ b/dlm_controld/dlm_daemon.h
@@ -348,6 +348,7 @@ void process_cluster_cfg(int ci);
void kick_node_from_cluster(int nodeid);
/* fence.c */
+void fence_request(int nodeid);
int fence_node_time(int nodeid, uint64_t *last_fenced_time);
int fence_in_progress(int *count);
diff --git a/dlm_controld/fence.c b/dlm_controld/fence.c
index 95a8bc1..f91d9de 100644
--- a/dlm_controld/fence.c
+++ b/dlm_controld/fence.c
@@ -7,38 +7,30 @@
*/
#include "dlm_daemon.h"
-//#include "libfenced.h"
+#ifdef STONITH
+#include <pacemaker/crm/stonith-ng.h>
+#endif
-int fence_node_time(int nodeid, uint64_t *last_fenced_time)
+void fence_request(int nodeid)
{
-/*
- struct fenced_node nodeinfo;
+#ifdef STONITH
int rv;
+ rv = stonith_api_kick_cs_helper(nodeid, 300, 1);
+ if (rv)
+ log_error("stonith_api_kick_cs_helper %d error %d", nodeid, rv);
+#endif
+}
- memset(&nodeinfo, 0, sizeof(nodeinfo));
-
- rv = fenced_node_info(nodeid, &nodeinfo);
- if (rv < 0)
- return rv;
-
- *last_fenced_time = nodeinfo.last_fenced_time;
-*/
+int fence_node_time(int nodeid, uint64_t *last_fenced_time)
+{
+#ifdef STONITH
+ *last_fenced_time = stonith_api_time_cs_helper(nodeid, 0);
+#endif
return 0;
}
int fence_in_progress(int *count)
{
-/* struct fenced_domain domain;
- int rv;
-
- memset(&domain, 0, sizeof(domain));
-
- rv = fenced_domain_info(&domain);
- if (rv < 0)
- return rv;
-
- *count = domain.victim_count;
-*/
return 0;
}
More information about the cluster-commits
mailing list