forked from altcloud/fence-virt
Return 2 for 'off' like other fencing agents
Signed-off-by: Lon Hohberger <lon@users.sourceforge.net>
This commit is contained in:
parent
2c4df2e500
commit
30481d4cc9
@ -127,6 +127,7 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch(ret) {
|
switch(ret) {
|
||||||
|
case RESP_OFF:
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
case RESP_FAIL:
|
case RESP_FAIL:
|
||||||
|
@ -115,7 +115,8 @@ typedef struct __attribute__((packed)) _serial_fense_resp {
|
|||||||
|
|
||||||
#define RESP_SUCCESS 0
|
#define RESP_SUCCESS 0
|
||||||
#define RESP_FAIL 1
|
#define RESP_FAIL 1
|
||||||
#define RESP_PERM 2
|
#define RESP_OFF 2
|
||||||
|
#define RESP_PERM 3
|
||||||
#define RESP_HOSTLIST 253
|
#define RESP_HOSTLIST 253
|
||||||
|
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@ do_real_work(void *data, size_t len, uint32_t nodeid, uint32_t seqno)
|
|||||||
struct ckpt_fence_req *req = data;
|
struct ckpt_fence_req *req = data;
|
||||||
struct ckpt_fence_req reply;
|
struct ckpt_fence_req reply;
|
||||||
uint32_t owner;
|
uint32_t owner;
|
||||||
int ret;
|
int ret = 1;
|
||||||
|
|
||||||
memcpy(&reply, req, sizeof(reply));
|
memcpy(&reply, req, sizeof(reply));
|
||||||
|
|
||||||
@ -539,6 +539,9 @@ do_real_work(void *data, size_t len, uint32_t nodeid, uint32_t seqno)
|
|||||||
if (ret == 2) {
|
if (ret == 2) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (ret == 1) {
|
||||||
|
ret = RESP_OFF;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case FENCE_OFF:
|
case FENCE_OFF:
|
||||||
ret = cluster_virt_status(req->vm_name, &owner);
|
ret = cluster_virt_status(req->vm_name, &owner);
|
||||||
@ -558,6 +561,8 @@ do_real_work(void *data, size_t len, uint32_t nodeid, uint32_t seqno)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reply.response = ret;
|
||||||
|
|
||||||
cpg_send_reply(&reply, sizeof(reply), nodeid, seqno);
|
cpg_send_reply(&reply, sizeof(reply), nodeid, seqno);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "uuid-test.h"
|
#include "uuid-test.h"
|
||||||
|
#include <xvm.h>
|
||||||
|
|
||||||
#include <qpid/console/SessionManager.h>
|
#include <qpid/console/SessionManager.h>
|
||||||
|
|
||||||
@ -147,13 +148,14 @@ do_lq_request(struct lq_info *info, const char *vm_name,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!found) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Object::AttributeMap attrs;
|
Object::AttributeMap attrs;
|
||||||
MethodResponse result;
|
MethodResponse result;
|
||||||
|
|
||||||
|
if (!found) {
|
||||||
|
result.code = 1;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
vm_state = domain->attrString("state").c_str();
|
vm_state = domain->attrString("state").c_str();
|
||||||
|
|
||||||
std::cout << domain->attrString(property) << " "
|
std::cout << domain->attrString(property) << " "
|
||||||
@ -163,11 +165,16 @@ do_lq_request(struct lq_info *info, const char *vm_name,
|
|||||||
!strcmp( vm_state, "idle" ) ||
|
!strcmp( vm_state, "idle" ) ||
|
||||||
!strcmp( vm_state, "paused" ) ||
|
!strcmp( vm_state, "paused" ) ||
|
||||||
!strcmp( vm_state, "no state" ) ) {
|
!strcmp( vm_state, "no state" ) ) {
|
||||||
i = 1;
|
i = RESP_OFF;
|
||||||
} else {
|
} else {
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!strcasecmp(action, "status")) {
|
||||||
|
result.code = i;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
result.code = 1;
|
result.code = 1;
|
||||||
if (!strcasecmp(action, "destroy") && !i) {
|
if (!strcasecmp(action, "destroy") && !i) {
|
||||||
std::cout << "Domain is inactive; nothing to do" << std::endl;
|
std::cout << "Domain is inactive; nothing to do" << std::endl;
|
||||||
@ -239,7 +246,7 @@ lq_status(const char *vm_name, void *priv)
|
|||||||
VALIDATE(priv);
|
VALIDATE(priv);
|
||||||
printf("[libvirt-qpid] STATUS operation on %s\n", vm_name);
|
printf("[libvirt-qpid] STATUS operation on %s\n", vm_name);
|
||||||
|
|
||||||
return 1;
|
return do_lq_request((lq_info *)priv, vm_name, "destroy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -282,7 +282,7 @@ libvirt_status(const char *vm_name, void *priv)
|
|||||||
|
|
||||||
if (!vdp || ((virDomainGetInfo(vdp, &vdi) == 0) &&
|
if (!vdp || ((virDomainGetInfo(vdp, &vdi) == 0) &&
|
||||||
(vdi.state == VIR_DOMAIN_SHUTOFF))) {
|
(vdi.state == VIR_DOMAIN_SHUTOFF))) {
|
||||||
ret = 1;
|
ret = RESP_OFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vdp)
|
if (vdp)
|
||||||
|
Loading…
Reference in New Issue
Block a user