native_variant_data_t *native_data = NULL; get_native_variant_data(native_data, rsc);
native_print(	resource_t *rsc, const char *pre_text, long options, void *print_data){	node_t *node = NULL;		const char *prov = crm_element_value(rsc->xml,XML_AGENT_ATTR_PROVIDER);	native_variant_data_t *native_data = NULL;	get_native_variant_data(native_data, rsc);	if(rsc->running_on != NULL) {		node = rsc->running_on->data;	}		if(options & pe_print_html) {		if(rsc->is_managed == FALSE) {			status_print("<font color=\"yellow\">");		} else if(rsc->failed) {			status_print("<font color=\"red\">");					} else if(rsc->variant == pe_native			  && g_list_length(rsc->running_on) == 0) {			status_print("<font color=\"red\">");		} else if(g_list_length(rsc->running_on) > 1) {			status_print("<font color=\"orange\">");		} else {			status_print("<font color=\"green\">");		}	}	if(options & pe_print_rsconly) {		const char *desc = NULL;		desc = crm_element_value(rsc->xml, XML_ATTR_DESC);		status_print("%s%s (%s%s%s:%s)%s%s",			     pre_text?pre_text:"", rsc->id,			     prov?prov:"", prov?"::":"",			     crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS),			     crm_element_value(rsc->xml, XML_ATTR_TYPE),			     desc?": ":"", desc?desc:"");	} else {		status_print("%s%s (%s%s%s:%s):\t%s",			     pre_text?pre_text:"", rsc->id,			     prov?prov:"", prov?"::":"",			     crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS),			     crm_element_value(rsc->xml, XML_ATTR_TYPE),			     (rsc->variant!=pe_native)?"":node==NULL?"NOT ACTIVE":node->details->uname);	}		if(options & pe_print_html) {		status_print(" </font> ");	}	if(rsc->is_managed == FALSE) {		status_print(" (unmanaged) ");	}		if((options & pe_print_rsconly) == 0) {			} else if(g_list_length(rsc->running_on) > 1) {		if(options & pe_print_html) {			status_print("<ul>\n");		} else if((options & pe_print_printf)			  || (options & pe_print_ncurses)) {			status_print("[");		}				slist_iter(node, node_t, rsc->running_on, lpc,			   if(options & pe_print_html) {				   status_print("<li>\n");			   } else if((options & pe_print_printf)				     || (options & pe_print_ncurses)) {				   status_print(" ");			   } else if((options & pe_print_log)) {				   status_print("\t-");			   }			   status_print("%s", node->details->uname);			   if(options & pe_print_html) {				   status_print("</li>\n");			   }			);				if(options & pe_print_html) {			status_print("</ul>\n");		} else if((options & pe_print_printf)			  || (options & pe_print_ncurses)) {			status_print(" ]");		}	}	if(options & pe_print_html) {		status_print("<br/>\n");	} else if((options & pe_print_printf) || (options & pe_print_ncurses)) {		status_print("\n");	}	if(options & pe_print_details) {		status_print("%s\t(%s%svariant=%s, priority=%f)",			     pre_text, rsc->provisional?"provisional, ":"",			     rsc->runnable?"":"non-startable, ",			     crm_element_name(rsc->xml),			     (double)rsc->priority);		status_print("%s\t%d candidate colors, %d allowed nodes,"			     " %d rsc_cons",			     pre_text, g_list_length(rsc->candidate_colors),			     g_list_length(rsc->allowed_nodes),			     g_list_length(rsc->rsc_cons));	}	if(options & pe_print_max_details) {		status_print("%s\t=== Actions.\n", pre_text);		slist_iter(			action, action_t, rsc->actions, lpc, 			log_action(LOG_DEBUG_4, "\trsc action: ", action, FALSE);			);				status_print("%s\t=== Colors\n", pre_text);		slist_iter(			color, color_t, rsc->candidate_colors, lpc,			print_color("\t", color, FALSE)			);		status_print("%s\t=== Allowed Nodes\n", pre_text);		slist_iter(			node, node_t, rsc->allowed_nodes, lpc,			print_node("\t", node, FALSE);			);	}}