* [Cluster-devel] cluster/fence/agents/xvm fence_xvmd.c xml.c
@ 2007-11-19 17:03 lhh
0 siblings, 0 replies; only message in thread
From: lhh @ 2007-11-19 17:03 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: lhh at sourceware.org 2007-11-19 17:03:27
Modified files:
fence/agents/xvm: fence_xvmd.c xml.c
Log message:
Ancillary NOCLUSTER mode fixes for fence_xvmd
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/xvm/fence_xvmd.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.8&r2=1.4.2.9
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/xvm/xml.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.3&r2=1.1.2.4
--- cluster/fence/agents/xvm/fence_xvmd.c 2007/11/14 18:41:27 1.4.2.8
+++ cluster/fence/agents/xvm/fence_xvmd.c 2007/11/19 17:03:27 1.4.2.9
@@ -219,7 +219,8 @@
int
do_fence_request_tcp(fence_req_t *req, fence_auth_type_t auth,
- void *key, size_t key_len, virConnectPtr vp)
+ void *key, size_t key_len, virConnectPtr vp,
+ int flags)
{
int fd = -1, ret = -1;
virDomainPtr vdp;
@@ -227,7 +228,7 @@
char *domain_desc, *domain_desc_sanitized;
size_t sz;
- if (!(vdp = get_domain(req, vp))) {
+ if (!(vdp = get_domain(req, vp)) && (!(flags & F_NOCLUSTER))) {
dbg_printf(2, "Could not find domain: %s\n", req->domain);
goto out;
}
@@ -246,6 +247,12 @@
break;
case FENCE_OFF:
printf("Destroying domain %s...\n", (char *)req->domain);
+ if (!vdp && (flags & F_NOCLUSTER)) {
+ dbg_printf(2, "[OFF + NOCLUSTER] Nothing to do - "
+ "domain does not exist\n");
+ response = 0;
+ break;
+ }
dbg_printf(2, "[OFF] Calling virDomainDestroy\n");
ret = virDomainDestroy(vdp);
@@ -263,6 +270,14 @@
case FENCE_REBOOT:
printf("Rebooting domain %s...\n",
(char *)req->domain);
+
+ if (!vdp && (flags & F_NOCLUSTER)) {
+ dbg_printf(2, "[REBOOT + NOCLUSTER] Nothing to do - "
+ "domain does not exist\n");
+ response = 0;
+ break;
+ }
+
domain_desc = virDomainGetXMLDesc(vdp, 0);
if (domain_desc) {
@@ -283,10 +298,10 @@
"libvirt\n");
}
- dbg_printf(2, "[REBOOT] Calling virDomainDestroy\n");
+ dbg_printf(2, "[REBOOT] Calling virDomainDestroy(%p)\n", vdp);
ret = virDomainDestroy(vdp);
if (ret < 0) {
- printf("virDomainDestroy() failed: %d\n", ret);
+ printf("virDomainDestroy() failed: %d/%d\n", ret, errno);
if (domain_desc)
free(domain_desc);
break;
@@ -652,7 +667,7 @@
case AUTH_SHA512:
printf("Plain TCP request\n");
do_fence_request_tcp(&data, args->auth, key,
- key_len, vp);
+ key_len, vp, args->flags);
break;
default:
printf("XXX Unhandled authentication\n");
--- cluster/fence/agents/xvm/xml.c 2007/10/10 16:14:15 1.1.2.3
+++ cluster/fence/agents/xvm/xml.c 2007/11/19 17:03:27 1.1.2.4
@@ -82,6 +82,8 @@
flip_graphics_port(doc);
os_node = get_os_node(doc);
+ if (!os_node)
+ return -1;
curr = os_node->children;
while (curr) {
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-11-19 17:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-19 17:03 [Cluster-devel] cluster/fence/agents/xvm fence_xvmd.c xml.c lhh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).