crm_debug_2("Processing resource %s...", rsc->id);
crm_debug_3("Processing resource %s...", rsc->id);
void group_unpack(resource_t *rsc){	crm_data_t * xml_obj = rsc->xml;	crm_data_t * xml_self = create_xml_node(NULL, XML_CIB_TAG_RESOURCE);	group_variant_data_t *group_data = NULL;	resource_t *self = NULL;	crm_debug_2("Processing resource %s...", rsc->id);	crm_malloc0(group_data, sizeof(group_variant_data_t));	group_data->num_children = 0;	group_data->self	 = NULL;	group_data->child_list   = NULL;	group_data->first_child  = NULL;	group_data->last_child   = NULL;	/* this is a bit of a hack - but simplifies everything else */	copy_in_properties(xml_self, xml_obj);	if(common_unpack(xml_self, &self)) {		group_data->self = self;		self->restart_type = pe_restart_restart;	} else {		crm_log_xml_err(xml_self, "Couldnt unpack dummy child");		return;	}		xml_child_iter(		xml_obj, xml_native_rsc, XML_CIB_TAG_RESOURCE,		resource_t *new_rsc = NULL;		set_id(xml_native_rsc, rsc->id, -1);		if(common_unpack(xml_native_rsc, &new_rsc)) {			group_data->num_children++;			group_data->child_list = g_list_append(				group_data->child_list, new_rsc);						group_data->last_child = new_rsc;			if(group_data->first_child == NULL) {				group_data->first_child = new_rsc;			}						rsc_colocation_new("pe_group_internal_colo", pecs_must,					   group_data->self, new_rsc);					crm_action_debug_3(				print_resource("Added", new_rsc, FALSE));		} else {			pe_err("Failed unpacking resource %s",				crm_element_value(xml_obj, XML_ATTR_ID));		}		);	crm_debug_2("Added %d children to resource %s...",		    group_data->num_children, rsc->id);		rsc->variant_opaque = group_data;}