pe_post_notify(rsc, next, op, parent, data_set); register_activity(rsc, op, next, parent);
pe_post_notify(rsc, next, op, n_data, data_set); register_activity(rsc, op, n_data);
native_create_notify_element(resource_t *rsc, action_t *op, crm_data_t *parent,			     pe_working_set_t *data_set){	node_t *next = NULL;	node_t *current = NULL;	enum action_tasks task;	rsc_state_t state = rsc->fns->state(rsc);	native_variant_data_t *native_data = NULL;	get_native_variant_data(native_data, rsc);	if(native_data->color != NULL) {		next = native_data->color->details->chosen_node;	}	if(native_data->running_on != NULL) {		current = native_data->running_on->data;	}	if(op->pre_notify == NULL || op->post_notify == NULL) {		/* no notifications required */		crm_debug_4("No notificaitons required for %s", op->task);		return;	}	crm_debug_2("Notificaitons required for %s", op->task);		task = text2task(op->task);		switch(state) {		case rsc_state_active:			pe_pre_notify(rsc, current, op, parent, data_set);			pe_post_notify(rsc, current, op, parent, data_set);			register_state(rsc, op, current, parent);			break;		case rsc_state_move:			if(task == stop_rsc) {				pe_pre_notify(rsc, current, op,parent,data_set);				register_activity(rsc, op, current, parent);			} else {				pe_post_notify(rsc, next, op, parent, data_set);				register_activity(rsc, op, next, parent);			}			break;		case rsc_state_restart:			register_activity(rsc, op, current, parent);			if(task == stop_rsc) {				pe_pre_notify(rsc, current, op, parent, data_set);			} else {				pe_post_notify(rsc, current,op,parent,data_set);			}			break;		case rsc_state_starting:			if(task != stop_rsc) {				register_activity(rsc, op, next, parent);				pe_post_notify(rsc, next, op, parent, data_set);			}			break;		case rsc_state_stopping:			if(task == stop_rsc) {				register_activity(rsc, op, current, parent);				pe_pre_notify(rsc, current, op,parent,data_set);			}			break;		case rsc_state_stopped:		case rsc_state_unknown:			return;			break;	}}