1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
samba-mirror/ctdb/server/ctdb_uptime.c
Ronnie Sahlberg ef769e7237 track both when we last started and ended a recovery.
make ctdb uptime print how long the recovery took

in the recovery daemon when we check that the public ip address
allocation on the local node is correct (we have the ips we should have
and we dont have any we shouldnt have) use ctdb uptime and check the
recovery start/stop times and make sure we dont check for ip allocation
inconsistencies during a recovery  where the ip address allocation is in flux.

(This used to be ctdb commit f86551580349b7f662f9a07e4eb0c1189e38e429)
2008-07-02 13:55:59 +10:00

47 lines
1.4 KiB
C

/*
ctdb uptime code
Copyright (C) Ronnie Sahlberg 2008
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "includes.h"
#include "lib/events/events.h"
#include "../include/ctdb_private.h"
#include "system/syslog.h"
#include "system/time.h"
#include "system/filesys.h"
/*
returns the ctdb uptime
*/
int32_t ctdb_control_uptime(struct ctdb_context *ctdb, TDB_DATA *outdata)
{
struct ctdb_uptime *uptime;
uptime = talloc_zero(outdata, struct ctdb_uptime);
CTDB_NO_MEMORY(ctdb, uptime);
gettimeofday(&uptime->current_time, NULL);
uptime->ctdbd_start_time = ctdb->ctdbd_start_time;
uptime->last_recovery_started = ctdb->last_recovery_started;
uptime->last_recovery_finished = ctdb->last_recovery_finished;
outdata->dsize = sizeof(struct ctdb_uptime);
outdata->dptr = (uint8_t *)uptime;
return 0;
}