n_data 259 lib/pengine/pe_notif.c add_notify_data_to_action_meta(const notify_data_t *n_data, n_data 262 lib/pengine/pe_notif.c for (const GSList *item = n_data->keys; item; item = item->next) { n_data 312 lib/pengine/pe_notif.c const notify_data_t *n_data) n_data 352 lib/pengine/pe_notif.c add_notify_data_to_action_meta(n_data, notify_action); n_data 370 lib/pengine/pe_notif.c notify_data_t *n_data) n_data 374 lib/pengine/pe_notif.c pcmk__assert(n_data != NULL); n_data 377 lib/pengine/pe_notif.c notify = new_notify_action(rsc, node, n_data->post, n_data->post_done, n_data 378 lib/pengine/pe_notif.c n_data); n_data 384 lib/pengine/pe_notif.c if (n_data->post_done == NULL) { n_data 396 lib/pengine/pe_notif.c order_actions(n_data->post_done, mon, pcmk__ar_ordered); n_data 435 lib/pengine/pe_notif.c notify_data_t *n_data = NULL; n_data 441 lib/pengine/pe_notif.c n_data = pcmk__assert_alloc(1, sizeof(notify_data_t)); n_data 443 lib/pengine/pe_notif.c n_data->action = task; n_data 448 lib/pengine/pe_notif.c n_data->pre = new_notify_pseudo_action(rsc, action, PCMK_ACTION_NOTIFY, n_data 450 lib/pengine/pe_notif.c pcmk__set_action_flags(n_data->pre, pcmk_action_runnable); n_data 451 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->pre, "notify_type", "pre"); n_data 452 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->pre, "notify_operation", n_data->action); n_data 455 lib/pengine/pe_notif.c n_data->pre_done = new_notify_pseudo_action(rsc, action, n_data 458 lib/pengine/pe_notif.c pcmk__set_action_flags(n_data->pre_done, pcmk_action_runnable); n_data 459 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->pre_done, "notify_type", "pre"); n_data 460 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->pre_done, "notify_operation", n_data->action); n_data 463 lib/pengine/pe_notif.c order_actions(n_data->pre, n_data->pre_done, pcmk__ar_ordered); n_data 464 lib/pengine/pe_notif.c order_actions(n_data->pre_done, action, pcmk__ar_ordered); n_data 470 lib/pengine/pe_notif.c n_data->post = new_notify_pseudo_action(rsc, complete, n_data 472 lib/pengine/pe_notif.c n_data->post->priority = PCMK_SCORE_INFINITY; n_data 474 lib/pengine/pe_notif.c pcmk__set_action_flags(n_data->post, pcmk_action_runnable); n_data 476 lib/pengine/pe_notif.c pcmk__clear_action_flags(n_data->post, pcmk_action_runnable); n_data 478 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->post, "notify_type", "post"); n_data 479 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->post, "notify_operation", n_data->action); n_data 482 lib/pengine/pe_notif.c n_data->post_done = new_notify_pseudo_action(rsc, complete, n_data 485 lib/pengine/pe_notif.c n_data->post_done->priority = PCMK_SCORE_INFINITY; n_data 487 lib/pengine/pe_notif.c pcmk__set_action_flags(n_data->post_done, pcmk_action_runnable); n_data 489 lib/pengine/pe_notif.c pcmk__clear_action_flags(n_data->post_done, pcmk_action_runnable); n_data 491 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->post_done, "notify_type", "post"); n_data 492 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->post_done, n_data 493 lib/pengine/pe_notif.c "notify_operation", n_data->action); n_data 496 lib/pengine/pe_notif.c order_actions(complete, n_data->post, pcmk__ar_first_implies_then); n_data 497 lib/pengine/pe_notif.c order_actions(n_data->post, n_data->post_done, n_data 503 lib/pengine/pe_notif.c order_actions(n_data->pre_done, n_data->post, pcmk__ar_ordered); n_data 505 lib/pengine/pe_notif.c return n_data; n_data 538 lib/pengine/pe_notif.c notify_data_t *n_data) n_data 544 lib/pengine/pe_notif.c if (n_data == NULL) { n_data 548 lib/pengine/pe_notif.c if (n_data->allowed_nodes == NULL) { n_data 549 lib/pengine/pe_notif.c n_data->allowed_nodes = rsc->allowed_nodes; n_data 557 lib/pengine/pe_notif.c collect_resource_data(child, activity, n_data); n_data 572 lib/pengine/pe_notif.c n_data->inactive = g_list_prepend(n_data->inactive, entry); n_data 576 lib/pengine/pe_notif.c n_data->active = g_list_prepend(n_data->active, entry); n_data 580 lib/pengine/pe_notif.c n_data->unpromoted = g_list_prepend(n_data->unpromoted, entry); n_data 581 lib/pengine/pe_notif.c n_data->active = g_list_prepend(n_data->active, n_data 586 lib/pengine/pe_notif.c n_data->promoted = g_list_prepend(n_data->promoted, entry); n_data 587 lib/pengine/pe_notif.c n_data->active = g_list_prepend(n_data->active, n_data 622 lib/pengine/pe_notif.c n_data->start = g_list_prepend(n_data->start, entry); n_data 625 lib/pengine/pe_notif.c n_data->stop = g_list_prepend(n_data->stop, entry); n_data 628 lib/pengine/pe_notif.c n_data->promote = g_list_prepend(n_data->promote, entry); n_data 631 lib/pengine/pe_notif.c n_data->demote = g_list_prepend(n_data->demote, entry); n_data 642 lib/pengine/pe_notif.c #define add_notify_env(n_data, key, value) do { \ n_data 643 lib/pengine/pe_notif.c n_data->keys = pcmk_prepend_nvpair(n_data->keys, key, value); \ n_data 647 lib/pengine/pe_notif.c #define add_notify_env_gs(n_data, key, value) do { \ n_data 648 lib/pengine/pe_notif.c n_data->keys = pcmk_prepend_nvpair(n_data->keys, key, \ n_data 653 lib/pengine/pe_notif.c #define add_notify_env_free_gs(n_data, key, value) do { \ n_data 654 lib/pengine/pe_notif.c n_data->keys = pcmk_prepend_nvpair(n_data->keys, key, \ n_data 667 lib/pengine/pe_notif.c add_notif_keys(const pcmk_resource_t *rsc, notify_data_t *n_data) n_data 676 lib/pengine/pe_notif.c n_data->stop = notify_entries_to_strings(n_data->stop, n_data 679 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_STOP, pcmk__str_none)) { n_data 682 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_stop_resource", rsc_list); n_data 683 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_stop_uname", node_list); n_data 685 lib/pengine/pe_notif.c if ((n_data->start != NULL) n_data 686 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_START, pcmk__str_none)) { n_data 689 lib/pengine/pe_notif.c n_data->start = notify_entries_to_strings(n_data->start, n_data 691 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_start_resource", rsc_list); n_data 692 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_start_uname", node_list); n_data 694 lib/pengine/pe_notif.c if ((n_data->demote != NULL) n_data 695 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_DEMOTE, pcmk__str_none)) { n_data 698 lib/pengine/pe_notif.c n_data->demote = notify_entries_to_strings(n_data->demote, n_data 700 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_demote_resource", rsc_list); n_data 701 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_demote_uname", node_list); n_data 703 lib/pengine/pe_notif.c if ((n_data->promote != NULL) n_data 704 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_PROMOTE, pcmk__str_none)) { n_data 707 lib/pengine/pe_notif.c n_data->promote = notify_entries_to_strings(n_data->promote, n_data 709 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_promote_resource", rsc_list); n_data 710 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_promote_uname", node_list); n_data 712 lib/pengine/pe_notif.c n_data->active = notify_entries_to_strings(n_data->active, n_data 714 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_active_resource", rsc_list); n_data 715 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_active_uname", node_list); n_data 717 lib/pengine/pe_notif.c n_data->unpromoted = notify_entries_to_strings(n_data->unpromoted, n_data 719 lib/pengine/pe_notif.c add_notify_env_gs(n_data, "notify_unpromoted_resource", rsc_list); n_data 720 lib/pengine/pe_notif.c add_notify_env_gs(n_data, "notify_unpromoted_uname", node_list); n_data 723 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_slave_resource", rsc_list); n_data 724 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_slave_uname", node_list); n_data 726 lib/pengine/pe_notif.c n_data->promoted = notify_entries_to_strings(n_data->promoted, n_data 728 lib/pengine/pe_notif.c add_notify_env_gs(n_data, "notify_promoted_resource", rsc_list); n_data 729 lib/pengine/pe_notif.c add_notify_env_gs(n_data, "notify_promoted_uname", node_list); n_data 732 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_master_resource", rsc_list); n_data 733 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_master_uname", node_list); n_data 735 lib/pengine/pe_notif.c n_data->inactive = notify_entries_to_strings(n_data->inactive, n_data 737 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_inactive_resource", rsc_list); n_data 739 lib/pengine/pe_notif.c nodes = g_hash_table_get_values(n_data->allowed_nodes); n_data 748 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_available_uname", node_list); n_data 755 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_all_hosts", metal_list); n_data 759 lib/pengine/pe_notif.c add_notify_env_free_gs(n_data, "notify_all_uname", node_list); n_data 761 lib/pengine/pe_notif.c if (required && (n_data->pre != NULL)) { n_data 762 lib/pengine/pe_notif.c pcmk__clear_action_flags(n_data->pre, pcmk_action_optional); n_data 763 lib/pengine/pe_notif.c pcmk__clear_action_flags(n_data->pre_done, pcmk_action_optional); n_data 766 lib/pengine/pe_notif.c if (required && (n_data->post != NULL)) { n_data 767 lib/pengine/pe_notif.c pcmk__clear_action_flags(n_data->post, pcmk_action_optional); n_data 768 lib/pengine/pe_notif.c pcmk__clear_action_flags(n_data->post_done, pcmk_action_optional); n_data 803 lib/pengine/pe_notif.c create_notify_actions(pcmk_resource_t *rsc, notify_data_t *n_data) n_data 808 lib/pengine/pe_notif.c enum action_tasks task = pcmk_parse_action(n_data->action); n_data 812 lib/pengine/pe_notif.c g_list_foreach(rsc->children, (GFunc) create_notify_actions, n_data); n_data 827 lib/pengine/pe_notif.c add_notify_data_to_action_meta(n_data, op); n_data 838 lib/pengine/pe_notif.c if (n_data->start == NULL) { n_data 840 lib/pengine/pe_notif.c rsc->id, n_data->action); n_data 846 lib/pengine/pe_notif.c if (n_data->promote == NULL) { n_data 848 lib/pengine/pe_notif.c rsc->id, n_data->action); n_data 854 lib/pengine/pe_notif.c if (n_data->demote == NULL) { n_data 856 lib/pengine/pe_notif.c rsc->id, n_data->action); n_data 867 lib/pengine/pe_notif.c rsc->id, n_data->action); n_data 888 lib/pengine/pe_notif.c new_notify_action(rsc, current_node, n_data->pre, n_data 889 lib/pengine/pe_notif.c n_data->pre_done, n_data); n_data 893 lib/pengine/pe_notif.c new_post_notify_action(rsc, current_node, n_data); n_data 924 lib/pengine/pe_notif.c new_notify_action(rsc, rsc->allocated_to, n_data->pre, n_data 925 lib/pengine/pe_notif.c n_data->pre_done, n_data); n_data 927 lib/pengine/pe_notif.c new_post_notify_action(rsc, rsc->allocated_to, n_data); n_data 939 lib/pengine/pe_notif.c pe__create_action_notifications(pcmk_resource_t *rsc, notify_data_t *n_data) n_data 941 lib/pengine/pe_notif.c if ((rsc == NULL) || (n_data == NULL)) { n_data 944 lib/pengine/pe_notif.c collect_resource_data(rsc, true, n_data); n_data 945 lib/pengine/pe_notif.c add_notif_keys(rsc, n_data); n_data 946 lib/pengine/pe_notif.c create_notify_actions(rsc, n_data); n_data 956 lib/pengine/pe_notif.c pe__free_action_notification_data(notify_data_t *n_data) n_data 958 lib/pengine/pe_notif.c if (n_data == NULL) { n_data 961 lib/pengine/pe_notif.c g_list_free_full(n_data->stop, free); n_data 962 lib/pengine/pe_notif.c g_list_free_full(n_data->start, free); n_data 963 lib/pengine/pe_notif.c g_list_free_full(n_data->demote, free); n_data 964 lib/pengine/pe_notif.c g_list_free_full(n_data->promote, free); n_data 965 lib/pengine/pe_notif.c g_list_free_full(n_data->promoted, free); n_data 966 lib/pengine/pe_notif.c g_list_free_full(n_data->unpromoted, free); n_data 967 lib/pengine/pe_notif.c g_list_free_full(n_data->active, free); n_data 968 lib/pengine/pe_notif.c g_list_free_full(n_data->inactive, free); n_data 969 lib/pengine/pe_notif.c pcmk_free_nvpairs(n_data->keys); n_data 970 lib/pengine/pe_notif.c free(n_data); n_data 991 lib/pengine/pe_notif.c notify_data_t *n_data; n_data 994 lib/pengine/pe_notif.c n_data = pe__action_notif_pseudo_ops(rsc, PCMK_ACTION_STOP, NULL, n_data 997 lib/pengine/pe_notif.c if (n_data != NULL) { n_data 998 lib/pengine/pe_notif.c collect_resource_data(rsc, false, n_data); n_data 999 lib/pengine/pe_notif.c add_notify_env(n_data, "notify_stop_resource", rsc->id); n_data 1000 lib/pengine/pe_notif.c add_notify_env(n_data, "notify_stop_uname", stop->node->details->uname); n_data 1001 lib/pengine/pe_notif.c create_notify_actions(uber_parent(rsc), n_data); n_data 1002 lib/pengine/pe_notif.c pe__free_action_notification_data(n_data); n_data 73 lib/pengine/pe_status_private.h notify_data_t *n_data); n_data 76 lib/pengine/pe_status_private.h void pe__free_action_notification_data(notify_data_t *n_data);