blob: 53ff585e8fb6bce35d058660c794b41688d73640 [file] [log] [blame]
/*
* Copyright (C) 2012
* David Vossel <davidvossel@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef STANDALONE_CONFIG__H
# define STANDALONE_CONFIG__H
/*! Picking a large number in effort to avoid a dynamic list. */
# define STANDALONE_CFG_MAX_KEYVALS 100
# define STONITH_NG_CONF_FILE "/etc/pacemaker/stonith-ng.conf"
/*!
* \brief Attempts to open a stonith standalone config file
* and load the config internally.
*
* \note standalone_cfg_commit() must be executed after
* reading in the file before the config will be activated.
*
* \retval 0, success
* \retval -1, failure
*/
int standalone_cfg_read_file(const char *file_path);
/*!
* \brief Add a fencing device to the standalone config
*
* \param device, Name of the fencing device to be created.
* \param agent, The underlying fencing agent this device will use.
*
* \retval 0, Success
* \retval -1, Failure
*/
int standalone_cfg_add_device(const char *device, const char *agent);
/*!
* \brief Add an option (key value pair) to an existing fencing device.
*
* \param device, Name of the fencing device
* \param key, the Key portion of the key value pair.
* \param value, the value portion of the key value pair.
*
* \retval 0, Success
* \retval -1, Failure
*/
int standalone_cfg_add_device_options(const char *device, const char *key, const char *value);
/*!
* \brief Add a node to a fencing device.
*
* \param node, Name of the node to add to the fencing device
* \param device, Name of the fencing device to add the node to
* \param ports, The port mappings of this specific node for the device, NULL if no
* port mapping is present.
*
* \retval 0, Success
* \retval -1, failure
*/
int standalone_cfg_add_node(const char *node, const char *device, const char *ports);
/*!
* \brief Add a fencing level rule to a node for a specific fencing device.
*/
int standalone_cfg_add_node_priority(const char *node, const char *device, unsigned int level);
/*!
* \brief Commits all the changes added to the standalone config into the stonithd core.
*/
int standalone_cfg_commit(void);
#endif