69 if ((rsc != NULL) && (data_set != NULL)
72 for (GList *gIter = rsc->
fillers; gIter != NULL; gIter = gIter->next) {
86 const char *value = NULL;
121 void (*helper)(
const pe_node_t*,
void*),
void *user_data)
136 (*helper)(guest_node, user_data);
157 const char *container_id,
const char *migrateable,
158 const char *is_managed,
const char *start_timeout,
159 const char *server,
const char *port)
190 if (port || server) {
223 struct check_op *check_op = NULL;
225 CRM_CHECK(data_set && rsc_op && rsc && node,
return);
227 check_op = calloc(1,
sizeof(
struct check_op));
230 crm_trace(
"Deferring checks of %s until after allocation",
ID(rsc_op));
231 check_op->rsc_op = rsc_op;
233 check_op->node = node;
234 check_op->check_type = flag;
252 for (GList *item = data_set->
param_check; item != NULL; item = item->next) {
253 struct check_op *check_op = item->data;
255 cb(check_op->rsc, check_op->node, check_op->rsc_op,
256 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)
pe_node_t * pe_find_node(GList *node_list, const char *uname)
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.
bool pe__is_guest_or_remote_node(const pe_node_t *node)
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
bool pe__is_bundle_node(const pe_node_t *node)
void pe_foreach_guest_node(const pe_working_set_t *data_set, const pe_node_t *host, void(*helper)(const pe_node_t *, void *), void *user_data)
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.
#define XML_RSC_ATTR_REMOTE_RA_ADDR
bool pe__is_remote_node(const pe_node_t *node)
#define XML_TAG_ATTR_SETS
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)
#define pe_flag_have_remote_nodes
#define PCMK_RESOURCE_CLASS_OCF
pe_resource_t * pe__resource_contains_guest_node(const pe_working_set_t *data_set, const pe_resource_t *rsc)
#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
bool pe__is_guest_node(const pe_node_t *node)
#define crm_trace(fmt, args...)
bool xml_contains_remote_node(xmlNode *xml)
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
void crm_xml_set_id(xmlNode *xml, const char *format,...) G_GNUC_PRINTF(2
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)
#define XML_RSC_ATTR_INTERNAL_RSC
bool pe__resource_is_remote_conn(const pe_resource_t *rsc, const pe_working_set_t *data_set)
xmlNode * crm_create_nvpair_xml(xmlNode *parent, const char *id, const char *name, const char *value)
Create an XML name/value pair.
#define XML_OP_ATTR_ALLOW_MIGRATE
#define XML_AGENT_ATTR_CLASS