dhodovsk / source-git / pacemaker

Forked from source-git/pacemaker 3 years ago
Clone

Blame include/crm/pengine/status.h

rpm-build 3ee90c
/*
rpm-build 3ee90c
 * Copyright 2004-2019 the Pacemaker project contributors
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * The version control history for this file may have further details.
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * This source code is licensed under the GNU Lesser General Public License
rpm-build 3ee90c
 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
rpm-build 3ee90c
 */
rpm-build 3ee90c
rpm-build 3ee90c
#ifndef PENGINE_STATUS__H
rpm-build 3ee90c
#  define PENGINE_STATUS__H
rpm-build 3ee90c
rpm-build 3ee90c
#ifdef __cplusplus
rpm-build 3ee90c
extern "C" {
rpm-build 3ee90c
#endif
rpm-build 3ee90c
rpm-build 3ee90c
/*!
rpm-build 3ee90c
 * \file
rpm-build 3ee90c
 * \brief Cluster status and scheduling
rpm-build 3ee90c
 * \ingroup pengine
rpm-build 3ee90c
 */
rpm-build 3ee90c
rpm-build 3ee90c
#  include <glib.h>                 // gboolean
rpm-build 3ee90c
#  include <stdbool.h>              // bool
rpm-build 3ee90c
#  include <crm/crm.h>              // GListPtr
rpm-build 3ee90c
#  include <crm/common/iso8601.h>
rpm-build 3ee90c
#  include <crm/pengine/common.h>
rpm-build 3ee90c
#  include <crm/pengine/pe_types.h> // pe_node_t, pe_resource_t, etc.
rpm-build 3ee90c
#  include <crm/pengine/complex.h>
rpm-build 3ee90c
rpm-build 3ee90c
const char *rsc_printable_id(pe_resource_t *rsc);
rpm-build 3ee90c
gboolean cluster_status(pe_working_set_t * data_set);
rpm-build 3ee90c
pe_working_set_t *pe_new_working_set(void);
rpm-build 3ee90c
void pe_free_working_set(pe_working_set_t *data_set);
rpm-build 3ee90c
void set_working_set_defaults(pe_working_set_t * data_set);
rpm-build 3ee90c
void cleanup_calculations(pe_working_set_t * data_set);
rpm-build 3ee90c
void pe_reset_working_set(pe_working_set_t *data_set);
rpm-build 3ee90c
pe_resource_t *pe_find_resource(GListPtr rsc_list, const char *id_rh);
rpm-build 3ee90c
pe_resource_t *pe_find_resource_with_flags(GListPtr rsc_list, const char *id, enum pe_find flags);
rpm-build 3ee90c
pe_node_t *pe_find_node(GListPtr node_list, const char *uname);
rpm-build 3ee90c
pe_node_t *pe_find_node_id(GListPtr node_list, const char *id);
rpm-build 3ee90c
pe_node_t *pe_find_node_any(GListPtr node_list, const char *id, const char *uname);
rpm-build 3ee90c
GListPtr find_operations(const char *rsc, const char *node, gboolean active_filter,
rpm-build 3ee90c
                         pe_working_set_t * data_set);
rpm-build 3ee90c
int pe_bundle_replicas(const pe_resource_t *rsc);
rpm-build 3ee90c
#if ENABLE_VERSIONED_ATTRS
rpm-build 3ee90c
pe_rsc_action_details_t *pe_rsc_action_details(pe_action_t *action);
rpm-build 3ee90c
#endif
rpm-build 3ee90c
rpm-build 3ee90c
/*!
rpm-build 3ee90c
 * \brief Check whether a resource is any clone type
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \param[in] rsc  Resource to check
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \return TRUE if resource is clone, FALSE otherwise
rpm-build 3ee90c
 */
rpm-build 3ee90c
static inline bool
rpm-build 3ee90c
pe_rsc_is_clone(pe_resource_t *rsc)
rpm-build 3ee90c
{
rpm-build 3ee90c
    return rsc && (rsc->variant == pe_clone);
rpm-build 3ee90c
}
rpm-build 3ee90c
rpm-build 3ee90c
/*!
rpm-build 3ee90c
 * \brief Check whether a resource is a globally unique clone
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \param[in] rsc  Resource to check
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \return TRUE if resource is unique clone, FALSE otherwise
rpm-build 3ee90c
 */
rpm-build 3ee90c
static inline bool
rpm-build 3ee90c
pe_rsc_is_unique_clone(pe_resource_t *rsc)
rpm-build 3ee90c
{
rpm-build 3ee90c
    return pe_rsc_is_clone(rsc) && is_set(rsc->flags, pe_rsc_unique);
rpm-build 3ee90c
}
rpm-build 3ee90c
rpm-build 3ee90c
/*!
rpm-build 3ee90c
 * \brief Check whether a resource is an anonymous clone
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \param[in] rsc  Resource to check
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \return TRUE if resource is anonymous clone, FALSE otherwise
rpm-build 3ee90c
 */
rpm-build 3ee90c
static inline bool
rpm-build 3ee90c
pe_rsc_is_anon_clone(pe_resource_t *rsc)
rpm-build 3ee90c
{
rpm-build 3ee90c
    return pe_rsc_is_clone(rsc) && is_not_set(rsc->flags, pe_rsc_unique);
rpm-build 3ee90c
}
rpm-build 3ee90c
rpm-build 3ee90c
/*!
rpm-build 3ee90c
 * \brief Check whether a resource is part of a bundle
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \param[in] rsc  Resource to check
rpm-build 3ee90c
 *
rpm-build 3ee90c
 * \return TRUE if resource is part of a bundle, FALSE otherwise
rpm-build 3ee90c
 */
rpm-build 3ee90c
static inline bool
rpm-build 3ee90c
pe_rsc_is_bundled(pe_resource_t *rsc)
rpm-build 3ee90c
{
rpm-build 3ee90c
    return uber_parent(rsc)->parent != NULL;
rpm-build 3ee90c
}
rpm-build 3ee90c
rpm-build 3ee90c
#ifdef __cplusplus
rpm-build 3ee90c
}
rpm-build 3ee90c
#endif
rpm-build 3ee90c
rpm-build 3ee90c
#endif