16 #define VARIANT_GROUP 1
22 xmlNode *xml_obj = rsc->
xml;
23 xmlNode *xml_native_rsc = NULL;
24 group_variant_data_t *group_data = NULL;
26 const char *group_colocated = g_hash_table_lookup(rsc->
meta,
"collocated");
27 const char *clone_id = NULL;
31 group_data = calloc(1,
sizeof(group_variant_data_t));
32 group_data->num_children = 0;
33 group_data->first_child = NULL;
34 group_data->last_child = NULL;
37 group_data->ordered = TRUE;
38 group_data->colocated = TRUE;
40 if (group_ordered != NULL) {
43 if (group_colocated != NULL) {
49 for (xml_native_rsc = __xml_first_child(xml_obj); xml_native_rsc != NULL;
50 xml_native_rsc = __xml_next_element(xml_native_rsc)) {
55 if (
common_unpack(xml_native_rsc, &new_rsc, rsc, data_set) == FALSE) {
57 if (new_rsc != NULL && new_rsc->
fns != NULL) {
62 group_data->num_children++;
65 if (group_data->first_child == NULL) {
66 group_data->first_child = new_rsc;
68 group_data->last_child = new_rsc;
73 if (group_data->num_children == 0) {
84 pe_rsc_trace(rsc,
"Added %d children to resource %s...", group_data->num_children, rsc->
id);
92 gboolean c_all = TRUE;
93 gboolean c_any = FALSE;
96 for (; gIter != NULL; gIter = gIter->next) {
99 if (child_rsc->
fns->
active(child_rsc, all)) {
106 if (c_any == FALSE) {
108 }
else if (all && c_all == FALSE) {
115 group_print_xml(
resource_t * rsc,
const char *pre_text,
long options,
void *print_data)
118 char *child_text = crm_concat(pre_text,
" ",
' ');
124 for (; gIter != NULL; gIter = gIter->next) {
127 child_rsc->
fns->
print(child_rsc, child_text, options, print_data);
137 char *child_text = NULL;
140 if (pre_text == NULL) {
145 group_print_xml(rsc, pre_text, options, print_data);
149 child_text = crm_concat(pre_text,
" ",
' ');
151 status_print(
"%sResource Group: %s", pre_text ? pre_text :
"", rsc->
id);
164 for (; gIter != NULL; gIter = gIter->next) {
170 child_rsc->
fns->
print(child_rsc, child_text, options, print_data);
195 child_rsc->
fns->
free(child_rsc);
210 for (; gIter != NULL; gIter = gIter->next) {
214 if (role > group_role) {