| 3023 | } |
| 3024 | |
| 3025 | static void |
| 3026 | ReloadRsc(resource_t * rsc, action_t *stop, action_t *start, pe_working_set_t * data_set) |
| 3027 | { |
| 3028 | action_t *action = NULL; |
| 3029 | action_t *rewrite = NULL; |
| 3030 | |
| 3031 | if(is_not_set(rsc->flags, pe_rsc_try_reload)) { |
| 3032 | return; |
| 3033 | |
| 3034 | } else if(is_not_set(stop->flags, pe_action_optional)) { |
| 3035 | pe_rsc_trace(rsc, "%s: stop action", rsc->id); |
| 3036 | return; |
| 3037 | |
| 3038 | } else if(is_not_set(start->flags, pe_action_optional)) { |
| 3039 | pe_rsc_trace(rsc, "%s: start action", rsc->id); |
| 3040 | return; |
| 3041 | } |
| 3042 | |
| 3043 | pe_rsc_trace(rsc, "%s on %s", rsc->id, stop->node->details->uname); |
| 3044 | |
| 3045 | action = get_first_named_action(rsc, RSC_PROMOTE, TRUE, NULL); |
| 3046 | if (action && is_set(action->flags, pe_action_optional) == FALSE) { |
| 3047 | update_action_flags(action, pe_action_pseudo); |
| 3048 | } |
| 3049 | |
| 3050 | action = get_first_named_action(rsc, RSC_DEMOTE, TRUE, NULL); |
| 3051 | if (action && is_set(action->flags, pe_action_optional) == FALSE) { |
| 3052 | rewrite = action; |
| 3053 | update_action_flags(stop, pe_action_pseudo); |
| 3054 | |
| 3055 | } else { |
| 3056 | rewrite = start; |
| 3057 | } |
| 3058 | |
| 3059 | pe_rsc_info(rsc, "Rewriting %s of %s on %s as a reload", |
| 3060 | rewrite->task, rsc->id, stop->node->details->uname); |
| 3061 | set_bit(rsc->flags, pe_rsc_reload); |
| 3062 | update_action_flags(rewrite, pe_action_optional|pe_action_clear); |
| 3063 | |
| 3064 | free(rewrite->uuid); |
| 3065 | free(rewrite->task); |
| 3066 | rewrite->task = strdup("reload"); |
| 3067 | rewrite->uuid = generate_op_key(rsc->id, rewrite->task, 0); |
| 3068 | } |
| 3069 | |
| 3070 | void |
| 3071 | rsc_migrate_reload(resource_t * rsc, pe_working_set_t * data_set) |
no test coverage detected