/*
 * Copyright (c) 2020 - 2021 Red Hat.
 *
 * 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 2 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.
 */

ha_cluster {
	pacemaker
	corosync
	sbd
	drbd
}

ha_cluster.pacemaker {
	config_last_change		HACLUSTER:0:0
	fail_count			HACLUSTER:1:0
	location_constraints
	migration_threshold		HACLUSTER:1:1
	nodes
	node_attributes			HACLUSTER:4:0
	resources
	stonith_enabled			HACLUSTER:0:1
}

ha_cluster.pacemaker.location_constraints {
	node				HACLUSTER:2:0
	resource			HACLUSTER:2:1
	role				HACLUSTER:2:2
	score				HACLUSTER:2:3
}

ha_cluster.pacemaker.nodes {
	status
	type				HACLUSTER:3:9
}

ha_cluster.pacemaker.nodes.status {
	online				HACLUSTER:3:0
	standby				HACLUSTER:3:1
	standby_on_fail			HACLUSTER:3:2
	maintenance			HACLUSTER:3:3
	pending				HACLUSTER:3:4
	unclean				HACLUSTER:3:5
	shutdown			HACLUSTER:3:6
	expected_up			HACLUSTER:3:7
	dc				HACLUSTER:3:8
}

ha_cluster.pacemaker.resources {
	agent				HACLUSTER:5:0
	clone				HACLUSTER:5:1
	group				HACLUSTER:5:2
	managed				HACLUSTER:5:3
	role				HACLUSTER:5:4
	status
}

ha_cluster.pacemaker.resources.status {
	active				HACLUSTER:5:5
	orphaned			HACLUSTER:5:6
	blocked				HACLUSTER:5:7
	failed				HACLUSTER:5:8
	failure_ignored			HACLUSTER:5:9
}

ha_cluster.corosync {
	member_votes
	quorate				HACLUSTER:7:0
	quorum_votes
	ring_errors			HACLUSTER:7:5
	rings
}

ha_cluster.corosync.member_votes {
	votes				HACLUSTER:6:0
	local				HACLUSTER:6:1
	node_id				HACLUSTER:6:2
}

ha_cluster.corosync.quorum_votes {
	expected_votes			HACLUSTER:7:1
	highest_expected		HACLUSTER:7:2
	total_votes			HACLUSTER:7:3
	quorum				HACLUSTER:7:4
}

ha_cluster.corosync.rings {
	status				HACLUSTER:8:0
	address				HACLUSTER:8:1
	node_id				HACLUSTER:8:2
	number				HACLUSTER:8:3
	ring_id				HACLUSTER:8:4
}

ha_cluster.sbd {
	devices
	timeouts
}

ha_cluster.sbd.devices {
	path				HACLUSTER:9:0
	status				HACLUSTER:9:1
}

ha_cluster.sbd.timeouts {
	mgswait				HACLUSTER:9:2
	allocate			HACLUSTER:9:3
	loop				HACLUSTER:9:4
	watchdog			HACLUSTER:9:5
}

ha_cluster.drbd {
	resources			
	written				HACLUSTER:10:4
	read				HACLUSTER:10:5
	al_writes			HACLUSTER:10:6
	bm_writes			HACLUSTER:10:7
	upper_pending			HACLUSTER:10:8
	lower_pending			HACLUSTER:10:9
	quorum				HACLUSTER:10:10
	connections
	connections_sync		HACLUSTER:11:5
	connections_received		HACLUSTER:11:6
	connections_sent		HACLUSTER:11:7
	connections_pending		HACLUSTER:11:8
	connections_unacked		HACLUSTER:11:9
	split_brain			HACLUSTER:10:11
}

ha_cluster.drbd.resources {
	resource			HACLUSTER:10:0
	role				HACLUSTER:10:1
	volume				HACLUSTER:10:2
	disk_state			HACLUSTER:10:3
}

ha_cluster.drbd.connections {
	resource			HACLUSTER:11:0
	peer_node_id			HACLUSTER:11:1
	peer_role			HACLUSTER:11:2
	volume				HACLUSTER:11:3
	peer_disk_state			HACLUSTER:11:4
}
