then 164 pengine/allocate.h extern enum pe_graph_flags native_update_actions(action_t * first, action_t * then, node_t * node, then 168 pengine/allocate.h extern enum pe_graph_flags group_update_actions(action_t * first, action_t * then, node_t * node, then 171 pengine/allocate.h extern enum pe_graph_flags container_update_actions(action_t * first, action_t * then, node_t * node, then 584 pengine/container.c container_update_interleave_actions(action_t * first, action_t * then, node_t * node, enum pe_action_flags flags, then 598 pengine/container.c children = get_containers_or_children(then->rsc); then 606 pengine/container.c crm_debug("No match found for %s (%d / %s / %s)", then_child->id, current, first->uuid, then->uuid); then 615 pengine/container.c pe_rsc_info(then->rsc, "Inhibiting %s from being active", then_child->id); then 629 pengine/container.c container_grouping_t *then_tuple = tuple_for_docker(then->rsc, then_child, node); then 642 pengine/container.c if(strstr(then->task, "mote") && then_tuple && then_tuple->child) { then 650 pengine/container.c then_action = find_first_action(then_tuple->child->actions, NULL, then->task, node); then 652 pengine/container.c then_action = find_first_action(then_child->actions, NULL, then->task, node); then 673 pengine/container.c && crm_str_eq(then->task, RSC_STOP, TRUE) == FALSE then 674 pengine/container.c && crm_str_eq(then->task, RSC_DEMOTE, TRUE) == FALSE) { then 676 pengine/container.c then->task, then_child->id); then 680 pengine/container.c then->task, then_child->id, then 704 pengine/container.c if(children != then->rsc->children) { then 710 pengine/container.c bool can_interleave_actions(pe_action_t *first, pe_action_t *then) then 716 pengine/container.c if(first->rsc == NULL || then->rsc == NULL) { then 717 pengine/container.c crm_trace("Not interleaving %s with %s (both must be resources)", first->uuid, then->uuid); then 719 pengine/container.c } else if(first->rsc == then->rsc) { then 720 pengine/container.c crm_trace("Not interleaving %s with %s (must belong to different resources)", first->uuid, then->uuid); then 722 pengine/container.c } else if(first->rsc->variant < pe_clone || then->rsc->variant < pe_clone) { then 723 pengine/container.c crm_trace("Not interleaving %s with %s (both sides must be clones, masters, or bundles)", first->uuid, then->uuid); then 727 pengine/container.c if (crm_ends_with(then->uuid, "_stop_0") || crm_ends_with(then->uuid, "_demote_0")) { then 730 pengine/container.c rsc = then->rsc; then 736 pengine/container.c first->uuid, then->uuid, interleave ? "yes" : "no", rsc->id); then 742 pengine/container.c container_update_actions(action_t * first, action_t * then, node_t * node, enum pe_action_flags flags, then 747 pengine/container.c crm_trace("%s -> %s", first->uuid, then->uuid); then 749 pengine/container.c if(can_interleave_actions(first, then)) { then 750 pengine/container.c changed = container_update_interleave_actions(first, then, node, flags, filter, type); then 752 pengine/container.c } else if(then->rsc) { then 757 pengine/container.c changed |= native_update_actions(first, then, node, flags, filter, type); then 760 pengine/container.c children = get_containers_or_children(then->rsc); then 764 pengine/container.c action_t *then_child_action = find_first_action(then_child->actions, NULL, then->task, node); then 783 pengine/container.c if(children != then->rsc->children) { then 33 pengine/graph.c gboolean rsc_update_action(action_t * first, action_t * then, enum pe_ordering type); then 185 pengine/graph.c graph_update_action(action_t * first, action_t * then, node_t * node, then 217 pengine/graph.c if (then->rsc) { then 219 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags & pe_action_optional, then 223 pengine/graph.c if (update_action_flags(then, pe_action_optional | pe_action_clear, __FUNCTION__, __LINE__)) { then 228 pengine/graph.c pe_rsc_trace(then->rsc, "implies right: %s then %s: changed", first->uuid, then->uuid); then 230 pengine/graph.c crm_trace("implies right: %s then %s %p", first->uuid, then->uuid, then->rsc); then 234 pengine/graph.c if ((type & pe_order_restart) && then->rsc) { then 239 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, restart, pe_order_restart); then 241 pengine/graph.c pe_rsc_trace(then->rsc, "restart: %s then %s: changed", first->uuid, then->uuid); then 243 pengine/graph.c crm_trace("restart: %s then %s", first->uuid, then->uuid); then 251 pengine/graph.c first->rsc->cmds->update_actions(first, then, node, first_flags, then 257 pengine/graph.c then->uuid, is_set(then_flags, pe_action_optional)); then 264 pengine/graph.c pe_rsc_trace(then->rsc, "implies left: %s then %s: changed", first->uuid, then->uuid); then 268 pengine/graph.c then->uuid, is_set(then_flags, pe_action_optional)); then 274 pengine/graph.c if (then->rsc) { then 276 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags & pe_action_optional, then 281 pengine/graph.c pe_rsc_trace(then->rsc, then 283 pengine/graph.c first->uuid, then->uuid); then 286 pengine/graph.c then->uuid); then 292 pengine/graph.c if (then->rsc) { then 294 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, then 300 pengine/graph.c then->runnable_before++; then 304 pengine/graph.c if (then->runnable_before >= then->required_runnable_before) { then 305 pengine/graph.c if (update_action_flags(then, pe_action_runnable, __FUNCTION__, __LINE__)) { then 311 pengine/graph.c pe_rsc_trace(then->rsc, "runnable_one_or_more: %s then %s: changed", first->uuid, then 312 pengine/graph.c then->uuid); then 314 pengine/graph.c crm_trace("runnable_one_or_more: %s then %s", first->uuid, then->uuid); then 318 pengine/graph.c if (then->rsc && is_set(type, pe_order_probe)) { then 322 pengine/graph.c pe_rsc_trace(then->rsc, "Ignoring %s then %s - %s is about to be stopped", then 323 pengine/graph.c first->uuid, then->uuid, first->rsc->id); then 328 pengine/graph.c pe_rsc_trace(then->rsc, "Enforcing %s then %s", first->uuid, then->uuid); then 329 pengine/graph.c changed |= then->rsc->cmds->update_actions(first, then, node, first_flags, then 334 pengine/graph.c pe_rsc_trace(then->rsc, "runnable: %s then %s: changed", first->uuid, then->uuid); then 336 pengine/graph.c crm_trace("runnable: %s then %s", first->uuid, then->uuid); then 342 pengine/graph.c if (then->rsc) { then 344 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, then 348 pengine/graph.c pe_rsc_trace(then->rsc, "then unrunnable: %s then %s", first->uuid, then->uuid); then 349 pengine/graph.c if (update_action_flags(then, pe_action_runnable | pe_action_clear, __FUNCTION__, __LINE__)) { then 354 pengine/graph.c pe_rsc_trace(then->rsc, "runnable: %s then %s: changed", first->uuid, then->uuid); then 356 pengine/graph.c crm_trace("runnable: %s then %s", first->uuid, then->uuid); then 362 pengine/graph.c if (then->rsc) { then 364 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, then 368 pengine/graph.c pe_rsc_trace(then->rsc, "optional: %s then %s: changed", first->uuid, then->uuid); then 370 pengine/graph.c crm_trace("optional: %s then %s", first->uuid, then->uuid); then 376 pengine/graph.c if (then->rsc) { then 378 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, then 382 pengine/graph.c pe_rsc_trace(then->rsc, "optional: %s then %s: changed", first->uuid, then->uuid); then 384 pengine/graph.c crm_trace("optional: %s then %s", first->uuid, then->uuid); then 390 pengine/graph.c if (then->rsc) { then 392 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, then 396 pengine/graph.c pe_rsc_trace(then->rsc, "optional: %s then %s: changed", first->uuid, then->uuid); then 398 pengine/graph.c crm_trace("optional: %s then %s", first->uuid, then->uuid); then 404 pengine/graph.c if (then->rsc) { then 406 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, then 411 pengine/graph.c pe_rsc_trace(then->rsc, "asymmetrical: %s then %s: changed", first->uuid, then->uuid); then 413 pengine/graph.c crm_trace("asymmetrical: %s then %s", first->uuid, then->uuid); then 421 pengine/graph.c crm_trace("%s implies %s printed", first->uuid, then->uuid); then 422 pengine/graph.c update_action_flags(then, pe_action_print_always, __FUNCTION__, __LINE__); /* don't care about changed */ then 427 pengine/graph.c crm_trace("%s implies %s printed", then->uuid, first->uuid); then 440 pengine/graph.c if (update_action_flags(then, pe_action_runnable | pe_action_clear, __FUNCTION__, __LINE__)) { then 445 pengine/graph.c pe_rsc_trace(then->rsc, "unmanaged left: %s then %s: changed", first->uuid, then->uuid); then 447 pengine/graph.c crm_trace("unmanaged left: %s then %s", first->uuid, then->uuid); then 520 pengine/graph.c update_action(action_t * then) then 524 pengine/graph.c int last_flags = then->flags; then 527 pengine/graph.c then->uuid, then 528 pengine/graph.c is_set(then->flags, pe_action_optional) ? "optional" : "required", then 529 pengine/graph.c is_set(then->flags, pe_action_runnable) ? "runnable" : "unrunnable", then 530 pengine/graph.c is_set(then->flags, then 531 pengine/graph.c pe_action_pseudo) ? "pseudo" : then->node ? then->node->details->uname : ""); then 533 pengine/graph.c if (is_set(then->flags, pe_action_requires_any)) { then 538 pengine/graph.c then->runnable_before = 0; then 543 pengine/graph.c if (then->required_runnable_before == 0) { then 544 pengine/graph.c then->required_runnable_before = 1; then 546 pengine/graph.c pe_clear_action_bit(then, pe_action_runnable); then 556 pengine/graph.c for (lpc = then->actions_before; lpc != NULL; lpc = lpc->next) { then 560 pengine/graph.c node_t *then_node = then->node; then 573 pengine/graph.c if (then->rsc && then->rsc->variant == pe_group && safe_str_eq(then->task, RSC_START)) { then 574 pengine/graph.c then_node = then->rsc->fns->location(then->rsc, NULL, FALSE); then 576 pengine/graph.c crm_trace("Then: Found node %s for %s", then_node->details->uname, then->uuid); then 585 pengine/graph.c then->uuid, then_node->details->uname); then 593 pengine/graph.c && is_not_set(then->flags, pe_action_optional)) { then 603 pengine/graph.c if (first->rsc && then->rsc && (first->rsc != then->rsc) then 604 pengine/graph.c && (is_parent(then->rsc, first->rsc) == FALSE)) { then 608 pengine/graph.c crm_trace("Ordering %s after %s instead of %s", then->uuid, first->uuid, then 613 pengine/graph.c then_flags = get_action_flags(then, first_node); then 616 pengine/graph.c then->uuid, then 620 pengine/graph.c pe_action_pseudo) ? "pseudo" : then->node ? then->node->details-> then 642 pengine/graph.c node_t *node = then->node; then 643 pengine/graph.c changed |= graph_update_action(first, then, node, first_flags, then_flags, other); then 648 pengine/graph.c } else if (order_actions(first, then, other->type)) { then 657 pengine/graph.c other->action->uuid, then->uuid, first->uuid, then->uuid); then 681 pengine/graph.c if (is_set(then->flags, pe_action_requires_any)) { then 682 pengine/graph.c if (last_flags != then->flags) { then 691 pengine/graph.c then->uuid, then 692 pengine/graph.c is_set(then->flags, pe_action_optional) ? "optional" : "required", then 693 pengine/graph.c is_set(then->flags, pe_action_runnable) ? "runnable" : "unrunnable", then 694 pengine/graph.c is_set(then->flags, then 695 pengine/graph.c pe_action_pseudo) ? "pseudo" : then->node ? then->node->details-> then 698 pengine/graph.c if (is_set(last_flags, pe_action_runnable) && is_not_set(then->flags, pe_action_runnable)) { then 699 pengine/graph.c update_colo_start_chain(then); then 701 pengine/graph.c update_action(then); then 702 pengine/graph.c for (lpc = then->actions_after; lpc != NULL; lpc = lpc->next) { then 415 pengine/group.c group_update_actions(action_t * first, action_t * then, node_t * node, enum pe_action_flags flags, then 418 pengine/group.c GListPtr gIter = then->rsc->children; then 421 pengine/group.c CRM_ASSERT(then->rsc != NULL); then 422 pengine/group.c changed |= native_update_actions(first, then, node, flags, filter, type); then 426 pengine/group.c action_t *child_action = find_first_action(child->actions, NULL, then->task, node); then 35 pengine/native.c gboolean update_action(action_t * then); then 1882 pengine/native.c native_update_actions(action_t * first, action_t * then, node_t * node, enum pe_action_flags flags, then 1887 pengine/native.c enum pe_action_flags then_flags = then->flags; then 1892 pengine/native.c first->flags, then->uuid, then->flags); then 1895 pengine/native.c resource_t *then_rsc = then->rsc; then 1900 pengine/native.c } else if ((then_rsc_role == RSC_ROLE_STOPPED) && safe_str_eq(then->task, RSC_STOP)) { then 1904 pengine/native.c && safe_str_eq(then->task, RSC_START) then 1905 pengine/native.c && then->node then 1908 pengine/native.c && then->node->details == ((node_t *) then_rsc->running_on->data)->details) { then 1914 pengine/native.c pe_action_implies(then, first, pe_action_optional); then 1915 pengine/native.c pe_action_implies(then, first, pe_action_runnable); then 1917 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional and runnable on %s", then->uuid); then 1926 pengine/native.c pe_rsc_trace(first->rsc, "Unset optional on %s because of %s", first->uuid, then->uuid); then 1927 pengine/native.c pe_action_implies(first, then, pe_action_optional); then 1931 pengine/native.c is_set(then->flags, pe_action_migrate_runnable) == FALSE && then 1932 pengine/native.c is_set(then->flags, pe_action_optional) == FALSE) { then 1935 pengine/native.c first->uuid, then->uuid); then 1936 pengine/native.c pe_action_implies(first, then, pe_action_migrate_runnable); then 1942 pengine/native.c ((then->flags & pe_action_optional) == FALSE) && then 1943 pengine/native.c then->rsc && (then->rsc->role == RSC_ROLE_MASTER)) { then 1944 pengine/native.c pe_action_implies(first, then, pe_action_optional); then 1947 pengine/native.c is_set(then->flags, pe_action_migrate_runnable) == FALSE) { then 1949 pengine/native.c pe_rsc_trace(first->rsc, "Unset migrate runnable on %s because of %s", first->uuid, then->uuid); then 1950 pengine/native.c pe_action_implies(first, then, pe_action_migrate_runnable); then 1952 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional on %s because of %s", first->uuid, then->uuid); then 1959 pengine/native.c if (((then->flags & pe_action_migrate_runnable) == FALSE) || then 1960 pengine/native.c ((then->flags & pe_action_runnable) == FALSE)) { then 1962 pengine/native.c pe_rsc_trace(then->rsc, "Unset runnable on %s because %s is neither runnable or migratable", first->uuid, then->uuid); then 1963 pengine/native.c pe_action_implies(first, then, pe_action_runnable); then 1966 pengine/native.c if ((then->flags & pe_action_optional) == 0) { then 1967 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional on %s because %s is not optional", first->uuid, then->uuid); then 1968 pengine/native.c pe_action_implies(first, then, pe_action_optional); then 1976 pengine/native.c pe_action_implies(then, first, pe_action_migrate_runnable); then 1977 pengine/native.c pe_clear_action_bit(then, pe_action_pseudo); then 1978 pengine/native.c pe_rsc_trace(then->rsc, "Unset pseudo on %s because %s is not runnable", then->uuid, first->uuid); then 1985 pengine/native.c && is_set(then->flags, pe_action_runnable) then 1987 pengine/native.c pe_rsc_trace(then->rsc, "Unset runnable on %s because of %s", then->uuid, first->uuid); then 1988 pengine/native.c pe_action_implies(then, first, pe_action_runnable); then 1989 pengine/native.c pe_action_implies(then, first, pe_action_migrate_runnable); then 1994 pengine/native.c && is_set(then->flags, pe_action_optional) then 1999 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional on %s because of %s", then->uuid, first->uuid); then 2000 pengine/native.c pe_action_implies(then, first, pe_action_optional); then 2008 pengine/native.c CRM_ASSERT(then->rsc && then->rsc->variant == pe_native); then 2011 pengine/native.c && (then->flags & pe_action_runnable) == 0 then 2012 pengine/native.c && (then->rsc->flags & pe_rsc_managed)) { then 2016 pengine/native.c if ((filter & pe_action_optional) && (then->flags & pe_action_optional) == 0) { then 2022 pengine/native.c || is_not_set(then->flags, pe_action_optional)) { then 2023 pengine/native.c pe_rsc_trace(first->rsc, "Handling %s: %s -> %s", reason, first->uuid, then->uuid); then 2024 pengine/native.c pe_action_implies(first, then, pe_action_optional); then 2030 pengine/native.c pe_rsc_trace(then->rsc, "Handling %s: %s -> %s", reason, first->uuid, then->uuid); then 2031 pengine/native.c pe_action_implies(then, first, pe_action_runnable); then 2037 pengine/native.c is_not_set(then->flags, pe_action_migrate_runnable)) { then 2039 pengine/native.c pe_action_implies(first, then, pe_action_migrate_runnable); then 2044 pengine/native.c if (then_flags != then->flags) { then 2046 pengine/native.c pe_rsc_trace(then->rsc, then 2048 pengine/native.c then->uuid, then->node ? then->node->details->uname : "[none]", then->flags, then 2051 pengine/native.c if(then->rsc && then->rsc->parent) { then 2053 pengine/native.c update_action(then); then 2062 pengine/native.c first->flags, first_flags, then->uuid, then->flags); then 53 pengine/utils.h bool can_interleave_actions(pe_action_t *first, pe_action_t *then);