87 for (GList *gIter = rsc->
fillers; gIter != NULL; gIter = gIter->next) {
123 void (*helper)(
const pe_node_t*,
void*),
void *user_data)
131 for (iter =
host->details->running_rsc; iter != NULL; iter = iter->next) {
138 (*helper)(guest_node, user_data);
159 const char *container_id,
const char *migrateable,
160 const char *is_managed,
const char *start_timeout,
161 const char *server,
const char *port)
192 if (port || server) {
225 struct check_op *check_op = NULL;
227 CRM_CHECK(data_set && rsc_op && rsc && node,
return);
229 check_op = calloc(1,
sizeof(
struct check_op));
232 crm_trace(
"Deferring checks of %s until after allocation",
ID(rsc_op));
233 check_op->rsc_op = rsc_op;
235 check_op->node = node;
236 check_op->check_type = flag;
254 for (GList *item = data_set->
param_check; item != NULL; item = item->next) {
255 struct check_op *check_op = item->data;
257 cb(check_op->rsc, check_op->node, check_op->rsc_op,
258 check_op->check_type, data_set);
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.
#define safe_str_eq(a, b)
#define CRM_CHECK(expr, failure_action)
#define crm_trace(fmt, args...)
#define XML_RSC_ATTR_MANAGED
#define XML_RSC_ATTR_CONTAINER
#define XML_TAG_ATTR_SETS
#define XML_OP_ATTR_ALLOW_MIGRATE
#define XML_AGENT_ATTR_PROVIDER
#define XML_AGENT_ATTR_CLASS
#define XML_TAG_META_SETS
#define XML_RSC_ATTR_INTERNAL_RSC
#define XML_RSC_ATTR_REMOTE_RA_ADDR
#define XML_CIB_TAG_RESOURCE
xmlNode * crm_create_nvpair_xml(xmlNode *parent, const char *id, const char *name, const char *value)
Create an XML name/value pair.
const char * crm_xml_add(xmlNode *node, const char *name, const char *value)
Create an XML attribute with specified name and value.
const char * crm_element_value(const xmlNode *data, const char *name)
Retrieve the value of an XML attribute.
#define pe_flag_have_remote_nodes
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)
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 *))
gboolean pe__is_remote_node(pe_node_t *node)
void pe__free_param_checks(pe_working_set_t *data_set)
gboolean pe__resource_is_remote_conn(pe_resource_t *rsc, pe_working_set_t *data_set)
gboolean pe__is_guest_node(pe_node_t *node)
bool pe__is_bundle_node(pe_node_t *node)
pe_resource_t * pe__resource_contains_guest_node(const pe_working_set_t *data_set, const pe_resource_t *rsc)
gboolean xml_contains_remote_node(xmlNode *xml)
void pe__add_param_check(xmlNode *rsc_op, pe_resource_t *rsc, pe_node_t *node, enum pe_check_parameters flag, pe_working_set_t *data_set)
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)
gboolean pe__is_guest_or_remote_node(pe_node_t *node)
#define PCMK_RESOURCE_CLASS_OCF
pe_node_t * pe_find_node(GListPtr node_list, const char *uname)
struct pe_node_shared_s * details
pe_resource_t * remote_rsc
pe_resource_t * container
Wrappers for and extensions to libxml2.
xmlNode * create_xml_node(xmlNode *parent, const char *name)
void crm_xml_set_id(xmlNode *xml, const char *format,...) __attribute__((__format__(__printf__