resource_t *self = NULL;
const char *group_ordered = get_rsc_param(rsc, "ordered"); const char *group_colocated = get_rsc_param(rsc, "colocated");
void group_unpack(resource_t *rsc, pe_working_set_t *data_set){	crm_data_t *xml_obj = rsc->xml;	crm_data_t *xml_self = copy_xml(rsc->xml);	group_variant_data_t *group_data = NULL;	resource_t *self = NULL;	crm_debug_3("Processing resource %s...", rsc->id);/* 	rsc->id = "dummy_group_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 */	ha_msg_mod(xml_self, F_XML_TAGNAME, XML_CIB_TAG_RESOURCE);/* 	set_id(xml_self, "self", -1); */	if(common_unpack(xml_self, &self, NULL,  data_set)) {		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, group_data->self->id, -1);		if(common_unpack(xml_native_rsc, &new_rsc,				 group_data->self->parameters, data_set)) {			new_rsc->parent = rsc;			group_data->num_children++;			group_data->child_list = g_list_append(				group_data->child_list, new_rsc);						if(group_data->first_child == NULL) {				group_data->first_child = new_rsc;			} else {				rsc_colocation_new(					"pe_group_internal_colo", pecs_must,					group_data->first_child, new_rsc,					NULL, NULL);			}			group_data->last_child = 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_3("Added %d children to resource %s...",		    group_data->num_children, group_data->self->id);		rsc->variant_opaque = group_data;}