n_data 20 include/pcmki/pcmki_sched_notif.h gboolean activity, notify_data_t *n_data); n_data 22 include/pcmki/pcmki_sched_notif.h void pcmk__create_notification_keys(pe_resource_t *rsc, notify_data_t *n_data, n_data 25 include/pcmki/pcmki_sched_notif.h void create_notifications(pe_resource_t *rsc, notify_data_t *n_data, n_data 28 include/pcmki/pcmki_sched_notif.h void free_notification_data(notify_data_t *n_data); n_data 194 lib/pacemaker/pcmk_sched_notif.c add_notify_data_to_action_meta(notify_data_t *n_data, pe_action_t *action) n_data 196 lib/pacemaker/pcmk_sched_notif.c for (GSList *item = n_data->keys; item; item = item->next) { n_data 205 lib/pacemaker/pcmk_sched_notif.c notify_data_t * n_data, pe_working_set_t * data_set) n_data 238 lib/pacemaker/pcmk_sched_notif.c add_notify_data_to_action_meta(n_data, trigger); n_data 250 lib/pacemaker/pcmk_sched_notif.c pe_post_notify(pe_resource_t * rsc, pe_node_t * node, notify_data_t * n_data, pe_working_set_t * data_set) n_data 256 lib/pacemaker/pcmk_sched_notif.c if (n_data->post == NULL) { n_data 260 lib/pacemaker/pcmk_sched_notif.c notify = pe_notify(rsc, node, n_data->post, n_data->post_done, n_data, data_set); n_data 266 lib/pacemaker/pcmk_sched_notif.c if (n_data->post_done) { n_data 282 lib/pacemaker/pcmk_sched_notif.c order_actions(n_data->post_done, mon, pe_order_optional); n_data 301 lib/pacemaker/pcmk_sched_notif.c notify_data_t *n_data = NULL; n_data 307 lib/pacemaker/pcmk_sched_notif.c n_data = calloc(1, sizeof(notify_data_t)); n_data 308 lib/pacemaker/pcmk_sched_notif.c n_data->action = action; n_data 313 lib/pacemaker/pcmk_sched_notif.c n_data->pre = n_data 318 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->pre, pe_action_pseudo, __func__, __LINE__); n_data 319 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->pre, pe_action_runnable, __func__, n_data 322 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre->meta, "notify_type", "pre"); n_data 323 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre->meta, "notify_operation", n_data->action); n_data 325 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre->meta, "notify_key_type", "pre"); n_data 326 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre->meta, "notify_key_operation", start->task); n_data 330 lib/pacemaker/pcmk_sched_notif.c n_data->pre_done = custom_action(rsc, key, RSC_NOTIFIED, NULL, n_data 334 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->pre_done, pe_action_pseudo, __func__, n_data 336 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->pre_done, pe_action_runnable, __func__, n_data 339 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre_done->meta, "notify_type", "pre"); n_data 340 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre_done->meta, "notify_operation", n_data->action); n_data 342 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre_done->meta, "notify_key_type", "confirmed-pre"); n_data 343 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre_done->meta, "notify_key_operation", start->task); n_data 345 lib/pacemaker/pcmk_sched_notif.c order_actions(n_data->pre_done, start, pe_order_optional); n_data 346 lib/pacemaker/pcmk_sched_notif.c order_actions(n_data->pre, n_data->pre_done, pe_order_optional); n_data 352 lib/pacemaker/pcmk_sched_notif.c n_data->post = custom_action(rsc, key, RSC_NOTIFY, NULL, n_data 356 lib/pacemaker/pcmk_sched_notif.c n_data->post->priority = INFINITY; n_data 357 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post, pe_action_pseudo, __func__, n_data 360 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post, pe_action_runnable, __func__, n_data 363 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post, pe_action_runnable | pe_action_clear, n_data 367 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post->meta, "notify_type", "post"); n_data 368 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post->meta, "notify_operation", n_data->action); n_data 370 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post->meta, "notify_key_type", "post"); n_data 371 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post->meta, "notify_key_operation", end->task); n_data 375 lib/pacemaker/pcmk_sched_notif.c n_data->post_done = custom_action(rsc, key, RSC_NOTIFIED, NULL, n_data 379 lib/pacemaker/pcmk_sched_notif.c n_data->post_done->priority = INFINITY; n_data 380 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post_done, pe_action_pseudo, __func__, n_data 383 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post_done, pe_action_runnable, n_data 386 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post_done, pe_action_runnable | pe_action_clear, n_data 390 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post_done->meta, "notify_type", "post"); n_data 391 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post_done->meta, "notify_operation", n_data->action); n_data 393 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post_done->meta, "notify_key_type", "confirmed-post"); n_data 394 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post_done->meta, "notify_key_operation", end->task); n_data 396 lib/pacemaker/pcmk_sched_notif.c order_actions(end, n_data->post, pe_order_implies_then); n_data 397 lib/pacemaker/pcmk_sched_notif.c order_actions(n_data->post, n_data->post_done, pe_order_implies_then); n_data 401 lib/pacemaker/pcmk_sched_notif.c order_actions(n_data->pre_done, n_data->post, pe_order_optional); n_data 403 lib/pacemaker/pcmk_sched_notif.c return n_data; n_data 408 lib/pacemaker/pcmk_sched_notif.c notify_data_t * n_data) n_data 411 lib/pacemaker/pcmk_sched_notif.c if(n_data->allowed_nodes == NULL) { n_data 412 lib/pacemaker/pcmk_sched_notif.c n_data->allowed_nodes = rsc->allowed_nodes; n_data 421 lib/pacemaker/pcmk_sched_notif.c collect_notification_data(child, state, activity, n_data); n_data 440 lib/pacemaker/pcmk_sched_notif.c n_data->inactive = g_list_prepend(n_data->inactive, entry); n_data 443 lib/pacemaker/pcmk_sched_notif.c n_data->active = g_list_prepend(n_data->active, entry); n_data 446 lib/pacemaker/pcmk_sched_notif.c n_data->slave = g_list_prepend(n_data->slave, entry); n_data 447 lib/pacemaker/pcmk_sched_notif.c n_data->active = g_list_prepend(n_data->active, n_data 451 lib/pacemaker/pcmk_sched_notif.c n_data->master = g_list_prepend(n_data->master, entry); n_data 452 lib/pacemaker/pcmk_sched_notif.c n_data->active = g_list_prepend(n_data->active, n_data 488 lib/pacemaker/pcmk_sched_notif.c n_data->start = g_list_prepend(n_data->start, entry); n_data 491 lib/pacemaker/pcmk_sched_notif.c n_data->stop = g_list_prepend(n_data->stop, entry); n_data 494 lib/pacemaker/pcmk_sched_notif.c n_data->promote = g_list_prepend(n_data->promote, entry); n_data 497 lib/pacemaker/pcmk_sched_notif.c n_data->demote = g_list_prepend(n_data->demote, entry); n_data 508 lib/pacemaker/pcmk_sched_notif.c #define add_notify_env(n_data, key, value) do { \ n_data 509 lib/pacemaker/pcmk_sched_notif.c n_data->keys = pcmk_prepend_nvpair(n_data->keys, key, value); \ n_data 512 lib/pacemaker/pcmk_sched_notif.c #define add_notify_env_free(n_data, key, value) do { \ n_data 513 lib/pacemaker/pcmk_sched_notif.c n_data->keys = pcmk_prepend_nvpair(n_data->keys, key, value); \ n_data 527 lib/pacemaker/pcmk_sched_notif.c notify_data_t *n_data, n_data 537 lib/pacemaker/pcmk_sched_notif.c n_data->stop = expand_list(n_data->stop, &rsc_list, &node_list); n_data 539 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_STOP, pcmk__str_casei)) { n_data 542 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_stop_resource", rsc_list); n_data 543 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_stop_uname", node_list); n_data 545 lib/pacemaker/pcmk_sched_notif.c if ((n_data->start != NULL) n_data 546 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_START, pcmk__str_casei)) { n_data 549 lib/pacemaker/pcmk_sched_notif.c n_data->start = expand_list(n_data->start, &rsc_list, &node_list); n_data 550 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_start_resource", rsc_list); n_data 551 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_start_uname", node_list); n_data 553 lib/pacemaker/pcmk_sched_notif.c if ((n_data->demote != NULL) n_data 554 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_DEMOTE, pcmk__str_casei)) { n_data 557 lib/pacemaker/pcmk_sched_notif.c n_data->demote = expand_list(n_data->demote, &rsc_list, &node_list); n_data 558 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_demote_resource", rsc_list); n_data 559 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_demote_uname", node_list); n_data 561 lib/pacemaker/pcmk_sched_notif.c if ((n_data->promote != NULL) n_data 562 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_PROMOTE, pcmk__str_casei)) { n_data 565 lib/pacemaker/pcmk_sched_notif.c n_data->promote = expand_list(n_data->promote, &rsc_list, &node_list); n_data 566 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_promote_resource", rsc_list); n_data 567 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_promote_uname", node_list); n_data 569 lib/pacemaker/pcmk_sched_notif.c n_data->active = expand_list(n_data->active, &rsc_list, &node_list); n_data 570 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_active_resource", rsc_list); n_data 571 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_active_uname", node_list); n_data 573 lib/pacemaker/pcmk_sched_notif.c n_data->slave = expand_list(n_data->slave, &rsc_list, &node_list); n_data 574 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_slave_resource", rsc_list); n_data 575 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_slave_uname", node_list); n_data 577 lib/pacemaker/pcmk_sched_notif.c n_data->master = expand_list(n_data->master, &rsc_list, &node_list); n_data 578 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_master_resource", rsc_list); n_data 579 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_master_uname", node_list); n_data 581 lib/pacemaker/pcmk_sched_notif.c n_data->inactive = expand_list(n_data->inactive, &rsc_list, NULL); n_data 582 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_inactive_resource", rsc_list); n_data 584 lib/pacemaker/pcmk_sched_notif.c nodes = g_hash_table_get_values(n_data->allowed_nodes); n_data 593 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_available_uname", node_list); n_data 599 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_all_hosts", metal_list); n_data 603 lib/pacemaker/pcmk_sched_notif.c add_notify_env_free(n_data, "notify_all_uname", node_list); n_data 605 lib/pacemaker/pcmk_sched_notif.c if (required && n_data->pre) { n_data 606 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->pre, pe_action_optional | pe_action_clear, n_data 608 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->pre_done, pe_action_optional | pe_action_clear, n_data 612 lib/pacemaker/pcmk_sched_notif.c if (required && n_data->post) { n_data 613 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post, pe_action_optional | pe_action_clear, n_data 615 lib/pacemaker/pcmk_sched_notif.c update_action_flags(n_data->post_done, pe_action_optional | pe_action_clear, n_data 643 lib/pacemaker/pcmk_sched_notif.c create_notifications(pe_resource_t * rsc, notify_data_t * n_data, pe_working_set_t * data_set) n_data 648 lib/pacemaker/pcmk_sched_notif.c enum action_tasks task = text2task(n_data->action); n_data 655 lib/pacemaker/pcmk_sched_notif.c create_notifications(child, n_data, data_set); n_data 675 lib/pacemaker/pcmk_sched_notif.c add_notify_data_to_action_meta(n_data, op); n_data 685 lib/pacemaker/pcmk_sched_notif.c if (n_data->start == NULL) { n_data 687 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); n_data 692 lib/pacemaker/pcmk_sched_notif.c if (n_data->promote == NULL) { n_data 694 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); n_data 699 lib/pacemaker/pcmk_sched_notif.c if (n_data->demote == NULL) { n_data 701 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); n_data 713 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); n_data 734 lib/pacemaker/pcmk_sched_notif.c pe_notify(rsc, current_node, n_data->pre, n_data->pre_done, n_data, data_set); n_data 737 lib/pacemaker/pcmk_sched_notif.c pe_post_notify(rsc, current_node, n_data, data_set); n_data 767 lib/pacemaker/pcmk_sched_notif.c pe_notify(rsc, rsc->allocated_to, n_data->pre, n_data->pre_done, n_data, data_set); n_data 769 lib/pacemaker/pcmk_sched_notif.c pe_post_notify(rsc, rsc->allocated_to, n_data, data_set); n_data 775 lib/pacemaker/pcmk_sched_notif.c free_notification_data(notify_data_t * n_data) n_data 777 lib/pacemaker/pcmk_sched_notif.c if (n_data == NULL) { n_data 781 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->stop, free); n_data 782 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->start, free); n_data 783 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->demote, free); n_data 784 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->promote, free); n_data 785 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->master, free); n_data 786 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->slave, free); n_data 787 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->active, free); n_data 788 lib/pacemaker/pcmk_sched_notif.c g_list_free_full(n_data->inactive, free); n_data 789 lib/pacemaker/pcmk_sched_notif.c pcmk_free_nvpairs(n_data->keys); n_data 790 lib/pacemaker/pcmk_sched_notif.c free(n_data); n_data 798 lib/pacemaker/pcmk_sched_notif.c notify_data_t *n_data; n_data 801 lib/pacemaker/pcmk_sched_notif.c n_data = create_notification_boundaries(rsc, RSC_STOP, NULL, stonith_op, n_data 803 lib/pacemaker/pcmk_sched_notif.c collect_notification_data(rsc, TRUE, FALSE, n_data); n_data 804 lib/pacemaker/pcmk_sched_notif.c add_notify_env(n_data, "notify_stop_resource", rsc->id); n_data 805 lib/pacemaker/pcmk_sched_notif.c add_notify_env(n_data, "notify_stop_uname", action->node->details->uname); n_data 806 lib/pacemaker/pcmk_sched_notif.c create_notifications(uber_parent(rsc), n_data, data_set); n_data 807 lib/pacemaker/pcmk_sched_notif.c free_notification_data(n_data);