80 for (GList *gIter = rsc->
fillers; gIter != NULL; gIter = gIter->next) {
116 void (*helper)(
const node_t*,
void*),
void *user_data)
131 (*helper)(guest_node, user_data);
152 const char *container_id,
const char *migrateable,
153 const char *is_managed,
const char *start_timeout,
154 const char *server,
const char *port)
185 if (port || server) {
218 struct check_op *check_op = NULL;
220 CRM_CHECK(data_set && rsc_op && rsc && node,
return);
222 check_op = calloc(1,
sizeof(
struct check_op));
225 crm_trace(
"Deferring checks of %s until after allocation",
ID(rsc_op));
226 check_op->rsc_op = rsc_op;
228 check_op->node = node;
229 check_op->check_type = flag;
247 for (GList *item = data_set->
param_check; item != NULL; item = item->next) {
248 struct check_op *check_op = item->data;
250 cb(check_op->rsc, check_op->node, check_op->rsc_op,
251 check_op->check_type, data_set);
void pe__foreach_param_check(pe_working_set_t *data_set, void(*cb)(pe_resource_t *, pe_node_t *, xmlNode *, enum pe_check_parameters, pe_working_set_t *))
#define CRM_CHECK(expr, failure_action)
xmlNode * crm_create_op_xml(xmlNode *parent, const char *prefix, const char *task, const char *interval_spec, const char *timeout)
Create a CIB XML element for an operation.
void pe__add_param_check(xmlNode *rsc_op, pe_resource_t *rsc, pe_node_t *node, enum pe_check_parameters, pe_working_set_t *data_set)
pe_resource_t * container
xmlNode * pe_create_remote_xml(xmlNode *parent, const char *uname, const char *container_id, const char *migrateable, const char *is_managed, const char *start_timeout, const char *server, const char *port)
pe_resource_t * remote_rsc
const char * crm_xml_add(xmlNode *node, const char *name, const char *value)
Create an XML attribute with specified name and value.
gboolean pe__is_guest_or_remote_node(pe_node_t *node)
pe_node_t * pe_find_node(GListPtr node_list, const char *uname)
#define XML_RSC_ATTR_REMOTE_RA_ADDR
#define XML_TAG_ATTR_SETS
void pe_foreach_guest_node(const pe_working_set_t *data_set, const node_t *host, void(*helper)(const node_t *, void *), void *user_data)
#define pe_flag_have_remote_nodes
#define PCMK_RESOURCE_CLASS_OCF
gboolean pe__is_guest_node(pe_node_t *node)
#define XML_RSC_ATTR_CONTAINER
const char * crm_element_value(const xmlNode *data, const char *name)
Retrieve the value of an XML attribute.
#define XML_CIB_TAG_RESOURCE
#define crm_trace(fmt, args...)
pe_resource_t * pe__resource_contains_guest_node(const pe_working_set_t *data_set, const pe_resource_t *rsc)
struct pe_node_shared_s * details
#define XML_AGENT_ATTR_PROVIDER
#define XML_TAG_META_SETS
Wrappers for and extensions to libxml2.
#define XML_RSC_ATTR_MANAGED
xmlNode * create_xml_node(xmlNode *parent, const char *name)
void pe__free_param_checks(pe_working_set_t *data_set)
gboolean xml_contains_remote_node(xmlNode *xml)
void crm_xml_set_id(xmlNode *xml, const char *format,...) __attribute__((__format__(__printf__
gboolean pe__resource_is_remote_conn(pe_resource_t *rsc, pe_working_set_t *data_set)
#define XML_RSC_ATTR_INTERNAL_RSC
gboolean pe__is_remote_node(pe_node_t *node)
xmlNode * crm_create_nvpair_xml(xmlNode *parent, const char *id, const char *name, const char *value)
Create an XML name/value pair.
#define safe_str_eq(a, b)
#define XML_OP_ATTR_ALLOW_MIGRATE
#define XML_AGENT_ATTR_CLASS